Cleaned up more tests

This commit is contained in:
Erik C. Thauvin 2022-10-04 12:56:04 -07:00
parent ae9e24cded
commit c24fcb8ef5
12 changed files with 58 additions and 46 deletions

View file

@ -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'
}

View file

@ -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")

View file

@ -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)

View file

@ -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)
}
}

View file

@ -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)

View file

@ -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")
}
}

View file

@ -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)

View file

@ -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)
}
}
}
}

View file

@ -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"])

View file

@ -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")
}
}

View file

@ -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) {

View file

@ -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