Cleaned up more tests
This commit is contained in:
parent
ae9e24cded
commit
c24fcb8ef5
12 changed files with 58 additions and 46 deletions
|
@ -7,7 +7,7 @@ plugins {
|
|||
id 'net.thauvin.erik.gradle.semver' version '1.0.4'
|
||||
id 'org.jetbrains.kotlin.jvm' version '1.7.20'
|
||||
id 'org.jetbrains.kotlin.kapt' version '1.7.20'
|
||||
id 'org.jetbrains.kotlinx.kover' version '0.6.0'
|
||||
id 'org.jetbrains.kotlinx.kover' version '0.6.1'
|
||||
id 'org.sonarqube' version '3.4.0.2513'
|
||||
id 'pmd'
|
||||
}
|
||||
|
|
|
@ -67,7 +67,7 @@ class AddonsTest {
|
|||
addons.add(War())
|
||||
addons.add(Dice())
|
||||
addons.add(Lookup())
|
||||
assertThat(addons.modules, "modules").size().isEqualTo(2)
|
||||
assertThat(addons::modules).size().isEqualTo(2)
|
||||
assertThat(addons.names.modules, "names.modules").containsExactly("Joke", "RockPaperScissors")
|
||||
|
||||
// Commands
|
||||
|
@ -78,7 +78,7 @@ class AddonsTest {
|
|||
addons.add(ChannelFeed("channel")) // no properties, disabled
|
||||
p[Ignore.IGNORE_PROP] = "nick"
|
||||
addons.add(Ignore())
|
||||
assertThat(addons.commands, "command").size().isEqualTo(3)
|
||||
assertThat(addons::commands).size().isEqualTo(3)
|
||||
|
||||
assertThat(addons.names.ops, "names.ops").containsExactly("cycle")
|
||||
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
*/
|
||||
package net.thauvin.erik.mobibot
|
||||
|
||||
import assertk.all
|
||||
import assertk.assertThat
|
||||
import assertk.assertions.contains
|
||||
import assertk.assertions.index
|
||||
|
@ -54,8 +55,10 @@ class FeedReaderTest {
|
|||
@Test
|
||||
fun readFeedTest() {
|
||||
var messages = readFeed("https://feeds.thauvin.net/ethauvin")
|
||||
assertThat(messages, "messages").size().isEqualTo(10)
|
||||
assertThat(messages, "messages").index(1).prop(Message::msg).contains("erik.thauvin.net")
|
||||
assertThat(messages, "messages").all {
|
||||
size().isEqualTo(10)
|
||||
index(1).prop(Message::msg).contains("erik.thauvin.net")
|
||||
}
|
||||
|
||||
messages = readFeed("https://lorem-rss.herokuapp.com/feed?length=0")
|
||||
assertThat(messages, "messages").index(0).prop(Message::msg).contains("nothing")
|
||||
|
@ -68,8 +71,7 @@ class FeedReaderTest {
|
|||
|
||||
assertThat { readFeed("https://www.example.com") }.isFailure().isInstanceOf(FeedException::class.java)
|
||||
|
||||
assertThat { readFeed("https://www.thauvin.net/foo") }.isFailure()
|
||||
.isInstanceOf(IOException::class.java)
|
||||
assertThat { readFeed("https://www.thauvin.net/foo") }.isFailure().isInstanceOf(IOException::class.java)
|
||||
|
||||
assertThat { readFeed("https://www.examplesfoo.com/") }.isFailure()
|
||||
.isInstanceOf(UnknownHostException::class.java)
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
|
||||
package net.thauvin.erik.mobibot.commands.seen
|
||||
|
||||
import assertk.all
|
||||
import assertk.assertThat
|
||||
import assertk.assertions.isEmpty
|
||||
import assertk.assertions.isEqualTo
|
||||
|
@ -39,6 +40,7 @@ import assertk.assertions.isGreaterThan
|
|||
import assertk.assertions.isNotEqualTo
|
||||
import assertk.assertions.isNotNull
|
||||
import assertk.assertions.key
|
||||
import assertk.assertions.prop
|
||||
import assertk.assertions.size
|
||||
import org.testng.annotations.AfterClass
|
||||
import org.testng.annotations.BeforeClass
|
||||
|
@ -65,18 +67,20 @@ class SeenTest {
|
|||
@Test(priority = 1, groups = ["commands"])
|
||||
fun loadTest() {
|
||||
seen.clear()
|
||||
assertThat(seen.seenNicks, "seenNicks").isEmpty()
|
||||
assertThat(seen::seenNicks).isEmpty()
|
||||
seen.load()
|
||||
assertThat(seen.seenNicks).key(nick).isNotNull()
|
||||
assertThat(seen::seenNicks).key(nick).isNotNull()
|
||||
}
|
||||
|
||||
@Test(groups = ["commands"])
|
||||
fun addTest() {
|
||||
val last = seen.seenNicks[nick]?.lastSeen
|
||||
seen.add(nick.lowercase())
|
||||
assertThat(seen.seenNicks, "seenNicks").size().isEqualTo(1)
|
||||
assertThat(seen.seenNicks[nick]?.lastSeen, "seenNicks[$nick].lastSeen").isNotEqualTo(last)
|
||||
assertThat(seen.seenNicks[nick]?.nick, "seenNicks[$nick].nick").isEqualTo(nick.lowercase())
|
||||
assertThat(seen).all {
|
||||
prop(Seen::seenNicks).size().isEqualTo(1)
|
||||
prop(Seen::seenNicks).key(nick).isNotNull().prop(SeenNick::lastSeen).isNotEqualTo(last)
|
||||
prop(Seen::seenNicks).key(nick).isNotNull().prop(SeenNick::nick).isNotNull().isEqualTo(nick.lowercase())
|
||||
}
|
||||
}
|
||||
|
||||
@Test(priority = 10, groups = ["commands"])
|
||||
|
@ -84,6 +88,6 @@ class SeenTest {
|
|||
seen.clear()
|
||||
seen.save()
|
||||
seen.load()
|
||||
assertThat(seen.seenNicks, "seenNicks").size().isEqualTo(0)
|
||||
assertThat(seen::seenNicks).size().isEqualTo(0)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,6 +33,7 @@ package net.thauvin.erik.mobibot.entries
|
|||
|
||||
import assertk.all
|
||||
import assertk.assertThat
|
||||
import assertk.assertions.index
|
||||
import assertk.assertions.isEmpty
|
||||
import assertk.assertions.isEqualTo
|
||||
import assertk.assertions.isFalse
|
||||
|
@ -96,9 +97,11 @@ class EntryLinkTest {
|
|||
val tag = "test"
|
||||
val tags = listOf(SyndCategoryImpl().apply { name = tag })
|
||||
val link = EntryLink("link", "title", "nick", "channel", Date(), tags)
|
||||
assertThat(link.tags, "tags").size().isEqualTo(tags.size)
|
||||
assertThat(link.tags[0].name, "tag[0].name").isEqualTo(tag)
|
||||
assertThat(link.pinboardTags, "pinboardTags").isEqualTo("nick,$tag")
|
||||
assertThat(link, "link").all {
|
||||
prop(EntryLink::tags).size().isEqualTo(tags.size)
|
||||
prop(EntryLink::tags).index(0).prop(SyndCategory::getName).isEqualTo(tag)
|
||||
prop(EntryLink::pinboardTags).isEqualTo("nick,$tag")
|
||||
}
|
||||
}
|
||||
|
||||
@Test(groups = ["entries"])
|
||||
|
@ -118,13 +121,12 @@ class EntryLinkTest {
|
|||
for ((i, tag) in tags.withIndex()) {
|
||||
assertThat(tag.name, "tag.name($i)").isEqualTo("tag${i + 1}")
|
||||
}
|
||||
assertThat(entryLink.tags, "tags").size().isEqualTo(5)
|
||||
assertThat(entryLink::tags).size().isEqualTo(5)
|
||||
entryLink.setTags("-tag5")
|
||||
entryLink.setTags("+mobitopia")
|
||||
entryLink.setTags("tag4")
|
||||
entryLink.setTags("-mobitopia")
|
||||
assertThat(entryLink.pinboardTags, "pinboardTags")
|
||||
.isEqualTo(entryLink.nick + ",tag1,tag2,tag3,tag4,mobitopia")
|
||||
assertThat(entryLink::pinboardTags).isEqualTo(entryLink.nick + ",tag1,tag2,tag3,tag4,mobitopia")
|
||||
val size = entryLink.tags.size
|
||||
entryLink.setTags("")
|
||||
assertThat(entryLink.tags, "setTags('')").size().isEqualTo(size)
|
||||
|
|
|
@ -73,7 +73,7 @@ class CryptoPricesTest {
|
|||
|
||||
@Test(groups = ["modules"])
|
||||
fun testGetCurrencyName() {
|
||||
assertThat(getCurrencyName("USD")).isEqualTo("US Dollar")
|
||||
assertThat(getCurrencyName("EUR")).isEqualTo("Euro")
|
||||
assertThat(getCurrencyName("USD"), "USD").isEqualTo("US Dollar")
|
||||
assertThat(getCurrencyName("EUR"), "EUR").isEqualTo("Euro")
|
||||
}
|
||||
}
|
||||
|
|
|
@ -81,8 +81,10 @@ class GoogleSearchTest : LocalProperties() {
|
|||
try {
|
||||
var query = "mobibot"
|
||||
var messages = searchGoogle(query, apiKey, cseKey)
|
||||
assertThat(messages, "searchGoogle($query)").isNotEmpty()
|
||||
assertThat(messages, "searchGoogle($query)").index(0).prop(Message::msg).contains(query, true)
|
||||
assertThat(messages, "searchGoogle($query)").all {
|
||||
isNotEmpty()
|
||||
index(0).prop(Message::msg).contains(query, true)
|
||||
}
|
||||
|
||||
query = "adadflkjl"
|
||||
messages = searchGoogle(query, apiKey, cseKey)
|
||||
|
|
|
@ -31,14 +31,13 @@
|
|||
*/
|
||||
package net.thauvin.erik.mobibot.modules
|
||||
|
||||
import assertk.all
|
||||
import assertk.assertThat
|
||||
import assertk.assertions.each
|
||||
import assertk.assertions.isGreaterThan
|
||||
import assertk.assertions.isInstanceOf
|
||||
import assertk.assertions.isNotEmpty
|
||||
import assertk.assertions.prop
|
||||
import assertk.assertions.size
|
||||
import net.thauvin.erik.mobibot.modules.Joke.Companion.randomJoke
|
||||
import net.thauvin.erik.mobibot.msg.Message
|
||||
import net.thauvin.erik.mobibot.msg.PublicMessage
|
||||
import org.testng.annotations.Test
|
||||
|
||||
|
@ -50,10 +49,11 @@ class JokeTest {
|
|||
@Throws(ModuleException::class)
|
||||
fun testRandomJoke() {
|
||||
val joke = randomJoke()
|
||||
assertThat(joke, "randomJoke()").size().isGreaterThan(0)
|
||||
joke.forEach {
|
||||
assertThat(it, "randomJoke()").isInstanceOf(PublicMessage::class.java)
|
||||
assertThat(it, "randomJoke()").prop(Message::msg).isNotEmpty()
|
||||
assertThat(joke, "randomJoke()").all {
|
||||
size().isGreaterThan(0)
|
||||
each {
|
||||
it.isInstanceOf(PublicMessage::class.java)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -66,12 +66,12 @@ class ModuleExceptionTest {
|
|||
|
||||
@Test(dataProvider = "dp")
|
||||
fun testGetDebugMessage(e: ModuleException) {
|
||||
assertThat(e.debugMessage, "debug message is invalid").isEqualTo(debugMessage)
|
||||
assertThat(e::debugMessage).isEqualTo(debugMessage)
|
||||
}
|
||||
|
||||
@Test(dataProvider = "dp")
|
||||
fun testGetMessage(e: ModuleException) {
|
||||
assertThat(e, "message is invalid").hasMessage(message)
|
||||
assertThat(e).hasMessage(message)
|
||||
}
|
||||
|
||||
@Test(groups = ["modules"])
|
||||
|
|
|
@ -34,17 +34,18 @@ package net.thauvin.erik.mobibot.modules
|
|||
|
||||
import assertk.assertThat
|
||||
import assertk.assertions.isEqualTo
|
||||
import net.thauvin.erik.mobibot.modules.RockPaperScissors.Companion.winLoseOrDraw
|
||||
import org.testng.annotations.Test
|
||||
|
||||
class RockPaperScissorsTest {
|
||||
@Test(groups = ["modules"])
|
||||
fun testWinLoseOrDraw() {
|
||||
assertThat(RockPaperScissors.winLoseOrDraw("scissors", "paper"), "scissors vs. paper").isEqualTo("win")
|
||||
assertThat(RockPaperScissors.winLoseOrDraw("paper", "rock"), "paper vs. rock").isEqualTo("win")
|
||||
assertThat(RockPaperScissors.winLoseOrDraw("rock", "scissors"), "rock vs. scissors").isEqualTo("win")
|
||||
assertThat(RockPaperScissors.winLoseOrDraw("paper", "scissors"), "paper vs. scissors").isEqualTo("lose")
|
||||
assertThat(RockPaperScissors.winLoseOrDraw("rock", "paper"), "rock vs. paper").isEqualTo("lose")
|
||||
assertThat(RockPaperScissors.winLoseOrDraw("scissors", "rock"), "scissors vs. rock").isEqualTo("lose")
|
||||
assertThat(RockPaperScissors.winLoseOrDraw("scissors", "scissors"), "scissors vs. scissors").isEqualTo("draw")
|
||||
assertThat(winLoseOrDraw("scissors", "paper"), "scissors vs. paper").isEqualTo("win")
|
||||
assertThat(winLoseOrDraw("paper", "rock"), "paper vs. rock").isEqualTo("win")
|
||||
assertThat(winLoseOrDraw("rock", "scissors"), "rock vs. scissors").isEqualTo("win")
|
||||
assertThat(winLoseOrDraw("paper", "scissors"), "paper vs. scissors").isEqualTo("lose")
|
||||
assertThat(winLoseOrDraw("rock", "paper"), "rock vs. paper").isEqualTo("lose")
|
||||
assertThat(winLoseOrDraw("scissors", "rock"), "scissors vs. rock").isEqualTo("lose")
|
||||
assertThat(winLoseOrDraw("scissors", "scissors"), "scissors vs. scissors").isEqualTo("draw")
|
||||
}
|
||||
}
|
||||
|
|
|
@ -39,17 +39,18 @@ import assertk.assertions.isFailure
|
|||
import assertk.assertions.isInstanceOf
|
||||
import net.thauvin.erik.mobibot.ExceptionSanitizer.sanitize
|
||||
import net.thauvin.erik.mobibot.LocalProperties
|
||||
import net.thauvin.erik.mobibot.modules.WolframAlpha.Companion.queryWolfram
|
||||
import org.testng.annotations.Test
|
||||
|
||||
class WolframAlphaTest : LocalProperties() {
|
||||
@Test(groups = ["modules"])
|
||||
fun testAppId() {
|
||||
assertThat { WolframAlpha.queryWolfram("1 gallon to liter", appId = "DEMO") }
|
||||
assertThat { queryWolfram("1 gallon to liter", appId = "DEMO") }
|
||||
.isFailure()
|
||||
.isInstanceOf(ModuleException::class.java)
|
||||
.hasMessage("Error 1: Invalid appid")
|
||||
|
||||
assertThat { WolframAlpha.queryWolfram("1 gallon to liter", appId = "") }
|
||||
assertThat { queryWolfram("1 gallon to liter", appId = "") }
|
||||
.isFailure()
|
||||
.isInstanceOf(ModuleException::class.java)
|
||||
}
|
||||
|
@ -60,11 +61,11 @@ class WolframAlphaTest : LocalProperties() {
|
|||
val apiKey = getProperty(WolframAlpha.WOLFRAM_APPID_KEY)
|
||||
try {
|
||||
var query = "SFO to SEA"
|
||||
assertThat(WolframAlpha.queryWolfram(query, appId = apiKey), "queryWolfram($query)").contains("miles")
|
||||
assertThat(queryWolfram(query, appId = apiKey), "queryWolfram($query)").contains("miles")
|
||||
|
||||
query = "SFO to LAX"
|
||||
assertThat(
|
||||
WolframAlpha.queryWolfram(query, WolframAlpha.METRIC, apiKey),
|
||||
queryWolfram(query, WolframAlpha.METRIC, apiKey),
|
||||
"queryWolfram($query)"
|
||||
).contains("kilometers")
|
||||
} catch (e: ModuleException) {
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
#Generated by the Semver Plugin for Gradle
|
||||
#Mon Oct 03 11:12:48 PDT 2022
|
||||
version.buildmeta=727
|
||||
#Tue Oct 04 12:17:53 PDT 2022
|
||||
version.buildmeta=737
|
||||
version.major=0
|
||||
version.minor=8
|
||||
version.patch=0
|
||||
version.prerelease=rc
|
||||
version.project=mobibot
|
||||
version.semver=0.8.0-rc+727
|
||||
version.semver=0.8.0-rc+737
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue