From 1de8d08cb75d252f1e4c25d0c99017e9708d927b Mon Sep 17 00:00:00 2001 From: pricelees Date: Mon, 15 Sep 2025 12:29:05 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20Fixture=EC=9D=98=20=EC=A4=91?= =?UTF-8?q?=EB=B3=B5=EA=B0=92=20=EB=AC=B8=EC=A0=9C=EB=A5=BC=20=ED=95=B4?= =?UTF-8?q?=EC=86=8C=ED=95=98=EA=B8=B0=20=EC=9C=84=ED=95=9C=20=EB=9E=9C?= =?UTF-8?q?=EB=8D=A4=20=EC=9C=A0=ED=8B=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kotlin/roomescape/supports/Fixtures.kt | 54 +++++++++---------- .../kotlin/roomescape/supports/TestUtil.kt | 30 +++++++++++ 2 files changed, 54 insertions(+), 30 deletions(-) create mode 100644 src/test/kotlin/roomescape/supports/TestUtil.kt diff --git a/src/test/kotlin/roomescape/supports/Fixtures.kt b/src/test/kotlin/roomescape/supports/Fixtures.kt index d793a0bd..ef936341 100644 --- a/src/test/kotlin/roomescape/supports/Fixtures.kt +++ b/src/test/kotlin/roomescape/supports/Fixtures.kt @@ -25,17 +25,11 @@ import java.time.OffsetDateTime const val INVALID_PK: Long = 9999L val tsidFactory = TsidFactory(0) -fun randomPhoneNumber(): String { - val prefix = "010" - val middle = (1000..9999).random() - val last = (1000..9999).random() - return "$prefix$middle$last" -} object StoreFixture { fun create( id: Long = tsidFactory.next(), - name: String = "테스트행복점", + name: String = "테스트-${randomString()}점", address: String = "서울특별시 강북구 행복길 123", businessRegNum: String = "123-45-67890", regionCode: String = "1111000000" @@ -49,24 +43,21 @@ object StoreFixture { } object AdminFixture { - val default: AdminEntity = create() - val storeDefault: AdminEntity = create( - account = "admin-store", - phone = randomPhoneNumber(), - type = AdminType.STORE, - storeId = tsidFactory.next() + val default: AdminEntity = create( + account = "default" ) - val hqDefault: AdminEntity = create( - account = "admin-hq", - phone = randomPhoneNumber(), - type = AdminType.HQ, - storeId = null + val storeDefault: AdminEntity = createStoreAdmin( + account = "store-default", + ) + + val hqDefault: AdminEntity = createHqAdmin( + account = "hq-default", ) fun createStoreAdmin( id: Long = tsidFactory.next(), - account: String = "admin", + account: String = randomString(), password: String = "adminPassword", name: String = "admin12345", phone: String = randomPhoneNumber(), @@ -87,7 +78,7 @@ object AdminFixture { fun createHqAdmin( id: Long = tsidFactory.next(), - account: String = "admin", + account: String = randomString(), password: String = "adminPassword", name: String = "admin12345", phone: String = randomPhoneNumber(), @@ -107,9 +98,9 @@ object AdminFixture { fun create( id: Long = tsidFactory.next(), - account: String = "admin", + account: String = randomString(), password: String = "adminPassword", - name: String = "admin12345", + name: String = "admin", phone: String = randomPhoneNumber(), type: AdminType = AdminType.STORE, storeId: Long? = tsidFactory.next(), @@ -127,14 +118,17 @@ object AdminFixture { } object UserFixture { - val default: UserEntity = createUser() + val default: UserEntity = createUser( + name = "default", + email = "default-user@test.com" + ) fun createUser( id: Long = tsidFactory.next(), - name: String = "sample", - email: String = "sample@example.com", + name: String = randomString(), + email: String = randomEmail(), password: String = "a".repeat(MIN_PASSWORD_LENGTH), - phone: String = "01012345678", + phone: String = randomPhoneNumber(), regionCode: String = "1111000000", status: UserStatus = UserStatus.ACTIVE ): UserEntity = UserEntity( @@ -148,17 +142,17 @@ object UserFixture { ) val createRequest: UserCreateRequest = UserCreateRequest( - name = "sample", - email = "sample@example.com", + name = randomString(), + email = randomEmail(), password = "a".repeat(MIN_PASSWORD_LENGTH), - phone = "01012345678", + phone = randomPhoneNumber(), regionCode = "1111000000" ) } object ThemeFixture { val createRequest: ThemeCreateRequest = ThemeCreateRequest( - name = "Matilda Green", + name = randomString(), description = "constituto", thumbnailUrl = "https://duckduckgo.com/?q=mediocrem", difficulty = Difficulty.VERY_EASY, diff --git a/src/test/kotlin/roomescape/supports/TestUtil.kt b/src/test/kotlin/roomescape/supports/TestUtil.kt new file mode 100644 index 00000000..076be785 --- /dev/null +++ b/src/test/kotlin/roomescape/supports/TestUtil.kt @@ -0,0 +1,30 @@ +package roomescape.supports + +import kotlin.random.Random + +inline fun initialize(name: String, block: () -> T): T { + return block() +} + +fun randomPhoneNumber(): String { + val prefix = "010" + val middle = (1000..9999).random() + val last = (1000..9999).random() + return "$prefix$middle$last" +} + +fun randomString(): String { + val chars = ('a'..'z') + ('0'..'9') + return (1..10) + .map { chars.random() } + .joinToString("") +} + +fun randomEmail(): String = "${randomString()}@test.com" + +fun randomBusinessRegNum(): String { + val part1 = Random.nextInt(100, 1000) + val part2 = Random.nextInt(10, 100) + val part3 = Random.nextInt(10000, 100000) + return "$part1-$part2-$part3" +}