mirror of https://github.com/usbharu/Hideout.git
test: 何故かユニークインデックス違反でコケるのでテストごとにDBを初期化するように
This commit is contained in:
parent
f4df345407
commit
d6a54d290b
|
@ -7,27 +7,40 @@ import dev.usbharu.hideout.domain.model.Users
|
|||
import dev.usbharu.hideout.domain.model.UsersFollowers
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
import kotlinx.coroutines.test.runTest
|
||||
import org.jetbrains.exposed.sql.Database
|
||||
import org.jetbrains.exposed.sql.SchemaUtils
|
||||
import org.jetbrains.exposed.sql.select
|
||||
import org.jetbrains.exposed.sql.transactions.experimental.newSuspendedTransaction
|
||||
import org.junit.jupiter.api.Assertions.*
|
||||
import org.junit.jupiter.api.BeforeAll
|
||||
import org.jetbrains.exposed.sql.transactions.transaction
|
||||
import org.junit.jupiter.api.AfterEach
|
||||
import org.junit.jupiter.api.Assertions.assertIterableEquals
|
||||
import org.junit.jupiter.api.BeforeEach
|
||||
import org.junit.jupiter.api.Test
|
||||
import org.junit.jupiter.api.TestInstance
|
||||
import utils.DatabaseTestBase
|
||||
|
||||
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
|
||||
class UserRepositoryTest : DatabaseTestBase() {
|
||||
|
||||
@BeforeAll
|
||||
fun beforeAll() {
|
||||
class UserRepositoryTest {
|
||||
|
||||
lateinit var db: Database
|
||||
|
||||
@BeforeEach
|
||||
fun beforeEach() {
|
||||
db = Database.connect("jdbc:h2:mem:test;DB_CLOSE_DELAY=-1", driver = "org.h2.Driver")
|
||||
transaction(db) {
|
||||
SchemaUtils.create(Users)
|
||||
SchemaUtils.create(UsersFollowers)
|
||||
}
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
fun tearDown() {
|
||||
transaction(db) {
|
||||
|
||||
SchemaUtils.drop(UsersFollowers)
|
||||
SchemaUtils.drop(Users)
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `findFollowersById フォロワー一覧を取得`() = runTest {
|
||||
newSuspendedTransaction {
|
||||
val userRepository = UserRepository(db)
|
||||
val user = userRepository.create(
|
||||
User(
|
||||
|
@ -67,12 +80,11 @@ class UserRepositoryTest : DatabaseTestBase() {
|
|||
userRepository.findFollowersById(user.id).let {
|
||||
assertIterableEquals(listOf(follower, follower2), it)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `createFollower フォロワー追加`() = runTest {
|
||||
newSuspendedTransaction {
|
||||
val userRepository = UserRepository(db)
|
||||
val user = userRepository.create(
|
||||
User(
|
||||
|
@ -97,8 +109,12 @@ class UserRepositoryTest : DatabaseTestBase() {
|
|||
)
|
||||
)
|
||||
userRepository.createFollower(user.id, follower.id)
|
||||
val followerIds = UsersFollowers.select { UsersFollowers.userId eq user.id }.map { it[UsersFollowers.followerId] }
|
||||
transaction {
|
||||
|
||||
val followerIds =
|
||||
UsersFollowers.select { UsersFollowers.userId eq user.id }.map { it[UsersFollowers.followerId] }
|
||||
assertIterableEquals(listOf(follower.id), followerIds)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue