优化
This commit is contained in:
+31
-6
@@ -5,7 +5,10 @@ import com.baiyue.firstleg.dto.SmartLoadingDtos.*;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.yaml.snakeyaml.Yaml;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
class PlatformSmartLoadingControllerContractTest {
|
||||
@@ -98,13 +101,35 @@ class PlatformSmartLoadingControllerContractTest {
|
||||
.contains("回到 IN_PROGRESS")
|
||||
.contains("COMPLETED 永久拒绝增量");
|
||||
}
|
||||
@Test void planContractEmbedsColoadGroupsWithoutPerInboundFanout() throws Exception {
|
||||
@Test void planContractEmbedsColoadGroupsAndPalletMembersWithoutPerInboundFanout() throws Exception {
|
||||
String yaml=java.nio.file.Files.readString(java.nio.file.Path.of("src/main/resources/openapi/firstleg-v1.yaml"));
|
||||
assertThat(yaml)
|
||||
.contains("required: [id, planNo, status, bookingId, version, canAssign, canEdit, finalCompletionStatus, coLoadGroups, items]")
|
||||
.contains("SmartLoadingPlanCoLoadGroup:")
|
||||
.contains("required: [groupId, groupNo, lockedPlanId, memberOrderCount, inboundFragmentCount, fullPackageCount, memberInboundIds]")
|
||||
.contains("调用方不得按 inboundId 扇出重建");
|
||||
Map<?,?> document=new Yaml().load(yaml);
|
||||
Map<?,?> schemas=(Map<?,?>)((Map<?,?>)document.get("components")).get("schemas");
|
||||
Map<?,?> plan=(Map<?,?>)schemas.get("SmartLoadingPlan");
|
||||
assertThat((List<?>)plan.get("required")).extracting(Object::toString)
|
||||
.containsExactlyInAnyOrder("id","planNo","status","bookingId","version","canAssign","canEdit",
|
||||
"finalCompletionStatus","coLoadGroups","palletMembers","items");
|
||||
Map<?,?> properties=(Map<?,?>)plan.get("properties");
|
||||
Map<?,?> groups=(Map<?,?>)properties.get("coLoadGroups");
|
||||
assertThat(groups.get("type")).isEqualTo("array");
|
||||
assertThat(((Map<?,?>)groups.get("items")).get("$ref"))
|
||||
.isEqualTo("#/components/schemas/SmartLoadingPlanCoLoadGroup");
|
||||
assertThat(groups.get("description").toString()).contains("调用方不得按 inboundId 扇出重建");
|
||||
Map<?,?> group=(Map<?,?>)schemas.get("SmartLoadingPlanCoLoadGroup");
|
||||
assertThat((List<?>)group.get("required")).extracting(Object::toString)
|
||||
.containsExactlyInAnyOrder("groupId","groupNo","lockedPlanId","memberOrderCount",
|
||||
"inboundFragmentCount","fullPackageCount","memberInboundIds");
|
||||
Map<?,?> pallets=(Map<?,?>)properties.get("palletMembers");
|
||||
assertThat(pallets.get("type")).isEqualTo("array");
|
||||
assertThat(((Map<?,?>)pallets.get("items")).get("$ref"))
|
||||
.isEqualTo("#/components/schemas/SmartLoadingPlanPalletMembers");
|
||||
Map<?,?> pallet=(Map<?,?>)schemas.get("SmartLoadingPlanPalletMembers");
|
||||
assertThat((List<?>)pallet.get("required")).extracting(Object::toString)
|
||||
.containsExactlyInAnyOrder("palletId","members");
|
||||
Map<?,?> members=(Map<?,?>)((Map<?,?>)pallet.get("properties")).get("members");
|
||||
assertThat(members.get("type")).isEqualTo("array");
|
||||
assertThat(((Map<?,?>)members.get("items")).get("$ref"))
|
||||
.isEqualTo("#/components/schemas/SmartLoadingCandidateGroupMember");
|
||||
}
|
||||
private void authority(String method,String permission,Class<?>...types)throws Exception{Method m=PlatformSmartLoadingController.class.getDeclaredMethod(method,types);assertThat(m.getAnnotation(PreAuthorize.class).value()).isEqualTo("hasAuthority('"+permission+"')");}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user