Get Account

- add AccountController
- add AccountEntity toAccountResponse in Mapping.kt
- add AccountService
- add AccountRepository
- add AccountEntity
This commit is contained in:
2024-12-29 07:07:44 +01:00
parent 573b4bd6fe
commit 6aee16c4a2
12 changed files with 330 additions and 0 deletions

View File

@@ -0,0 +1,82 @@
package ltd.hlaeja.util
import io.mockk.every
import io.mockk.mockkStatic
import io.mockk.unmockkStatic
import java.time.LocalDateTime
import java.time.ZoneId
import java.time.ZonedDateTime
import java.util.UUID
import kotlin.test.assertFailsWith
import ltd.hlaeja.entity.AccountEntity
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Nested
import org.junit.jupiter.api.Test
import org.springframework.web.server.ResponseStatusException
class MappingKtTest {
companion object {
val account = UUID.fromString("00000000-0000-0000-0000-000000000002")
val timestamp: ZonedDateTime = ZonedDateTime.of(LocalDateTime.of(2000, 1, 1, 0, 0, 0, 1), ZoneId.of("UTC"))
}
@BeforeEach
fun setUp() {
mockkStatic(ZonedDateTime::class)
every { ZonedDateTime.now() } returns timestamp
}
@AfterEach
fun tearDown() {
unmockkStatic(ZonedDateTime::class)
}
@Nested
inner class AccountMapping {
@Test
fun `test toAccountResponse when id is not null`() {
// Arrange
val accountEntity = AccountEntity(
id = account,
createdAt = timestamp,
updatedAt = timestamp,
enabled = true,
username = "username",
password = "password",
roles = "ROLE_ADMIN,ROLE_USER",
)
// Act
val result = accountEntity.toAccountResponse()
// Assert
assertThat(result.id).isEqualTo(accountEntity.id)
assertThat(result.timestamp).isEqualTo(accountEntity.updatedAt)
assertThat(result.enabled).isEqualTo(accountEntity.enabled)
assertThat(result.username).isEqualTo(accountEntity.username)
assertThat(result.roles).contains("ROLE_ADMIN", "ROLE_USER")
}
@Test
fun `test toAccountResponse when id is null`() {
// Arrange
val accountEntity = AccountEntity(
id = null,
createdAt = timestamp,
updatedAt = timestamp,
enabled = true,
username = "username",
password = "password",
roles = "ROLE_ADMIN,ROLE_USER",
)
// Act and Assert
assertFailsWith<ResponseStatusException> {
accountEntity.toAccountResponse()
}
}
}
}