Skip to content

Commit d855b7a

Browse files
committed
refactor: replace MongoTestListener with MongoSupport for application record setup
1 parent 415e83c commit d855b7a

4 files changed

Lines changed: 21 additions & 20 deletions

File tree

src/test/kotlin/io/sdkman/broker/acceptance/HealthCheckAcceptanceSpec.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import io.kotest.matchers.shouldBe
55
import io.ktor.client.request.get
66
import io.ktor.http.HttpStatusCode
77
import io.ktor.server.testing.testApplication
8+
import io.sdkman.broker.support.MongoSupport
89
import io.sdkman.broker.support.MongoTestListener
910
import io.sdkman.broker.support.TestDependencyInjection
1011
import io.sdkman.broker.support.configureAppForTesting
@@ -17,7 +18,7 @@ class HealthCheckAcceptanceSpec : ShouldSpec() {
1718
init {
1819
should("return 200 OK when database is healthy") {
1920
// given: an initialised database
20-
MongoTestListener.setupValidAppRecord()
21+
MongoSupport.setupValidAppRecord()
2122

2223
// when: a GET request is made for "/meta/alive"
2324
testApplication {
@@ -56,7 +57,7 @@ class HealthCheckAcceptanceSpec : ShouldSpec() {
5657

5758
should("return 503 Service Unavailable when database has invalid application record") {
5859
// given: an uninitialised database with an invalid application record
59-
MongoTestListener.setupInvalidAppRecord()
60+
MongoSupport.setupInvalidAppRecord()
6061

6162
// when: a GET request is made for "/meta/alive"
6263
testApplication {

src/test/kotlin/io/sdkman/broker/adapter/secondary/persistence/MongoApplicationRepositoryIntegrationSpec.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import arrow.core.Some
55
import io.kotest.core.spec.style.ShouldSpec
66
import io.sdkman.broker.domain.model.Application
77
import io.sdkman.broker.domain.repository.RepositoryError
8+
import io.sdkman.broker.support.MongoSupport
89
import io.sdkman.broker.support.MongoTestListener
910
import io.sdkman.broker.support.shouldBeLeftAnd
1011
import io.sdkman.broker.support.shouldBeRight
@@ -16,7 +17,7 @@ class MongoApplicationRepositoryIntegrationSpec : ShouldSpec({
1617

1718
should("return application when record exists with valid alive status") {
1819
// given
19-
MongoTestListener.setupValidAppRecord()
20+
MongoSupport.setupValidAppRecord()
2021

2122
// when
2223
val result = repository.findApplication()
@@ -40,7 +41,7 @@ class MongoApplicationRepositoryIntegrationSpec : ShouldSpec({
4041

4142
should("return an error when application record has invalid alive status") {
4243
// given
43-
MongoTestListener.setupInvalidAppRecord()
44+
MongoSupport.setupInvalidAppRecord()
4445

4546
// when
4647
val result = repository.findApplication()

src/test/kotlin/io/sdkman/broker/support/MongoSupport.kt

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import org.bson.Document
55

66
object MongoSupport {
77
fun setupVersion(version: Version) {
8-
val versionsCollection = MongoTestListener.database.getCollection("versions")
8+
val versionsCollection = MongoTestListener.versionsCollection
99
versionsCollection.insertOne(
1010
Document().apply {
1111
put("candidate", version.candidate)
@@ -20,4 +20,16 @@ object MongoSupport {
2020
}
2121
)
2222
}
23-
}
23+
24+
// Sets up a valid application record
25+
fun setupValidAppRecord() {
26+
val applicationCollection = MongoTestListener.applicationCollection
27+
applicationCollection.insertOne(Document("alive", "OK"))
28+
}
29+
30+
// Sets up an invalid application record
31+
fun setupInvalidAppRecord() {
32+
val applicationCollection = MongoTestListener.applicationCollection
33+
applicationCollection.insertOne(Document("alive", "NOT_OK"))
34+
}
35+
}

src/test/kotlin/io/sdkman/broker/support/MongoTestListener.kt

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import com.mongodb.MongoClient
44
import io.kotest.core.listeners.TestListener
55
import io.kotest.core.spec.Spec
66
import io.kotest.core.test.TestCase
7-
import org.bson.Document
87
import org.testcontainers.containers.MongoDBContainer
98
import org.testcontainers.utility.DockerImageName
109

@@ -47,20 +46,8 @@ object MongoTestListener : TestListener {
4746
}
4847

4948
// Resets the database to a clean state
50-
fun resetDatabase() {
49+
private fun resetDatabase() {
5150
applicationCollection.drop()
5251
versionsCollection.drop()
5352
}
54-
55-
// Sets up a valid application record
56-
fun setupValidAppRecord() {
57-
resetDatabase()
58-
applicationCollection.insertOne(Document("alive", "OK"))
59-
}
60-
61-
// Sets up an invalid application record
62-
fun setupInvalidAppRecord() {
63-
resetDatabase()
64-
applicationCollection.insertOne(Document("alive", "NOT_OK"))
65-
}
6653
}

0 commit comments

Comments
 (0)