generated from aura-ascend/template-service
add AccountUtil.kt
- AccountEntity toResponse - Account Request toEntity
This commit is contained in:
18
src/main/kotlin/ltd/lulz/util/AccountUtil.kt
Normal file
18
src/main/kotlin/ltd/lulz/util/AccountUtil.kt
Normal file
@@ -0,0 +1,18 @@
|
||||
package ltd.lulz.util
|
||||
|
||||
import java.math.RoundingMode.DOWN
|
||||
import ltd.lulz.model.Account
|
||||
import ltd.lulz.model.AccountEntity
|
||||
import org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR
|
||||
import org.springframework.web.server.ResponseStatusException
|
||||
|
||||
fun Account.Request.toEntity(): AccountEntity = AccountEntity(
|
||||
name = name,
|
||||
amount = amount.setScale(2, DOWN),
|
||||
)
|
||||
|
||||
fun AccountEntity.toResponse(): Account.Response = Account.Response(
|
||||
id = id ?: throw ResponseStatusException(INTERNAL_SERVER_ERROR),
|
||||
name = name,
|
||||
amount = amount,
|
||||
)
|
||||
75
src/test/kotlin/ltd/lulz/util/AccountUtilKtTest.kt
Normal file
75
src/test/kotlin/ltd/lulz/util/AccountUtilKtTest.kt
Normal 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")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user