Search in sources :

Example 11 with HasTypeRef

use of org.kie.workbench.common.dmn.api.definition.HasTypeRef in project kie-wb-common by kiegroup.

the class PropertiesPanelNotifierTest method testNotifyExpressions.

@Test
public void testNotifyExpressions() {
    final Node node = mock(Node.class);
    final HasExpression hasExpression = mock(HasExpression.class);
    final Expression expression = mock(Expression.class);
    final HasTypeRef hasTypeRef1 = mock(HasTypeRef.class);
    final HasTypeRef hasTypeRef2 = mock(HasTypeRef.class);
    when(expression.getHasTypeRefs()).thenReturn(asList(hasTypeRef1, hasTypeRef2));
    when(hasExpression.getExpression()).thenReturn(expression);
    doNothing().when(notifier).notifyOutdatedElement(any(), any());
    notifier.notifyExpressions(node, hasExpression);
    verify(notifier).notifyOutdatedElement(node, hasTypeRef1);
    verify(notifier).notifyOutdatedElement(node, hasTypeRef2);
}
Also used : HasExpression(org.kie.workbench.common.dmn.api.definition.HasExpression) HasTypeRef(org.kie.workbench.common.dmn.api.definition.HasTypeRef) HasExpression(org.kie.workbench.common.dmn.api.definition.HasExpression) Expression(org.kie.workbench.common.dmn.api.definition.model.Expression) Node(org.kie.workbench.common.stunner.core.graph.Node) Test(org.junit.Test)

Example 12 with HasTypeRef

use of org.kie.workbench.common.dmn.api.definition.HasTypeRef in project kie-wb-common by kiegroup.

the class PropertiesPanelNotifierTest method testNotifyOutdatedNodeWhenNodeDoesNotHaveTypeRef.

@Test
public void testNotifyOutdatedNodeWhenNodeDoesNotHaveTypeRef() {
    final Node node = mock(Node.class);
    final HasTypeRef elementTypeRef = mock(HasTypeRef.class);
    final QName newQName = mock(QName.class);
    final String oldLocalPart = "tPerson";
    when(elementTypeRef.getTypeRef()).thenReturn(null);
    doNothing().when(notifier).refreshFormProperties(any());
    notifier.withOldLocalPart(oldLocalPart).withNewQName(newQName).notifyOutdatedElement(node, elementTypeRef);
    verify(elementTypeRef, never()).setTypeRef(any());
    verify(notifier, never()).refreshFormProperties(any());
}
Also used : HasTypeRef(org.kie.workbench.common.dmn.api.definition.HasTypeRef) QName(org.kie.workbench.common.dmn.api.property.dmn.QName) Node(org.kie.workbench.common.stunner.core.graph.Node) Test(org.junit.Test)

Example 13 with HasTypeRef

use of org.kie.workbench.common.dmn.api.definition.HasTypeRef in project kie-wb-common by kiegroup.

the class PropertiesPanelNotifierTest method testNotifyOutdatedNodeWhenNodeIsNotOutdated.

@Test
public void testNotifyOutdatedNodeWhenNodeIsNotOutdated() {
    final Node node = mock(Node.class);
    final HasTypeRef elementTypeRef = mock(HasTypeRef.class);
    final QName newQName = mock(QName.class);
    final QName typeRef = mock(QName.class);
    final String oldLocalPart = "tPerson";
    final String elementLocalPart = "";
    when(elementTypeRef.getTypeRef()).thenReturn(typeRef);
    when(typeRef.getLocalPart()).thenReturn(elementLocalPart);
    notifier.withOldLocalPart(oldLocalPart).withNewQName(newQName).notifyOutdatedElement(node, elementTypeRef);
    verify(elementTypeRef, never()).setTypeRef(any());
    verify(notifier, never()).refreshFormProperties(any());
}
Also used : HasTypeRef(org.kie.workbench.common.dmn.api.definition.HasTypeRef) QName(org.kie.workbench.common.dmn.api.property.dmn.QName) Node(org.kie.workbench.common.stunner.core.graph.Node) Test(org.junit.Test)

Example 14 with HasTypeRef

use of org.kie.workbench.common.dmn.api.definition.HasTypeRef in project kie-wb-common by kiegroup.

the class PropertiesPanelNotifierTest method testNotifyOutdatedNodeWhenNodeIsOutdated.

@Test
public void testNotifyOutdatedNodeWhenNodeIsOutdated() {
    final Node node = mock(Node.class);
    final HasTypeRef elementTypeRef = mock(HasTypeRef.class);
    final QName newQName = mock(QName.class);
    final QName typeRef = mock(QName.class);
    final String oldLocalPart = "tPerson";
    final String elementLocalPart = "tPerson";
    when(elementTypeRef.getTypeRef()).thenReturn(typeRef);
    when(typeRef.getLocalPart()).thenReturn(elementLocalPart);
    doNothing().when(notifier).refreshFormProperties(any());
    notifier.withOldLocalPart(oldLocalPart).withNewQName(newQName).notifyOutdatedElement(node, elementTypeRef);
    verify(elementTypeRef).setTypeRef(newQName);
    verify(notifier).refreshFormProperties(node);
}
Also used : HasTypeRef(org.kie.workbench.common.dmn.api.definition.HasTypeRef) QName(org.kie.workbench.common.dmn.api.property.dmn.QName) Node(org.kie.workbench.common.stunner.core.graph.Node) Test(org.junit.Test)

Example 15 with HasTypeRef

use of org.kie.workbench.common.dmn.api.definition.HasTypeRef in project kie-wb-common by kiegroup.

the class DecisionTableEditorDefinitionEnricher method buildOutputClausesByDataType.

