Skip to content

Commit

Permalink
Add db functions tests
Browse files Browse the repository at this point in the history
  • Loading branch information
balath committed Mar 22, 2021
1 parent e7597dc commit 1d66837
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 15 deletions.
12 changes: 6 additions & 6 deletions src/main/scala/palabrot/services/ElasticRepository.scala
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,16 @@ class ElasticRepository(client: ElasticClient, index: String) extends MessageRep
s""" { "chatId" : "${t.chat.id}", "text" : "${t.text}", "date" : "${t.date}", "user" : "${t.from.getOrElse("unknown")}" } """
}

override def addMessage(message: TextMessage): IO[Unit] = {
override def addMessage(message: TextMessage): IO[Boolean] = {
client.execute(indexInto(index).doc(message))
IO.unit
IO.pure(true)
}

override def getMessagesFromChat(num: Int, chat: Chat): IO[String] =
IO.pure(client.execute(get("chatId", s"${chat.id}")).mapTo[String].value.get.get )
override def getMessagesFromChat(num: Int, chat: Chat): IO[List[String]] =
IO.pure(client.execute(get("chatId", s"${chat.id}")).mapTo[String].value.get.get :: Nil)

override def deleteMessage(chatId: ChatId): IO[Unit] = {
override def deleteMessage(chatId: ChatId): IO[Boolean] = {
client.execute(deleteById("chatId", s"$chatId"))
IO.unit
IO.pure(true)
}
}
6 changes: 3 additions & 3 deletions src/main/scala/palabrot/services/MessageRepository.scala
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ import canoe.models.messages.TextMessage
import cats.effect.IO

trait MessageRepository{
def addMessage(message: TextMessage): IO[Unit]
def getMessagesFromChat(num: Int, chat: Chat): IO[String]
def deleteMessage(chatId: ChatId): IO[Unit]
def addMessage(message: TextMessage): IO[Boolean]
def getMessagesFromChat(num: Int, chat: Chat): IO[List[String]]
def deleteMessage(chatId: ChatId): IO[Boolean]
}


2 changes: 1 addition & 1 deletion src/main/scala/palabrot/services/Summarizer.scala
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@ object Summarizer {
def summary(command: TextMessage, messagesNumber: Int, db: MessageRepository): IO[String] = {
Loggers.summary.info(Summary, command)
//Code for return summary
db.getMessagesFromChat(messagesNumber, command.chat)
db.getMessagesFromChat(messagesNumber, command.chat).flatMap(l => IO.pure(l.mkString(" ")))
}
}
19 changes: 19 additions & 0 deletions src/test/scala/MainFlowTest.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import canoe.models.messages.TextMessage
import canoe.models.{Group, User}
import munit.CatsEffectSuite
import palabrot.MainFlow


class MainFlowTest extends CatsEffectSuite {
val testUser = User(1, false, "Test Name", None, None, None, None, None, None)
val testGroup = Group(1, Some("Test Group"))
val testMessage = TextMessage(1, testGroup, 1, "Test Message", None, Some(testUser))

test("When delete messages gets true") {
MainFlow.DB.deleteMessage(testMessage.chat.id).assert
}
test("Summarizer returns summary from n(100) messages from Test Group") {
MainFlow.DB.addMessage(testMessage).assert
}

}
11 changes: 6 additions & 5 deletions src/test/scala/palabrot/services/ServicesTest.scala
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,15 @@ class ServicesTest extends CatsEffectSuite {
val testMessage = TextMessage(1, testGroup, 1, "Test Message", None, Some(testUser))

val testDB: MessageRepository = new MessageRepository {
override def addMessage(message: TextMessage): IO[Unit] = IO.unit
override def getMessagesFromChat(num: Int, chat: Chat): IO[String] = chat match {
case Group(_, Some(title)) => IO.pure (s"Summary of $num messages from chat $title")
case _ => IO.pure("Test failed")
override def addMessage(message: TextMessage): IO[Boolean] = IO.pure(true)
override def getMessagesFromChat(num: Int, chat: Chat): IO[List[String]] = chat match {
case Group(_, Some(title)) => IO.pure (s"Summary of $num messages from chat $title" :: Nil)
case _ => IO.pure("Test failed" :: Nil)
}
override def deleteMessage(chatId: ChatId): IO[Unit] = IO.unit
override def deleteMessage(chatId: ChatId): IO[Boolean] = IO.pure(true)
}


test("Summarizer returns summary from n(100) messages from Test Group") {
Summarizer.summary(testMessage,100, testDB)
.assertEquals("Summary of 100 messages from chat Test Group")
Expand Down

0 comments on commit 1d66837

Please sign in to comment.