generated from pricelees/issue-pr-template
refactor: DatabaseCleanerExtension에서 region 테이블 생명주기 명시
This commit is contained in:
parent
3283779720
commit
8a7778ba19
@ -2,6 +2,7 @@ package roomescape.util
|
||||
|
||||
import io.kotest.core.listeners.AfterSpecListener
|
||||
import io.kotest.core.listeners.AfterTestListener
|
||||
import io.kotest.core.listeners.BeforeSpecListener
|
||||
import io.kotest.core.spec.Spec
|
||||
import io.kotest.core.test.TestCase
|
||||
import io.kotest.core.test.TestResult
|
||||
@ -11,7 +12,7 @@ import org.springframework.jdbc.core.JdbcTemplate
|
||||
import org.springframework.stereotype.Component
|
||||
|
||||
@Component
|
||||
class DatabaseCleaner(
|
||||
class TestDatabaseUtil(
|
||||
val entityManager: EntityManager,
|
||||
val jdbcTemplate: JdbcTemplate,
|
||||
) {
|
||||
@ -21,6 +22,12 @@ class DatabaseCleaner(
|
||||
}
|
||||
}
|
||||
|
||||
fun initializeRegion() {
|
||||
this::class.java.getResource("/schema/region-data.sql")?.readText()?.let {
|
||||
jdbcTemplate.execute(it)
|
||||
}
|
||||
}
|
||||
|
||||
fun clear(mode: CleanerMode) {
|
||||
entityManager.clear()
|
||||
|
||||
@ -40,7 +47,13 @@ enum class CleanerMode {
|
||||
ALL
|
||||
}
|
||||
|
||||
class DatabaseCleanerExtension: AfterTestListener, AfterSpecListener {
|
||||
class DatabaseCleanerExtension: BeforeSpecListener, AfterTestListener, AfterSpecListener {
|
||||
|
||||
override suspend fun beforeSpec(spec: Spec) {
|
||||
super.beforeSpec(spec)
|
||||
getCleaner().initializeRegion()
|
||||
}
|
||||
|
||||
override suspend fun afterTest(testCase: TestCase, result: TestResult) {
|
||||
super.afterTest(testCase, result)
|
||||
getCleaner().clear(CleanerMode.EXCEPT_REGION)
|
||||
@ -51,9 +64,9 @@ class DatabaseCleanerExtension: AfterTestListener, AfterSpecListener {
|
||||
getCleaner().clear(CleanerMode.ALL)
|
||||
}
|
||||
|
||||
private suspend fun getCleaner(): DatabaseCleaner {
|
||||
private suspend fun getCleaner(): TestDatabaseUtil {
|
||||
return testContextManager().testContext
|
||||
.applicationContext
|
||||
.getBean(DatabaseCleaner::class.java)
|
||||
.getBean(TestDatabaseUtil::class.java)
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user