Skip to content

Commit

Permalink
Migrate tests to Power-assert.
Browse files Browse the repository at this point in the history
  • Loading branch information
ychescale9 committed May 25, 2024
1 parent 436eee4 commit 444c671
Show file tree
Hide file tree
Showing 12 changed files with 113 additions and 122 deletions.
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import com.google.cloud.tools.jib.gradle.BuildImageTask
import com.netflix.graphql.dgs.codegen.gradle.GenerateJavaTask
import io.gitlab.arturbosch.detekt.Detekt
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion

plugins {
alias(libs.plugins.kotlin.jvm)
alias(libs.plugins.kotlin.spring)
alias(libs.plugins.kotlin.serialization)
alias(libs.plugins.kotlin.powerAssert)
alias(libs.plugins.spring.boot)
alias(libs.plugins.spring.dependencyManagement)
alias(libs.plugins.dgsCodegen)
Expand Down
1 change: 1 addition & 0 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ toolchainsResolver = "0.8.0"
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
kotlin-spring = { id = "org.jetbrains.kotlin.plugin.spring", version.ref = "kotlin" }
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
kotlin-powerAssert = { id = "org.jetbrains.kotlin.plugin.power-assert", version.ref = "kotlin" }
spring-boot = { id = "org.springframework.boot", version.ref = "spring-boot" }
spring-dependencyManagement = { id = "io.spring.dependency-management", version.ref = "spring-dependencyManagement" }
dgsCodegen = { id = "com.netflix.dgs.codegen", version.ref = "dgsCodegen" }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,7 @@ import io.ktor.http.HttpHeaders
import io.ktor.http.headersOf
import io.ktor.utils.io.ByteReadChannel
import kotlinx.coroutines.runBlocking
import org.junit.jupiter.api.Test
import kotlin.test.assertEquals
import kotlin.test.Test

class FullResponseParserTest {

Expand All @@ -34,7 +33,7 @@ class FullResponseParserTest {
val feedClient = RealFeedClient(mockEngine, TestClientConfigs)

with(fakeKotlinBlogCacheContext()) {
assertEquals(12, feedClient.loadKotlinBlogFeed().size)
assert(feedClient.loadKotlinBlogFeed().size == 12)
}
}

Expand All @@ -49,7 +48,7 @@ class FullResponseParserTest {
val feedClient = RealFeedClient(mockEngine, TestClientConfigs)

with(fakeKotlinYouTubeCacheContext()) {
assertEquals(15, feedClient.loadKotlinYouTubeFeed().size)
assert(feedClient.loadKotlinYouTubeFeed().size == 15)
}
}

Expand All @@ -64,7 +63,7 @@ class FullResponseParserTest {
val feedClient = RealFeedClient(mockEngine, TestClientConfigs)

with(fakeTalkingKotlinCacheContext()) {
assertEquals(10, feedClient.loadTalkingKotlinFeed().size)
assert(feedClient.loadTalkingKotlinFeed().size == 10)
}
}

Expand All @@ -79,7 +78,7 @@ class FullResponseParserTest {
val feedClient = RealFeedClient(mockEngine, TestClientConfigs)

with(fakeKotlinWeeklyCacheContext()) {
assertEquals(3, feedClient.loadKotlinWeeklyFeed().size)
assert(feedClient.loadKotlinWeeklyFeed().size == 3)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,8 @@ import io.ktor.http.HttpStatusCode
import io.ktor.http.headersOf
import io.ktor.utils.io.ByteReadChannel
import kotlinx.coroutines.runBlocking
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.assertThrows
import kotlin.test.assertEquals
import kotlin.test.Test
import kotlin.test.assertFailsWith

class RealFeedClientTest {

Expand Down Expand Up @@ -65,7 +64,7 @@ class RealFeedClientTest {
)

with(fakeKotlinBlogCacheContext()) {
assertEquals(expected, feedClient.loadKotlinBlogFeed())
assert(feedClient.loadKotlinBlogFeed() == expected)
}
}

Expand All @@ -76,7 +75,7 @@ class RealFeedClientTest {
}
val feedClient = RealFeedClient(mockEngine, TestClientConfigs)

assertThrows<ClientRequestException> {
assertFailsWith<ClientRequestException> {
with(fakeKotlinBlogCacheContext()) {
feedClient.loadKotlinBlogFeed()
}
Expand Down Expand Up @@ -177,7 +176,7 @@ class RealFeedClientTest {
)

with(fakeKotlinYouTubeCacheContext()) {
assertEquals(expected, feedClient.loadKotlinYouTubeFeed())
assert(feedClient.loadKotlinYouTubeFeed() == expected)
}
}

Expand All @@ -188,7 +187,7 @@ class RealFeedClientTest {
}
val feedClient = RealFeedClient(mockEngine, TestClientConfigs)

assertThrows<ClientRequestException> {
assertFailsWith<ClientRequestException> {
with(fakeKotlinYouTubeCacheContext()) {
feedClient.loadKotlinYouTubeFeed()
}
Expand Down Expand Up @@ -229,7 +228,7 @@ class RealFeedClientTest {
)

with(fakeTalkingKotlinCacheContext()) {
assertEquals(expected, feedClient.loadTalkingKotlinFeed())
assert(feedClient.loadTalkingKotlinFeed() == expected)
}
}

Expand All @@ -240,7 +239,7 @@ class RealFeedClientTest {
}
val feedClient = RealFeedClient(mockEngine, TestClientConfigs)

assertThrows<ClientRequestException> {
assertFailsWith<ClientRequestException> {
with(fakeTalkingKotlinCacheContext()) {
feedClient.loadTalkingKotlinFeed()
}
Expand Down Expand Up @@ -273,7 +272,7 @@ class RealFeedClientTest {
)

with(fakeKotlinWeeklyCacheContext()) {
assertEquals(expected, feedClient.loadKotlinWeeklyFeed())
assert(feedClient.loadKotlinWeeklyFeed() == expected)
}
}

Expand All @@ -284,7 +283,7 @@ class RealFeedClientTest {
}
val feedClient = RealFeedClient(mockEngine, TestClientConfigs)

assertThrows<ClientRequestException> {
assertFailsWith<ClientRequestException> {
with(fakeKotlinWeeklyCacheContext()) {
feedClient.loadKotlinWeeklyFeed()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,8 @@ import io.ktor.client.plugins.ClientRequestException
import io.ktor.http.HttpStatusCode
import io.ktor.utils.io.ByteReadChannel
import kotlinx.coroutines.runBlocking
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.assertThrows
import kotlin.test.assertEquals
import kotlin.test.Test
import kotlin.test.assertFailsWith

class RealKotlinWeeklyIssueClientTest {

Expand Down Expand Up @@ -112,7 +111,7 @@ class RealKotlinWeeklyIssueClientTest {
),
)

assertEquals(expected, kotlinWeeklyIssueClient.loadKotlinWeeklyIssue("url"))
assert(kotlinWeeklyIssueClient.loadKotlinWeeklyIssue("url") == expected)
}

@Test
Expand All @@ -122,7 +121,7 @@ class RealKotlinWeeklyIssueClientTest {
}
val kotlinWeeklyIssueClient = RealKotlinWeeklyIssueClient(mockEngine)

assertThrows<ClientRequestException> {
assertFailsWith<ClientRequestException> {
kotlinWeeklyIssueClient.loadKotlinWeeklyIssue("url")
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,11 @@ import io.github.reactivecircus.kstreamlined.backend.datafetcher.mapper.toKotlin
import io.github.reactivecircus.kstreamlined.backend.datafetcher.mapper.toTalkingKotlinEntry
import io.github.reactivecircus.kstreamlined.backend.scalar.InstantScalar
import io.github.reactivecircus.kstreamlined.backend.schema.generated.types.FeedSourceKey
import org.junit.jupiter.api.Test
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.context.SpringBootTest
import org.springframework.test.context.ContextConfiguration
import java.time.Instant
import kotlin.test.assertEquals
import kotlin.test.Test

@SpringBootTest(classes = [DgsAutoConfiguration::class, FeedEntryDataFetcher::class, InstantScalar::class])
@ContextConfiguration(classes = [TestKSConfiguration::class])
Expand Down Expand Up @@ -79,40 +78,40 @@ class FeedEntryDataFetcherTest {

val context = dgsQueryExecutor.executeAndGetDocumentContext(feedEntriesQuery)

assertEquals(4, context.read("data.feedEntries.size()"))
assert(context.read<Int>("data.feedEntries.size()") == 4)

val dummyKotlinWeeklyEntry = DummyKotlinWeeklyItem.toKotlinWeeklyEntry()
assertEquals(dummyKotlinWeeklyEntry.id, context.read("data.feedEntries[0].id"))
assertEquals(dummyKotlinWeeklyEntry.title, context.read("data.feedEntries[0].title"))
assertEquals(dummyKotlinWeeklyEntry.publishTime, context.read<String>("data.feedEntries[0].publishTime").toInstant())
assertEquals(dummyKotlinWeeklyEntry.contentUrl, context.read("data.feedEntries[0].contentUrl"))
assertEquals(dummyKotlinWeeklyEntry.issueNumber, context.read("data.feedEntries[0].issueNumber"))
assert(context.read<String>("data.feedEntries[0].id") == dummyKotlinWeeklyEntry.id)
assert(context.read<String>("data.feedEntries[0].title") == dummyKotlinWeeklyEntry.title)
assert(context.read<String>("data.feedEntries[0].publishTime").toInstant() == dummyKotlinWeeklyEntry.publishTime)
assert(context.read<String>("data.feedEntries[0].contentUrl") == dummyKotlinWeeklyEntry.contentUrl)
assert(context.read<Int>("data.feedEntries[0].issueNumber") == dummyKotlinWeeklyEntry.issueNumber)

val dummyKotlinBlogEntry = DummyKotlinBlogItem.toKotlinBlogEntry()
assertEquals(dummyKotlinBlogEntry.id, context.read("data.feedEntries[1].id"))
assertEquals(dummyKotlinBlogEntry.title, context.read("data.feedEntries[1].title"))
assertEquals(dummyKotlinBlogEntry.publishTime, context.read<String>("data.feedEntries[1].publishTime").toInstant())
assertEquals(dummyKotlinBlogEntry.contentUrl, context.read("data.feedEntries[1].contentUrl"))
assertEquals(dummyKotlinBlogEntry.featuredImageUrl, context.read("data.feedEntries[1].featuredImageUrl"))
assertEquals(dummyKotlinBlogEntry.description, context.read("data.feedEntries[1].description"))
assert(context.read<String>("data.feedEntries[1].id") == dummyKotlinBlogEntry.id)
assert(context.read<String>("data.feedEntries[1].title") == dummyKotlinBlogEntry.title)
assert(context.read<String>("data.feedEntries[1].publishTime").toInstant() == dummyKotlinBlogEntry.publishTime)
assert(context.read<String>("data.feedEntries[1].contentUrl") == dummyKotlinBlogEntry.contentUrl)
assert(context.read<String>("data.feedEntries[1].featuredImageUrl") == dummyKotlinBlogEntry.featuredImageUrl)
assert(context.read<String>("data.feedEntries[1].description") == dummyKotlinBlogEntry.description)

val dummyKotlinYouTubeEntry = DummyKotlinYouTubeItem.toKotlinYouTubeEntry()
assertEquals(dummyKotlinYouTubeEntry.id, context.read("data.feedEntries[2].id"))
assertEquals(dummyKotlinYouTubeEntry.title, context.read("data.feedEntries[2].title"))
assertEquals(dummyKotlinYouTubeEntry.publishTime, context.read<String>("data.feedEntries[2].publishTime").toInstant())
assertEquals(dummyKotlinYouTubeEntry.contentUrl, context.read("data.feedEntries[2].contentUrl"))
assertEquals(dummyKotlinYouTubeEntry.thumbnailUrl, context.read("data.feedEntries[2].thumbnailUrl"))
assertEquals(dummyKotlinYouTubeEntry.description, context.read("data.feedEntries[2].description"))
assert(context.read<String>("data.feedEntries[2].id") == dummyKotlinYouTubeEntry.id)
assert(context.read<String>("data.feedEntries[2].title") == dummyKotlinYouTubeEntry.title)
assert(context.read<String>("data.feedEntries[2].publishTime").toInstant() == dummyKotlinYouTubeEntry.publishTime)
assert(context.read<String>("data.feedEntries[2].contentUrl") == dummyKotlinYouTubeEntry.contentUrl)
assert(context.read<String>("data.feedEntries[2].thumbnailUrl") == dummyKotlinYouTubeEntry.thumbnailUrl)
assert(context.read<String>("data.feedEntries[2].description") == dummyKotlinYouTubeEntry.description)

val dummyTalkingKotlinEntry = DummyTalkingKotlinItem.toTalkingKotlinEntry()
assertEquals(dummyTalkingKotlinEntry.id, context.read("data.feedEntries[3].id"))
assertEquals(dummyTalkingKotlinEntry.title, context.read("data.feedEntries[3].title"))
assertEquals(dummyTalkingKotlinEntry.publishTime, context.read<String>("data.feedEntries[3].publishTime").toInstant())
assertEquals(dummyTalkingKotlinEntry.contentUrl, context.read("data.feedEntries[3].contentUrl"))
assertEquals(dummyTalkingKotlinEntry.audioUrl, context.read("data.feedEntries[3].audioUrl"))
assertEquals(dummyTalkingKotlinEntry.thumbnailUrl, context.read("data.feedEntries[3].thumbnailUrl"))
assertEquals(dummyTalkingKotlinEntry.summary, context.read("data.feedEntries[3].summary"))
assertEquals(dummyTalkingKotlinEntry.duration, context.read("data.feedEntries[3].duration"))
assert(context.read<String>("data.feedEntries[3].id") == dummyTalkingKotlinEntry.id)
assert(context.read<String>("data.feedEntries[3].title") == dummyTalkingKotlinEntry.title)
assert(context.read<String>("data.feedEntries[3].publishTime").toInstant() == dummyTalkingKotlinEntry.publishTime)
assert(context.read<String>("data.feedEntries[3].contentUrl") == dummyTalkingKotlinEntry.contentUrl)
assert(context.read<String>("data.feedEntries[3].audioUrl") == dummyTalkingKotlinEntry.audioUrl)
assert(context.read<String>("data.feedEntries[3].thumbnailUrl") == dummyTalkingKotlinEntry.thumbnailUrl)
assert(context.read<String>("data.feedEntries[3].summary") == dummyTalkingKotlinEntry.summary)
assert(context.read<String>("data.feedEntries[3].duration") == dummyTalkingKotlinEntry.duration)
}

@Test
Expand All @@ -132,7 +131,7 @@ class FeedEntryDataFetcherTest {

val result = dgsQueryExecutor.execute(feedEntriesQuery)

assertEquals("INTERNAL", result.errors[0].extensions["errorType"])
assert(result.errors[0].extensions["errorType"] == "INTERNAL")
}

@Test
Expand All @@ -155,23 +154,23 @@ class FeedEntryDataFetcherTest {
mapOf("filters" to listOf(FeedSourceKey.KOTLIN_BLOG, FeedSourceKey.KOTLIN_YOUTUBE_CHANNEL)),
)

assertEquals(2, context.read("data.feedEntries.size()"))
assert(context.read<Int>("data.feedEntries.size()") == 2)

val dummyKotlinBlogEntry = DummyKotlinBlogItem.toKotlinBlogEntry()
assertEquals(dummyKotlinBlogEntry.id, context.read("data.feedEntries[0].id"))
assertEquals(dummyKotlinBlogEntry.title, context.read("data.feedEntries[0].title"))
assertEquals(dummyKotlinBlogEntry.publishTime, context.read<String>("data.feedEntries[0].publishTime").toInstant())
assertEquals(dummyKotlinBlogEntry.contentUrl, context.read("data.feedEntries[0].contentUrl"))
assertEquals(dummyKotlinBlogEntry.featuredImageUrl, context.read("data.feedEntries[0].featuredImageUrl"))
assertEquals(dummyKotlinBlogEntry.description, context.read("data.feedEntries[0].description"))
assert(context.read<String>("data.feedEntries[0].id") == dummyKotlinBlogEntry.id)
assert(context.read<String>("data.feedEntries[0].title") == dummyKotlinBlogEntry.title)
assert(context.read<String>("data.feedEntries[0].publishTime").toInstant() == dummyKotlinBlogEntry.publishTime)
assert(context.read<String>("data.feedEntries[0].contentUrl") == dummyKotlinBlogEntry.contentUrl)
assert(context.read<String>("data.feedEntries[0].featuredImageUrl") == dummyKotlinBlogEntry.featuredImageUrl)
assert(context.read<String>("data.feedEntries[0].description") == dummyKotlinBlogEntry.description)

val dummyKotlinYouTubeEntry = DummyKotlinYouTubeItem.toKotlinYouTubeEntry()
assertEquals(dummyKotlinYouTubeEntry.id, context.read("data.feedEntries[1].id"))
assertEquals(dummyKotlinYouTubeEntry.title, context.read("data.feedEntries[1].title"))
assertEquals(dummyKotlinYouTubeEntry.publishTime, context.read<String>("data.feedEntries[1].publishTime").toInstant())
assertEquals(dummyKotlinYouTubeEntry.contentUrl, context.read("data.feedEntries[1].contentUrl"))
assertEquals(dummyKotlinYouTubeEntry.thumbnailUrl, context.read("data.feedEntries[1].thumbnailUrl"))
assertEquals(dummyKotlinYouTubeEntry.description, context.read("data.feedEntries[1].description"))
assert(context.read<String>("data.feedEntries[1].id") == dummyKotlinYouTubeEntry.id)
assert(context.read<String>("data.feedEntries[1].title") == dummyKotlinYouTubeEntry.title)
assert(context.read<String>("data.feedEntries[1].publishTime").toInstant() == dummyKotlinYouTubeEntry.publishTime)
assert(context.read<String>("data.feedEntries[1].contentUrl") == dummyKotlinYouTubeEntry.contentUrl)
assert(context.read<String>("data.feedEntries[1].thumbnailUrl") == dummyKotlinYouTubeEntry.thumbnailUrl)
assert(context.read<String>("data.feedEntries[1].description") == dummyKotlinYouTubeEntry.description)
}

private fun String.toInstant(): Instant = Instant.parse(this)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,10 @@ import com.netflix.graphql.dgs.autoconfig.DgsAutoConfiguration
import io.github.reactivecircus.kstreamlined.backend.TestKSConfiguration
import io.github.reactivecircus.kstreamlined.backend.scalar.InstantScalar
import io.github.reactivecircus.kstreamlined.backend.schema.generated.types.FeedSourceKey
import org.junit.jupiter.api.Test
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.context.SpringBootTest
import org.springframework.test.context.ContextConfiguration
import kotlin.test.assertEquals
import kotlin.test.Test

@SpringBootTest(classes = [DgsAutoConfiguration::class, FeedSourceDataFetcher::class, InstantScalar::class])
@ContextConfiguration(classes = [TestKSConfiguration::class])
Expand All @@ -32,20 +31,20 @@ class FeedSourceDataFetcherTest {
fun `feedSources query returns all available feed sources`() {
val context = dgsQueryExecutor.executeAndGetDocumentContext(feedSourcesQuery)

assertEquals(FeedSourceKey.KOTLIN_BLOG.name, context.read("data.feedSources[0].key"))
assertEquals(FeedSourceTitle.KotlinBlog, context.read("data.feedSources[0].title"))
assertEquals(FeedSourceDescription.KotlinBlog, context.read("data.feedSources[0].description"))
assert(context.read<String>("data.feedSources[0].key") == FeedSourceKey.KOTLIN_BLOG.name)
assert(context.read<String>("data.feedSources[0].title") == FeedSourceTitle.KotlinBlog)
assert(context.read<String>("data.feedSources[0].description") == FeedSourceDescription.KotlinBlog)

assertEquals(FeedSourceKey.KOTLIN_YOUTUBE_CHANNEL.name, context.read("data.feedSources[1].key"))
assertEquals(FeedSourceTitle.KotlinYouTube, context.read("data.feedSources[1].title"))
assertEquals(FeedSourceDescription.KotlinYouTube, context.read("data.feedSources[1].description"))
assert(context.read<String>("data.feedSources[1].key") == FeedSourceKey.KOTLIN_YOUTUBE_CHANNEL.name)
assert(context.read<String>("data.feedSources[1].title") == FeedSourceTitle.KotlinYouTube)
assert(context.read<String>("data.feedSources[1].description") == FeedSourceDescription.KotlinYouTube)

assertEquals(FeedSourceKey.TALKING_KOTLIN_PODCAST.name, context.read("data.feedSources[2].key"))
assertEquals(FeedSourceTitle.TalkingKotlin, context.read("data.feedSources[2].title"))
assertEquals(FeedSourceDescription.TalkingKotlin, context.read("data.feedSources[2].description"))
assert(context.read<String>("data.feedSources[2].key") == FeedSourceKey.TALKING_KOTLIN_PODCAST.name)
assert(context.read<String>("data.feedSources[2].title") == FeedSourceTitle.TalkingKotlin)
assert(context.read<String>("data.feedSources[2].description") == FeedSourceDescription.TalkingKotlin)

assertEquals(FeedSourceKey.KOTLIN_WEEKLY.name, context.read("data.feedSources[3].key"))
assertEquals(FeedSourceTitle.KotlinWeekly, context.read("data.feedSources[3].title"))
assertEquals(FeedSourceDescription.KotlinWeekly, context.read("data.feedSources[3].description"))
assert(context.read<String>("data.feedSources[3].key") == FeedSourceKey.KOTLIN_WEEKLY.name)
assert(context.read<String>("data.feedSources[3].title") == FeedSourceTitle.KotlinWeekly)
assert(context.read<String>("data.feedSources[3].description") == FeedSourceDescription.KotlinWeekly)
}
}
Loading

0 comments on commit 444c671

Please sign in to comment.