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)); } } }