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" +}