generated from pricelees/issue-pr-template
[#48] Tosspay mocking 서버 구현을 위한 멀티모듈 전환 #49
@ -1,13 +1,12 @@
|
||||
package com.sangdol.roomescape.auth
|
||||
|
||||
import io.kotest.assertions.throwables.shouldThrow
|
||||
import io.kotest.core.spec.style.FunSpec
|
||||
import io.kotest.matchers.shouldBe
|
||||
import com.sangdol.roomescape.auth.exception.AuthErrorCode
|
||||
import com.sangdol.roomescape.auth.exception.AuthException
|
||||
import com.sangdol.roomescape.auth.infrastructure.jwt.JwtUtils
|
||||
import com.sangdol.roomescape.common.config.next
|
||||
import com.sangdol.roomescape.supports.tsidFactory
|
||||
import com.sangdol.roomescape.supports.IDGenerator
|
||||
import io.kotest.assertions.throwables.shouldThrow
|
||||
import io.kotest.core.spec.style.FunSpec
|
||||
import io.kotest.matchers.shouldBe
|
||||
|
||||
class JwtUtilsTest : FunSpec() {
|
||||
private val jwtUtils: JwtUtils = JwtUtils(
|
||||
@ -18,7 +17,7 @@ class JwtUtilsTest : FunSpec() {
|
||||
init {
|
||||
context("종합 테스트") {
|
||||
test("Subject + Claim을 담아 토큰을 생성한 뒤 읽어온다.") {
|
||||
val subject = "${tsidFactory.next()}"
|
||||
val subject = "${IDGenerator.create()}"
|
||||
val claim = mapOf("name" to "sangdol")
|
||||
|
||||
jwtUtils.createToken(subject, claim).also { token ->
|
||||
@ -32,7 +31,7 @@ class JwtUtilsTest : FunSpec() {
|
||||
}
|
||||
|
||||
context("실패 테스트") {
|
||||
val subject = "${tsidFactory.next()}"
|
||||
val subject = "${IDGenerator.create()}"
|
||||
val claim = mapOf("name" to "sangdol")
|
||||
val commonToken = jwtUtils.createToken(subject, claim)
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,12 +1,10 @@
|
||||
package com.sangdol.roomescape.data
|
||||
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook
|
||||
import com.sangdol.roomescape.common.config.next
|
||||
import com.sangdol.roomescape.store.infrastructure.persistence.StoreStatus
|
||||
import com.sangdol.roomescape.supports.IDGenerator
|
||||
import com.sangdol.roomescape.supports.randomPhoneNumber
|
||||
import com.sangdol.roomescape.supports.tsidFactory
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook
|
||||
import java.io.File
|
||||
import java.nio.file.Paths
|
||||
import java.time.LocalDateTime
|
||||
import java.time.ZoneId
|
||||
import java.time.format.DateTimeFormatter
|
||||
@ -146,7 +144,7 @@ class StoreDataInitializer {
|
||||
val createdAt = randomLocalDateTime()
|
||||
val updatedAt = createdAt
|
||||
|
||||
val id: Long = tsidFactory.next().also { storeIds.add(it) }
|
||||
val id: Long = IDGenerator.create().also { storeIds.add(it) }
|
||||
|
||||
val createdBy = creatableAdminIds.random()
|
||||
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
package com.sangdol.roomescape.supports
|
||||
|
||||
import org.springframework.data.repository.findByIdOrNull
|
||||
import com.sangdol.roomescape.common.config.next
|
||||
import com.sangdol.roomescape.payment.business.PaymentWriter
|
||||
import com.sangdol.roomescape.payment.infrastructure.client.CardDetail
|
||||
import com.sangdol.roomescape.payment.infrastructure.client.EasyPayDetail
|
||||
@ -31,6 +29,7 @@ import com.sangdol.roomescape.theme.infrastructure.persistence.ThemeRepository
|
||||
import com.sangdol.roomescape.theme.web.ThemeCreateRequest
|
||||
import com.sangdol.roomescape.theme.web.toEntity
|
||||
import com.sangdol.roomescape.user.infrastructure.persistence.UserEntity
|
||||
import org.springframework.data.repository.findByIdOrNull
|
||||
import java.time.LocalDateTime
|
||||
|
||||
class DummyInitializer(
|
||||
@ -43,7 +42,7 @@ class DummyInitializer(
|
||||
) {
|
||||
|
||||
fun createStore(
|
||||
id: Long = tsidFactory.next(),
|
||||
id: Long = IDGenerator.create(),
|
||||
name: String = "행복${randomPhoneNumber()}호점",
|
||||
address: String = "강북구 행복로 $name",
|
||||
contact: String = randomPhoneNumber(),
|
||||
@ -71,11 +70,11 @@ class DummyInitializer(
|
||||
fun createTheme(
|
||||
request: ThemeCreateRequest = ThemeFixture.createRequest
|
||||
): ThemeEntity {
|
||||
return request.toEntity(tsidFactory.next()).also { themeRepository.save(it) }
|
||||
return request.toEntity(IDGenerator.create()).also { themeRepository.save(it) }
|
||||
}
|
||||
|
||||
fun createSchedule(
|
||||
storeId: Long = tsidFactory.next(),
|
||||
storeId: Long = IDGenerator.create(),
|
||||
request: ScheduleCreateRequest = ScheduleFixture.createRequest,
|
||||
status: ScheduleStatus = ScheduleStatus.AVAILABLE
|
||||
): ScheduleEntity {
|
||||
@ -102,7 +101,7 @@ class DummyInitializer(
|
||||
|
||||
fun createPendingReservation(
|
||||
user: UserEntity,
|
||||
storeId: Long = tsidFactory.next(),
|
||||
storeId: Long = IDGenerator.create(),
|
||||
themeRequest: ThemeCreateRequest = ThemeFixture.createRequest,
|
||||
scheduleRequest: ScheduleCreateRequest = ScheduleFixture.createRequest,
|
||||
reservationRequest: PendingReservationCreateRequest = ReservationFixture.pendingCreateRequest,
|
||||
@ -129,14 +128,14 @@ class DummyInitializer(
|
||||
reserverContact = reservationRequest.reserverContact,
|
||||
participantCount = reservationRequest.participantCount,
|
||||
requirement = reservationRequest.requirement,
|
||||
).toEntity(id = tsidFactory.next(), userId = user.id)
|
||||
).toEntity(id = IDGenerator.create(), userId = user.id)
|
||||
|
||||
return reservationRepository.save(reservation)
|
||||
}
|
||||
|
||||
fun createConfirmReservation(
|
||||
user: UserEntity,
|
||||
storeId: Long = tsidFactory.next(),
|
||||
storeId: Long = IDGenerator.create(),
|
||||
themeRequest: ThemeCreateRequest = ThemeFixture.createRequest,
|
||||
scheduleRequest: ScheduleCreateRequest = ScheduleFixture.createRequest,
|
||||
reservationRequest: PendingReservationCreateRequest = ReservationFixture.pendingCreateRequest,
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
package com.sangdol.roomescape.supports
|
||||
|
||||
import com.github.f4b6a3.tsid.TsidFactory
|
||||
import com.sangdol.common.persistence.TsidIDGenerator
|
||||
import com.sangdol.roomescape.admin.infrastructure.persistence.AdminEntity
|
||||
import com.sangdol.roomescape.admin.infrastructure.persistence.AdminPermissionLevel
|
||||
import com.sangdol.roomescape.admin.infrastructure.persistence.AdminType
|
||||
import com.sangdol.roomescape.common.config.next
|
||||
import com.sangdol.roomescape.payment.infrastructure.client.*
|
||||
import com.sangdol.roomescape.payment.infrastructure.common.*
|
||||
import com.sangdol.roomescape.payment.web.PaymentCancelRequest
|
||||
@ -28,7 +28,7 @@ import java.time.LocalTime
|
||||
import java.time.OffsetDateTime
|
||||
|
||||
const val INVALID_PK: Long = 9999L
|
||||
val tsidFactory = TsidFactory(0)
|
||||
val IDGenerator = TsidIDGenerator(TsidFactory(0))
|
||||
|
||||
object StoreFixture {
|
||||
val registerRequest = StoreRegisterRequest(
|
||||
@ -40,7 +40,7 @@ object StoreFixture {
|
||||
)
|
||||
|
||||
fun create(
|
||||
id: Long = tsidFactory.next(),
|
||||
id: Long = IDGenerator.create(),
|
||||
name: String = "행복${randomPhoneNumber()}호점",
|
||||
address: String = "서울특별시 강북구 행복${randomPhoneNumber()}길",
|
||||
contact: String = randomPhoneNumber(),
|
||||
@ -72,12 +72,12 @@ object AdminFixture {
|
||||
)
|
||||
|
||||
fun createStoreAdmin(
|
||||
id: Long = tsidFactory.next(),
|
||||
id: Long = IDGenerator.create(),
|
||||
account: String = randomString(),
|
||||
password: String = "adminPassword",
|
||||
name: String = "admin12345",
|
||||
phone: String = randomPhoneNumber(),
|
||||
storeId: Long = tsidFactory.next(),
|
||||
storeId: Long = IDGenerator.create(),
|
||||
permissionLevel: AdminPermissionLevel = AdminPermissionLevel.FULL_ACCESS
|
||||
): AdminEntity {
|
||||
return create(
|
||||
@ -93,7 +93,7 @@ object AdminFixture {
|
||||
}
|
||||
|
||||
fun createHqAdmin(
|
||||
id: Long = tsidFactory.next(),
|
||||
id: Long = IDGenerator.create(),
|
||||
account: String = randomString(),
|
||||
password: String = "adminPassword",
|
||||
name: String = "admin12345",
|
||||
@ -113,13 +113,13 @@ object AdminFixture {
|
||||
}
|
||||
|
||||
fun create(
|
||||
id: Long = tsidFactory.next(),
|
||||
id: Long = IDGenerator.create(),
|
||||
account: String = randomString(),
|
||||
password: String = "adminPassword",
|
||||
name: String = "admin",
|
||||
phone: String = randomPhoneNumber(),
|
||||
type: AdminType = AdminType.STORE,
|
||||
storeId: Long? = tsidFactory.next(),
|
||||
storeId: Long? = IDGenerator.create(),
|
||||
permissionLevel: AdminPermissionLevel = AdminPermissionLevel.FULL_ACCESS
|
||||
): AdminEntity {
|
||||
val storeId = if (type == AdminType.HQ) null else storeId
|
||||
@ -144,7 +144,7 @@ object UserFixture {
|
||||
)
|
||||
|
||||
fun createUser(
|
||||
id: Long = tsidFactory.next(),
|
||||
id: Long = IDGenerator.create(),
|
||||
name: String = randomString(),
|
||||
email: String = randomEmail(),
|
||||
password: String = "a".repeat(MIN_PASSWORD_LENGTH),
|
||||
@ -186,7 +186,7 @@ object ThemeFixture {
|
||||
)
|
||||
|
||||
fun create(
|
||||
id: Long = tsidFactory.next(),
|
||||
id: Long = IDGenerator.create(),
|
||||
name: String = randomString(),
|
||||
description: String = randomString(),
|
||||
thumbnailUrl: String = "http://www.bing.com/search?q=fugit",
|
||||
@ -218,15 +218,15 @@ object ScheduleFixture {
|
||||
val createRequest: ScheduleCreateRequest = ScheduleCreateRequest(
|
||||
date = LocalDate.now().plusDays(1),
|
||||
time = LocalTime.now(),
|
||||
themeId = tsidFactory.next()
|
||||
themeId = IDGenerator.create()
|
||||
)
|
||||
|
||||
fun create(
|
||||
id: Long = tsidFactory.next(),
|
||||
id: Long = IDGenerator.create(),
|
||||
date: LocalDate = LocalDate.now().plusDays(1),
|
||||
time: LocalTime = LocalTime.now(),
|
||||
storeId: Long = tsidFactory.next(),
|
||||
themeId: Long = tsidFactory.next()
|
||||
storeId: Long = IDGenerator.create(),
|
||||
themeId: Long = IDGenerator.create()
|
||||
): ScheduleEntity = ScheduleEntityFactory.create(
|
||||
id = id,
|
||||
date = date,
|
||||
@ -245,7 +245,7 @@ object PaymentFixture {
|
||||
)
|
||||
|
||||
val cancelRequest: PaymentCancelRequest = PaymentCancelRequest(
|
||||
reservationId = tsidFactory.next(),
|
||||
reservationId = IDGenerator.create(),
|
||||
cancelReason = "cancelReason",
|
||||
)
|
||||
|
||||
@ -322,7 +322,7 @@ object PaymentFixture {
|
||||
|
||||
object ReservationFixture {
|
||||
val pendingCreateRequest: PendingReservationCreateRequest = PendingReservationCreateRequest(
|
||||
scheduleId = tsidFactory.next(),
|
||||
scheduleId = IDGenerator.create(),
|
||||
reserverName = "Wilbur Stuart",
|
||||
reserverContact = "wilbur@example.com",
|
||||
participantCount = 5,
|
||||
|
||||
@ -1,11 +1,5 @@
|
||||
package com.sangdol.roomescape.theme
|
||||
|
||||
import io.kotest.matchers.collections.shouldContainInOrder
|
||||
import io.kotest.matchers.collections.shouldHaveSize
|
||||
import org.hamcrest.CoreMatchers.equalTo
|
||||
import org.springframework.http.HttpMethod
|
||||
import org.springframework.http.HttpStatus
|
||||
import com.sangdol.roomescape.common.config.next
|
||||
import com.sangdol.roomescape.common.util.DateUtils
|
||||
import com.sangdol.roomescape.supports.*
|
||||
import com.sangdol.roomescape.theme.exception.ThemeErrorCode
|
||||
@ -14,6 +8,11 @@ import com.sangdol.roomescape.theme.infrastructure.persistence.ThemeRepository
|
||||
import com.sangdol.roomescape.theme.web.ThemeInfoResponse
|
||||
import com.sangdol.roomescape.theme.web.toEntity
|
||||
import com.sangdol.roomescape.user.infrastructure.persistence.UserEntity
|
||||
import io.kotest.matchers.collections.shouldContainInOrder
|
||||
import io.kotest.matchers.collections.shouldHaveSize
|
||||
import org.hamcrest.CoreMatchers.equalTo
|
||||
import org.springframework.http.HttpMethod
|
||||
import org.springframework.http.HttpStatus
|
||||
import java.time.LocalDate
|
||||
|
||||
class ThemeApiTest(
|
||||
@ -78,7 +77,7 @@ class ThemeApiTest(
|
||||
val user: UserEntity = testAuthUtil.defaultUser()
|
||||
|
||||
val themeIds: List<Long> = (1..5).map {
|
||||
themeRepository.save(ThemeFixture.createRequest.copy().toEntity(id = tsidFactory.next())).id
|
||||
themeRepository.save(ThemeFixture.createRequest.copy().toEntity(id = IDGenerator.create())).id
|
||||
}
|
||||
|
||||
val store = dummyInitializer.createStore()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user