use of org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmn12.JSITBusinessKnowledgeModel in project kie-wb-common by kiegroup.
the class DMNMarshallerTest method testMergeNodeRequirements.
@Test
public void testMergeNodeRequirements() {
final JSITDecision existingNode1 = makeDecision("id1");
final JSITBusinessKnowledgeModel existingNode2 = makeBusinessKnowledgeModel("id2");
final JSITKnowledgeSource existingNode3 = makeKnowledgeSource("id3");
final JSITDecision node1 = makeDecision("id1");
final JSITBusinessKnowledgeModel node2 = makeBusinessKnowledgeModel("id2");
final JSITKnowledgeSource node3 = makeKnowledgeSource("id3");
final JSITBusinessKnowledgeModel node4 = makeBusinessKnowledgeModel("id4");
final JSITKnowledgeSource node5 = makeKnowledgeSource("id5");
final DMNMarshaller dmnMarshaller = spy(new DMNMarshaller());
final JSITAuthorityRequirement node1AuthorityRequirement = mock(JSITAuthorityRequirement.class);
final JSITInformationRequirement node1InformationRequirement = mock(JSITInformationRequirement.class);
final JSITKnowledgeRequirement node1KnowledgeRequirement = mock(JSITKnowledgeRequirement.class);
final JSITAuthorityRequirement node2AuthorityRequirement = mock(JSITAuthorityRequirement.class);
final JSITKnowledgeRequirement node2KnowledgeRequirement = mock(JSITKnowledgeRequirement.class);
final JSITAuthorityRequirement node3AuthorityRequirement = mock(JSITAuthorityRequirement.class);
final List<JSITAuthorityRequirement> node1ExistingAuthorityRequirement = new ArrayList<>();
final List<JSITInformationRequirement> node1ExistingInformationRequirement = new ArrayList<>();
final List<JSITKnowledgeRequirement> node1ExistingKnowledgeRequirement = new ArrayList<>();
final List<JSITAuthorityRequirement> node2ExistingAuthorityRequirement = new ArrayList<>();
final List<JSITKnowledgeRequirement> node2ExistingKnowledgeRequirement = new ArrayList<>();
final List<JSITAuthorityRequirement> node3ExistingAuthorityRequirement = new ArrayList<>();
doReturn(node1).when(dmnMarshaller).getWrappedJSITDRGElement(eq(node1), any());
doReturn(node2).when(dmnMarshaller).getWrappedJSITDRGElement(eq(node2), any());
doReturn(node3).when(dmnMarshaller).getWrappedJSITDRGElement(eq(node3), any());
doReturn(node4).when(dmnMarshaller).getWrappedJSITDRGElement(eq(node4), any());
doReturn(node5).when(dmnMarshaller).getWrappedJSITDRGElement(eq(node5), any());
doReturn(true).when(dmnMarshaller).instanceOfDecision(eq(node1));
doReturn(true).when(dmnMarshaller).instanceOfBusinessKnowledgeModel(eq(node2));
doReturn(true).when(dmnMarshaller).instanceOfKnowledgeSource(eq(node3));
doReturn(true).when(dmnMarshaller).instanceOfBusinessKnowledgeModel(eq(node4));
doReturn(true).when(dmnMarshaller).instanceOfKnowledgeSource(eq(node5));
doReturn(node1ExistingAuthorityRequirement).when(existingNode1).getAuthorityRequirement();
doReturn(node1ExistingInformationRequirement).when(existingNode1).getInformationRequirement();
doReturn(node1ExistingKnowledgeRequirement).when(existingNode1).getKnowledgeRequirement();
doReturn(node2ExistingAuthorityRequirement).when(existingNode2).getAuthorityRequirement();
doReturn(node2ExistingKnowledgeRequirement).when(existingNode2).getKnowledgeRequirement();
doReturn(node3ExistingAuthorityRequirement).when(existingNode3).getAuthorityRequirement();
doReturn(new ArrayList<>(singletonList(node1AuthorityRequirement))).when(node1).getAuthorityRequirement();
doReturn(new ArrayList<>(singletonList(node1KnowledgeRequirement))).when(node1).getKnowledgeRequirement();
doReturn(new ArrayList<>(singletonList(node1InformationRequirement))).when(node1).getInformationRequirement();
doReturn(new ArrayList<>(singletonList(node2AuthorityRequirement))).when(node2).getAuthorityRequirement();
doReturn(new ArrayList<>(singletonList(node2KnowledgeRequirement))).when(node2).getKnowledgeRequirement();
doReturn(new ArrayList<>(singletonList(node3AuthorityRequirement))).when(node3).getAuthorityRequirement();
doAnswer((e) -> setList(node1ExistingAuthorityRequirement, e)).when(existingNode1).setAuthorityRequirement(any());
doAnswer((e) -> setList(node1ExistingInformationRequirement, e)).when(existingNode1).setInformationRequirement(any());
doAnswer((e) -> setList(node1ExistingKnowledgeRequirement, e)).when(existingNode1).setKnowledgeRequirement(any());
doAnswer((e) -> setList(node2ExistingAuthorityRequirement, e)).when(existingNode2).setAuthorityRequirement(any());
doAnswer((e) -> setList(node2ExistingKnowledgeRequirement, e)).when(existingNode2).setKnowledgeRequirement(any());
doAnswer((e) -> setList(node3ExistingAuthorityRequirement, e)).when(existingNode3).setAuthorityRequirement(any());
doAnswer((e) -> addAll(node1ExistingAuthorityRequirement, e)).when(existingNode1).addAllAuthorityRequirement(any());
doAnswer((e) -> addAll(node1ExistingInformationRequirement, e)).when(existingNode1).addAllInformationRequirement(any());
doAnswer((e) -> addAll(node1ExistingKnowledgeRequirement, e)).when(existingNode1).addAllKnowledgeRequirement(any());
doAnswer((e) -> addAll(node2ExistingAuthorityRequirement, e)).when(existingNode2).addAllAuthorityRequirement(any());
doAnswer((e) -> addAll(node2ExistingKnowledgeRequirement, e)).when(existingNode2).addAllKnowledgeRequirement(any());
doAnswer((e) -> addAll(node3ExistingAuthorityRequirement, e)).when(existingNode3).addAllAuthorityRequirement(any());
dmnMarshaller.mergeNodeRequirements(node1, existingNode1);
dmnMarshaller.mergeNodeRequirements(node2, existingNode2);
dmnMarshaller.mergeNodeRequirements(node3, existingNode3);
dmnMarshaller.mergeNodeRequirements(node4, existingNode2);
dmnMarshaller.mergeNodeRequirements(node5, existingNode3);
// Merge twice. But the values must be added once.
dmnMarshaller.mergeNodeRequirements(node1, existingNode1);
dmnMarshaller.mergeNodeRequirements(node2, existingNode2);
dmnMarshaller.mergeNodeRequirements(node3, existingNode3);
dmnMarshaller.mergeNodeRequirements(node4, existingNode2);
dmnMarshaller.mergeNodeRequirements(node5, existingNode3);
assertEquals(1, node1ExistingAuthorityRequirement.size());
assertEquals(1, node1ExistingInformationRequirement.size());
assertEquals(1, node1ExistingKnowledgeRequirement.size());
assertEquals(1, node2ExistingAuthorityRequirement.size());
assertEquals(1, node2ExistingKnowledgeRequirement.size());
assertEquals(1, node3ExistingAuthorityRequirement.size());
assertEquals(node1AuthorityRequirement, node1ExistingAuthorityRequirement.get(0));
assertEquals(node1InformationRequirement, node1ExistingInformationRequirement.get(0));
assertEquals(node1KnowledgeRequirement, node1ExistingKnowledgeRequirement.get(0));
assertEquals(node2AuthorityRequirement, node2ExistingAuthorityRequirement.get(0));
assertEquals(node2KnowledgeRequirement, node2ExistingKnowledgeRequirement.get(0));
assertEquals(node3AuthorityRequirement, node3ExistingAuthorityRequirement.get(0));
}
Aggregations