优化
This commit is contained in:
+61
@@ -0,0 +1,61 @@
|
||||
package com.baiyue.lastleg.controller;
|
||||
|
||||
import com.baiyue.lastleg.delivery.controller.DeliveryTransferController;
|
||||
import com.baiyue.lastleg.dispatch.controller.DispatchController;
|
||||
import com.baiyue.lastleg.dispatch.pda.controller.DispatchPdaController;
|
||||
import com.baiyue.lastleg.inboundplan.pda.controller.InboundPalletAssignmentController;
|
||||
import com.baiyue.lastleg.inboundplan.pda.controller.InboundPdaController;
|
||||
import com.baiyue.lastleg.inventory.command.controller.InventoryCommandController;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
class Phase4BrowserApiBoundaryTest {
|
||||
@Test
|
||||
void inboundPdaAndUnloadPhotoApisUseThePdaAccessDomain() {
|
||||
assertTrue(basePath(InboundPdaController.class).startsWith("/api/pda/v1/"));
|
||||
assertTrue(basePath(InboundPalletAssignmentController.class).startsWith("/api/pda/v1/"));
|
||||
assertFalse(basePath(InboundPdaController.class).contains("/api/platform/"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void excludedOutboundControllersAreDisabledUnlessExplicitlyEnabledLater() {
|
||||
for (Class<?> type : new Class<?>[] {
|
||||
DispatchController.class, DeliveryTransferController.class, DispatchPdaController.class
|
||||
}) {
|
||||
ConditionalOnProperty condition = type.getAnnotation(ConditionalOnProperty.class);
|
||||
assertTrue(condition != null, type.getSimpleName());
|
||||
assertTrue(Arrays.asList(condition.name()).contains("lastleg.future-outbound-api.enabled"));
|
||||
assertFalse(condition.matchIfMissing());
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void platformInventoryCommandsDoNotMapOutboundAllocationPickingOrShipping() {
|
||||
Set<String> paths = Arrays.stream(InventoryCommandController.class.getDeclaredMethods())
|
||||
.flatMap(method -> Arrays.stream(method.getAnnotations()))
|
||||
.filter(annotation -> annotation.annotationType().getName().startsWith("org.springframework.web.bind.annotation"))
|
||||
.flatMap(annotation -> {
|
||||
try {
|
||||
return Arrays.stream((String[]) annotation.annotationType().getMethod("value").invoke(annotation));
|
||||
} catch (ReflectiveOperationException ignored) {
|
||||
return java.util.stream.Stream.empty();
|
||||
}
|
||||
}).collect(Collectors.toSet());
|
||||
assertFalse(paths.contains("/allocate"));
|
||||
assertFalse(paths.contains("/unallocate"));
|
||||
assertFalse(paths.contains("/pick"));
|
||||
assertFalse(paths.contains("/ship"));
|
||||
}
|
||||
|
||||
private static String basePath(Class<?> type) {
|
||||
return type.getAnnotation(RequestMapping.class).value()[0];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user