void buildOutputClausesByDataType(final HasExpression hasExpression, final DecisionTable dTable, final DecisionRule decisionRule) {
    final HasTypeRef hasTypeRef = getHasTypeRef(hasExpression, dTable);
    final QName typeRef = !Objects.isNull(hasTypeRef) ? hasTypeRef.getTypeRef() : BuiltInType.UNDEFINED.asQName();
    final String name = DecisionTableDefaultValueUtilities.getNewOutputClauseName(dTable);
    final List<ClauseRequirement> outputClausesRequirement = generateOutputClauseRequirements(dmnGraphUtils.getModelDefinitions(), typeRef, name);
    if (outputClausesRequirement.isEmpty()) {
        dTable.getOutput().add(buildOutputClause(dTable, typeRef, name));
        populateOutputEntries(decisionRule);
    } else {
        outputClausesRequirement.stream().sorted(Comparator.comparing(outputClauseRequirement -> outputClauseRequirement.text)).map(outputClauseRequirement -> buildOutputClause(dTable, outputClauseRequirement.typeRef, outputClauseRequirement.text)).forEach(outputClause -> {
            dTable.getOutput().add(outputClause);
            populateOutputEntries(decisionRule);
        });
    }
}
Also used : DMNGraphUtils(org.kie.workbench.common.dmn.client.graph.DMNGraphUtils) Definitions(org.kie.workbench.common.dmn.api.definition.model.Definitions) LiteralExpression(org.kie.workbench.common.dmn.api.definition.model.LiteralExpression) Edge(org.kie.workbench.common.stunner.core.graph.Edge) DecisionTableOrientation(org.kie.workbench.common.dmn.api.definition.model.DecisionTableOrientation) ANY(org.kie.workbench.common.dmn.api.property.dmn.types.BuiltInType.ANY) HasVariable(org.kie.workbench.common.dmn.api.definition.HasVariable) ItemDefinitionUtils(org.kie.workbench.common.dmn.client.editors.types.common.ItemDefinitionUtils) TypeRefUtils(org.kie.workbench.common.dmn.client.editors.expressions.util.TypeRefUtils) HasTypeRef(org.kie.workbench.common.dmn.api.definition.HasTypeRef) ContextEntry(org.kie.workbench.common.dmn.api.definition.model.ContextEntry) RuleAnnotationClause(org.kie.workbench.common.dmn.api.definition.model.RuleAnnotationClause) Predicate(java.util.function.Predicate) NULL_NS_URI(org.kie.workbench.common.dmn.api.property.dmn.QName.NULL_NS_URI) DecisionRule(org.kie.workbench.common.dmn.api.definition.model.DecisionRule) HitPolicy(org.kie.workbench.common.dmn.api.definition.model.HitPolicy) ItemDefinition(org.kie.workbench.common.dmn.api.definition.model.ItemDefinition) OutputClause(org.kie.workbench.common.dmn.api.definition.model.OutputClause) Collectors(java.util.stream.Collectors) Objects(java.util.Objects) UnaryTests(org.kie.workbench.common.dmn.api.definition.model.UnaryTests) HasName(org.kie.workbench.common.dmn.api.definition.HasName) QName(org.kie.workbench.common.dmn.api.property.dmn.QName) List(java.util.List) InformationItem(org.kie.workbench.common.dmn.api.definition.model.InformationItem) IsInformationItem(org.kie.workbench.common.dmn.api.definition.model.IsInformationItem) BuiltInType(org.kie.workbench.common.dmn.api.property.dmn.types.BuiltInType) Optional(java.util.Optional) ApplicationScoped(javax.enterprise.context.ApplicationScoped) DecisionTable(org.kie.workbench.common.dmn.api.definition.model.DecisionTable) Node(org.kie.workbench.common.stunner.core.graph.Node) BuiltInTypeUtils.isBuiltInType(org.kie.workbench.common.dmn.api.editors.types.BuiltInTypeUtils.isBuiltInType) ArrayList(java.util.ArrayList) Inject(javax.inject.Inject) Name(org.kie.workbench.common.dmn.api.property.dmn.Name) HasExpression(org.kie.workbench.common.dmn.api.definition.HasExpression) SessionManager(org.kie.workbench.common.stunner.core.client.api.SessionManager) FunctionDefinition(org.kie.workbench.common.dmn.api.definition.model.FunctionDefinition) InputClauseLiteralExpression(org.kie.workbench.common.dmn.api.definition.model.InputClauseLiteralExpression) ExpressionEditorModelEnricher(org.kie.workbench.common.dmn.client.editors.expressions.types.ExpressionEditorModelEnricher) InputData(org.kie.workbench.common.dmn.api.definition.model.InputData) Definition(org.kie.workbench.common.stunner.core.graph.content.definition.Definition) DMNModelInstrumentedBase(org.kie.workbench.common.dmn.api.definition.model.DMNModelInstrumentedBase) Graph(org.kie.workbench.common.stunner.core.graph.Graph) Decision(org.kie.workbench.common.dmn.api.definition.model.Decision) InputClause(org.kie.workbench.common.dmn.api.definition.model.InputClause) RuleAnnotationClauseText(org.kie.workbench.common.dmn.api.definition.model.RuleAnnotationClauseText) Comparator(java.util.Comparator) Collections(java.util.Collections) HasTypeRef(org.kie.workbench.common.dmn.api.definition.HasTypeRef) QName(org.kie.workbench.common.dmn.api.property.dmn.QName)

Aggregations

HasTypeRef (org.kie.workbench.common.dmn.api.definition.HasTypeRef)22 Test (org.junit.Test)18 HasExpression (org.kie.workbench.common.dmn.api.definition.HasExpression)5 DMNModelInstrumentedBase (org.kie.workbench.common.dmn.api.definition.model.DMNModelInstrumentedBase)4 QName (org.kie.workbench.common.dmn.api.property.dmn.QName)4 Node (org.kie.workbench.common.stunner.core.graph.Node)4 HasVariable (org.kie.workbench.common.dmn.api.definition.HasVariable)3 ArrayList (java.util.ArrayList)2 List (java.util.List)2 Expression (org.kie.workbench.common.dmn.api.definition.model.Expression)2 InformationItem (org.kie.workbench.common.dmn.api.definition.model.InformationItem)2 IsInformationItem (org.kie.workbench.common.dmn.api.definition.model.IsInformationItem)2 Arrays.asList (java.util.Arrays.asList)1 Collections (java.util.Collections)1 Comparator (java.util.Comparator)1 Objects (java.util.Objects)1 Optional (java.util.Optional)1 Predicate (java.util.function.Predicate)1 Collectors (java.util.stream.Collectors)1 ApplicationScoped (javax.enterprise.context.ApplicationScoped)1