package com.tourguide.modules.domain; import com.tourguide.modules.operation.domain.ServiceType; import com.tourguide.modules.order.domain.OrderStatus; import com.tourguide.modules.order.domain.PaymentStatus; import com.tourguide.modules.order.domain.RefundStatus; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; class DomainEnumTest { @Test void shouldExposeCanonicalServiceTypeCodes() { assertThat(ServiceType.values()).extracting(ServiceType::getCode) .containsExactly("GROUP_QUICK", "GROUP_PREMIUM", "PRIVATE_QUICK", "PRIVATE_PREMIUM"); } @Test void shouldKeepOrderPaymentAndRefundStatesSeparated() { assertThat(OrderStatus.isRefundable(OrderStatus.PENDING_ACCEPT.getCode())).isTrue(); assertThat(OrderStatus.isRefundable(OrderStatus.PENDING_PAYMENT.getCode())).isFalse(); assertThat(PaymentStatus.PAID.getCode()).isEqualTo("PAID"); assertThat(RefundStatus.REFUNDING.getCode()).isEqualTo("REFUNDING"); } }