fix(firstleg): keep truck links on container ownership
This commit is contained in:
+1
-2
@@ -33,7 +33,6 @@ class OceanBookingMapperContractTest {
|
||||
.contains("status='DRAFT' AND version=#{expectedVersion}")
|
||||
.contains("status=#{fromStatus} AND version=#{expectedVersion}")
|
||||
.contains("status='CONFIRMED' AND version=#{expectedVersion}")
|
||||
.contains("status='CHANGE_PENDING' AND version=#{expectedVersion}")
|
||||
.contains("status IN ('SUBMITTED','CONFIRMED','CHANGE_PENDING')");
|
||||
.contains("status='CHANGE_PENDING' AND version=#{expectedVersion}");
|
||||
}
|
||||
}
|
||||
|
||||
+15
-5
@@ -22,7 +22,17 @@ class Phase3BookingTruckPermissionSqlContractTest {
|
||||
private static final Pattern OCEAN_CODE = Pattern.compile("platform:firstleg:ocean-booking:[a-z-]+");
|
||||
private static final Pattern TRUCK_CODE = Pattern.compile("platform:firstleg:truck-appointment:[a-z-]+");
|
||||
|
||||
private static final Set<String> OCEAN_PERMISSIONS = Set.of(
|
||||
private static final Set<String> OCEAN_CONTROLLER_PERMISSIONS = Set.of(
|
||||
"platform:firstleg:ocean-booking:list",
|
||||
"platform:firstleg:ocean-booking:create",
|
||||
"platform:firstleg:ocean-booking:edit",
|
||||
"platform:firstleg:ocean-booking:submit",
|
||||
"platform:firstleg:ocean-booking:confirm",
|
||||
"platform:firstleg:ocean-booking:release",
|
||||
"platform:firstleg:ocean-booking:cancel",
|
||||
"platform:firstleg:ocean-booking:change");
|
||||
|
||||
private static final Set<String> OCEAN_SQL_PERMISSIONS = Set.of(
|
||||
"platform:firstleg:ocean-booking:list",
|
||||
"platform:firstleg:ocean-booking:create",
|
||||
"platform:firstleg:ocean-booking:edit",
|
||||
@@ -40,16 +50,16 @@ class Phase3BookingTruckPermissionSqlContractTest {
|
||||
"platform:firstleg:truck-appointment:operate");
|
||||
|
||||
@Test
|
||||
void controllerAuthoritiesExactlyMatchModuleAndUnifiedPermissionCodes() throws Exception {
|
||||
assertThat(authorities(PlatformOceanBookingController.class)).isEqualTo(OCEAN_PERMISSIONS);
|
||||
void controllerAuthoritiesAndPersistedPermissionCodesMatchTheirActiveContracts() throws Exception {
|
||||
assertThat(authorities(PlatformOceanBookingController.class)).isEqualTo(OCEAN_CONTROLLER_PERMISSIONS);
|
||||
assertThat(authorities(PlatformTruckAppointmentController.class)).isEqualTo(TRUCK_PERMISSIONS);
|
||||
|
||||
String oceanModule = resource("db/phase3-ocean-booking-schema.sql");
|
||||
String truckModule = resource("db/phase3-truck-appointment-schema.sql");
|
||||
String unified = unifiedSql();
|
||||
assertThat(codes(oceanModule, OCEAN_CODE)).isEqualTo(OCEAN_PERMISSIONS);
|
||||
assertThat(codes(oceanModule, OCEAN_CODE)).isEqualTo(OCEAN_SQL_PERMISSIONS);
|
||||
assertThat(codes(truckModule, TRUCK_CODE)).isEqualTo(TRUCK_PERMISSIONS);
|
||||
assertThat(codes(unified, OCEAN_CODE)).isEqualTo(OCEAN_PERMISSIONS);
|
||||
assertThat(codes(unified, OCEAN_CODE)).isEqualTo(OCEAN_SQL_PERMISSIONS);
|
||||
assertThat(codes(unified, TRUCK_CODE)).isEqualTo(TRUCK_PERMISSIONS);
|
||||
}
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.baiyue.firstleg.entity.LoadingPlanEntity;
|
||||
import com.baiyue.firstleg.entity.ContainerBookingEntity;
|
||||
import com.baiyue.firstleg.repository.TruckAppointmentRepository;
|
||||
import com.baiyue.firstleg.repository.SmartLoadingRepository;
|
||||
import com.baiyue.firstleg.repository.ContainerRepository;
|
||||
import com.baiyue.firstleg.oceanbooking.repository.OceanBookingRepository;
|
||||
import com.baiyue.firstleg.oceanbooking.entity.OceanBookingEntity;
|
||||
import com.baiyue.firstleg.oceanbooking.entity.OceanBookingContainerAllocationEntity;
|
||||
@@ -36,6 +37,7 @@ class TruckAppointmentServiceTest {
|
||||
@Mock TruckAppointmentRepository repository;
|
||||
@Mock OceanBookingRepository oceanBookings;
|
||||
@Mock SmartLoadingRepository loadingPlans;
|
||||
@Mock ContainerRepository containers;
|
||||
@Spy ObjectMapper objectMapper = JsonMapper.builder().findAndAddModules().build();
|
||||
@InjectMocks TruckAppointmentService service;
|
||||
|
||||
@@ -51,7 +53,7 @@ class TruckAppointmentServiceTest {
|
||||
when(oceanBookings.find(61L)).thenReturn(booking);
|
||||
ContainerBookingEntity container = new ContainerBookingEntity(); container.setId(71L);
|
||||
container.setCabinetNo("CAB-71"); container.setContainerNo("MSCU1234567");
|
||||
when(oceanBookings.containerBooking(71L)).thenReturn(container);
|
||||
when(containers.find(71L)).thenReturn(container);
|
||||
|
||||
TruckAppointmentEntity detail = service.detail(51L);
|
||||
|
||||
@@ -104,7 +106,7 @@ class TruckAppointmentServiceTest {
|
||||
OceanBookingEntity booking = new OceanBookingEntity(); booking.setId(99L); booking.setStatus("RELEASED"); booking.setCustomerId(7L); booking.setCustomerName("Canonical Customer");
|
||||
when(oceanBookings.find(99L)).thenReturn(booking);
|
||||
ContainerBookingEntity container = new ContainerBookingEntity(); container.setId(88L);
|
||||
when(oceanBookings.containerBooking(88L)).thenReturn(container);
|
||||
when(containers.find(88L)).thenReturn(container);
|
||||
var allocation = new OceanBookingContainerAllocationEntity();
|
||||
allocation.setContainerBookingId(88L);
|
||||
when(oceanBookings.allocations(99L)).thenReturn(java.util.List.of(allocation));
|
||||
@@ -125,7 +127,7 @@ class TruckAppointmentServiceTest {
|
||||
OceanBookingEntity booking = new OceanBookingEntity(); booking.setId(99L); booking.setStatus("RELEASED"); booking.setCustomerId(7L); booking.setCustomerName("Canonical Customer");
|
||||
when(oceanBookings.find(99L)).thenReturn(booking);
|
||||
ContainerBookingEntity container = new ContainerBookingEntity(); container.setId(88L);
|
||||
when(oceanBookings.containerBooking(88L)).thenReturn(container);
|
||||
when(containers.find(88L)).thenReturn(container);
|
||||
var allocation = new OceanBookingContainerAllocationEntity();
|
||||
allocation.setContainerBookingId(88L);
|
||||
when(oceanBookings.allocations(99L)).thenReturn(java.util.List.of(allocation));
|
||||
|
||||
Reference in New Issue
Block a user