diff --git a/build.gradle b/build.gradle index 731a3f9..0638352 100644 --- a/build.gradle +++ b/build.gradle @@ -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' } diff --git a/src/test/kotlin/net/thauvin/erik/mobibot/AddonsTest.kt b/src/test/kotlin/net/thauvin/erik/mobibot/AddonsTest.kt index dbcc6f0..826e784 100644 --- a/src/test/kotlin/net/thauvin/erik/mobibot/AddonsTest.kt +++ b/src/test/kotlin/net/thauvin/erik/mobibot/AddonsTest.kt @@ -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") diff --git a/src/test/kotlin/net/thauvin/erik/mobibot/FeedReaderTest.kt b/src/test/kotlin/net/thauvin/erik/mobibot/FeedReaderTest.kt index eadcc43..4e75ef0 100644 --- a/src/test/kotlin/net/thauvin/erik/mobibot/FeedReaderTest.kt +++ b/src/test/kotlin/net/thauvin/erik/mobibot/FeedReaderTest.kt @@ -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) diff --git a/src/test/kotlin/net/thauvin/erik/mobibot/commands/seen/SeenTest.kt b/src/test/kotlin/net/thauvin/erik/mobibot/commands/seen/SeenTest.kt index a736768..46090e5 100644 --- a/src/test/kotlin/net/thauvin/erik/mobibot/commands/seen/SeenTest.kt +++ b/src/test/kotlin/net/thauvin/erik/mobibot/commands/seen/SeenTest.kt @@ -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) } } diff --git a/src/test/kotlin/net/thauvin/erik/mobibot/entries/EntryLinkTest.kt b/src/test/kotlin/net/thauvin/erik/mobibot/entries/EntryLinkTest.kt index bef4ba9..5c9ef99 100644 --- a/src/test/kotlin/net/thauvin/erik/mobibot/entries/EntryLinkTest.kt +++ b/src/test/kotlin/net/thauvin/erik/mobibot/entries/EntryLinkTest.kt @@ -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) diff --git a/src/test/kotlin/net/thauvin/erik/mobibot/modules/CryptoPricesTest.kt b/src/test/kotlin/net/thauvin/erik/mobibot/modules/CryptoPricesTest.kt index 96e6181..3bef92b 100644 --- a/src/test/kotlin/net/thauvin/erik/mobibot/modules/CryptoPricesTest.kt +++ b/src/test/kotlin/net/thauvin/erik/mobibot/modules/CryptoPricesTest.kt @@ -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") } } diff --git a/src/test/kotlin/net/thauvin/erik/mobibot/modules/GoogleSearchTest.kt b/src/test/kotlin/net/thauvin/erik/mobibot/modules/GoogleSearchTest.kt index 6700d2d..8d12ab4 100644 --- a/src/test/kotlin/net/thauvin/erik/mobibot/modules/GoogleSearchTest.kt +++ b/src/test/kotlin/net/thauvin/erik/mobibot/modules/GoogleSearchTest.kt @@ -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) diff --git a/src/test/kotlin/net/thauvin/erik/mobibot/modules/JokeTest.kt b/src/test/kotlin/net/thauvin/erik/mobibot/modules/JokeTest.kt index 21b455e..1ff51be 100644 --- a/src/test/kotlin/net/thauvin/erik/mobibot/modules/JokeTest.kt +++ b/src/test/kotlin/net/thauvin/erik/mobibot/modules/JokeTest.kt @@ -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) + } } } } diff --git a/src/test/kotlin/net/thauvin/erik/mobibot/modules/ModuleExceptionTest.kt b/src/test/kotlin/net/thauvin/erik/mobibot/modules/ModuleExceptionTest.kt index 948fa80..eef610a 100644 --- a/src/test/kotlin/net/thauvin/erik/mobibot/modules/ModuleExceptionTest.kt +++ b/src/test/kotlin/net/thauvin/erik/mobibot/modules/ModuleExceptionTest.kt @@ -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"]) diff --git a/src/test/kotlin/net/thauvin/erik/mobibot/modules/RockPaperScissorsTest.kt b/src/test/kotlin/net/thauvin/erik/mobibot/modules/RockPaperScissorsTest.kt index dbe4f36..4bd8025 100644 --- a/src/test/kotlin/net/thauvin/erik/mobibot/modules/RockPaperScissorsTest.kt +++ b/src/test/kotlin/net/thauvin/erik/mobibot/modules/RockPaperScissorsTest.kt @@ -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") } } diff --git a/src/test/kotlin/net/thauvin/erik/mobibot/modules/WolframAlphaTest.kt b/src/test/kotlin/net/thauvin/erik/mobibot/modules/WolframAlphaTest.kt index f5915ed..f0fb424 100644 --- a/src/test/kotlin/net/thauvin/erik/mobibot/modules/WolframAlphaTest.kt +++ b/src/test/kotlin/net/thauvin/erik/mobibot/modules/WolframAlphaTest.kt @@ -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) { diff --git a/version.properties b/version.properties index 6040193..86eb158 100644 --- a/version.properties +++ b/version.properties @@ -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