add AccountUtil.kt

- AccountEntity toResponse
- Account Request toEntity
This commit is contained in:
2025-09-11 12:56:36 +02:00
parent 79357e4f4d
commit dfadf203de
2 changed files with 93 additions and 0 deletions

View File

@@ -0,0 +1,75 @@
package ltd.lulz.util
import java.math.BigDecimal
import java.util.UUID
import kotlin.test.Test
import ltd.lulz.model.Account
import ltd.lulz.model.AccountEntity
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.assertThrows
import org.springframework.web.server.ResponseStatusException
@Suppress("MayBeConstant")
class AccountUtilKtTest {
companion object {
val name: String = "some name"
val amount: BigDecimal = BigDecimal.valueOf(0.01)
val uuid: UUID = UUID.fromString("00000000-0000-0000-0000-000000000000")
}
@Test
fun `account request to account entity`() {
// given
val request = Account.Request(name, amount)
// when
val result = request.toEntity()
// then
assertThat(result.id).isNull()
assertThat(result.name).isEqualTo(name)
assertThat(result.amount).isEqualTo(amount)
}
@Test
fun `account request to account entity cut decimals`() {
// given
val request = Account.Request(name, BigDecimal.valueOf(0.0099))
// when
val result = request.toEntity()
// then
assertThat(result.id).isNull()
assertThat(result.name).isEqualTo(name)
assertThat(result.amount.toString()).isEqualTo("0.00")
}
@Test
fun `account entity to account response`() {
// given
val entity = AccountEntity(uuid, name, amount)
// when
val result = entity.toResponse()
// then
assertThat(result.id).isEqualTo(uuid)
assertThat(result.name).isEqualTo(name)
}
@Test
fun `account entity to account response - fail`() {
// given
val entity = AccountEntity(null, name, amount)
// when
val exception = assertThrows<ResponseStatusException> {
entity.toResponse()
}
// then
assertThat(exception.message).isEqualTo("500 INTERNAL_SERVER_ERROR")
}
}