Search in sources :

Example 6 with JSITBusinessKnowledgeModel

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));
}
Also used : JSITBusinessKnowledgeModel(org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmn12.JSITBusinessKnowledgeModel) JSITKnowledgeSource(org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmn12.JSITKnowledgeSource) JSITAuthorityRequirement(org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmn12.JSITAuthorityRequirement) JSITKnowledgeRequirement(org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmn12.JSITKnowledgeRequirement) JSITDecision(org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmn12.JSITDecision) ArrayList(java.util.ArrayList) JSITInformationRequirement(org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmn12.JSITInformationRequirement) Test(org.junit.Test)

Aggregations

JSITBusinessKnowledgeModel (org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmn12.JSITBusinessKnowledgeModel)6 ArrayList (java.util.ArrayList)3 JSITAuthorityRequirement (org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmn12.JSITAuthorityRequirement)3 JSITDecision (org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmn12.JSITDecision)3 JSITKnowledgeRequirement (org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmn12.JSITKnowledgeRequirement)3 JSITKnowledgeSource (org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmn12.JSITKnowledgeSource)3 View (org.kie.workbench.common.stunner.core.graph.content.view.View)3 List (java.util.List)2 BusinessKnowledgeModel (org.kie.workbench.common.dmn.api.definition.model.BusinessKnowledgeModel)2 FunctionDefinition (org.kie.workbench.common.dmn.api.definition.model.FunctionDefinition)2 Description (org.kie.workbench.common.dmn.api.property.dmn.Description)2 Id (org.kie.workbench.common.dmn.api.property.dmn.Id)2 JSITDMNElementReference (org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmn12.JSITDMNElementReference)2 JSITFunctionDefinition (org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmn12.JSITFunctionDefinition)2 JSITInformationRequirement (org.kie.workbench.common.dmn.webapp.kogito.marshaller.js.model.dmn12.JSITInformationRequirement)2 BindableAdapterUtils.getDefinitionId (org.kie.workbench.common.stunner.core.definition.adapter.binding.BindableAdapterUtils.getDefinitionId)2 Edge (org.kie.workbench.common.stunner.core.graph.Edge)2 Node (org.kie.workbench.common.stunner.core.graph.Node)2 Test (org.junit.Test)1 Association (org.kie.workbench.common.dmn.api.definition.model.Association)1