diff --git a/backend/src/test/java/se/bilhalsning/entity/OrderStatusConverterTest.java b/backend/src/test/java/se/bilhalsning/entity/OrderStatusConverterTest.java new file mode 100644 index 0000000..4014646 --- /dev/null +++ b/backend/src/test/java/se/bilhalsning/entity/OrderStatusConverterTest.java @@ -0,0 +1,46 @@ +package se.bilhalsning.entity; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import org.junit.jupiter.api.Test; + +class OrderStatusConverterTest { + + private final OrderStatusConverter converter = new OrderStatusConverter(); + + @Test + void shouldReturnValueWhenStatusIsNotNull() { + assertEquals("sent", converter.convertToDatabaseColumn(OrderStatus.SENT)); + } + + @Test + void shouldReturnNullWhenStatusIsNull() { + assertNull(converter.convertToDatabaseColumn(null)); + } + + @Test + void shouldReturnEnumWhenDbDataMatchesValue() { + assertEquals(OrderStatus.PAID, converter.convertToEntityAttribute("paid")); + } + + @Test + void shouldReturnNullWhenDbDataIsNull() { + assertNull(converter.convertToEntityAttribute(null)); + } + + @Test + void shouldThrowWhenDbDataDoesNotMatchAnyStatus() { + assertThrows(IllegalArgumentException.class, + () -> converter.convertToEntityAttribute("bogus")); + } + + @Test + void shouldRoundtripAllEnumValues() { + for (OrderStatus status : OrderStatus.values()) { + String db = converter.convertToDatabaseColumn(status); + assertEquals(status, converter.convertToEntityAttribute(db)); + } + } +} diff --git a/backend/src/test/java/se/bilhalsning/entity/SubscriptionConverterTest.java b/backend/src/test/java/se/bilhalsning/entity/SubscriptionConverterTest.java new file mode 100644 index 0000000..115b771 --- /dev/null +++ b/backend/src/test/java/se/bilhalsning/entity/SubscriptionConverterTest.java @@ -0,0 +1,46 @@ +package se.bilhalsning.entity; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import org.junit.jupiter.api.Test; + +class SubscriptionConverterTest { + + private final SubscriptionConverter converter = new SubscriptionConverter(); + + @Test + void shouldReturnValueWhenSubscriptionIsNotNull() { + assertEquals("basic", converter.convertToDatabaseColumn(Subscription.BASIC)); + } + + @Test + void shouldReturnNullWhenSubscriptionIsNull() { + assertNull(converter.convertToDatabaseColumn(null)); + } + + @Test + void shouldReturnEnumWhenDbDataMatchesValue() { + assertEquals(Subscription.PRO, converter.convertToEntityAttribute("pro")); + } + + @Test + void shouldReturnNullWhenDbDataIsNull() { + assertNull(converter.convertToEntityAttribute(null)); + } + + @Test + void shouldThrowWhenDbDataDoesNotMatchAnySubscription() { + assertThrows(IllegalArgumentException.class, + () -> converter.convertToEntityAttribute("premium")); + } + + @Test + void shouldRoundtripAllEnumValues() { + for (Subscription subscription : Subscription.values()) { + String db = converter.convertToDatabaseColumn(subscription); + assertEquals(subscription, converter.convertToEntityAttribute(db)); + } + } +}