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