use of org.kie.workbench.common.dmn.api.definition.model.FunctionDefinition in project kie-wb-common by kiegroup.
the class PMMLIncludedModelHandlerTest method makeTopLevelPMMLFunctionDefinition.
private FunctionDefinition makeTopLevelPMMLFunctionDefinition(final String documentName, final String modelName) {
final FunctionDefinition function = new FunctionDefinition();
function.setKind(FunctionDefinition.Kind.PMML);
final Context functionExpression = new Context();
function.setExpression(functionExpression);
final ContextEntry functionContextEntry1 = new ContextEntry();
final InformationItem functionContextEntry1Variable = new InformationItem();
final LiteralExpressionPMMLDocument functionContextEntry1Value = new LiteralExpressionPMMLDocument();
functionContextEntry1Variable.getName().setValue(LiteralExpressionPMMLDocument.VARIABLE_DOCUMENT);
functionContextEntry1.setVariable(functionContextEntry1Variable);
functionContextEntry1Value.getText().setValue("\"" + documentName + "\"");
functionContextEntry1.setExpression(functionContextEntry1Value);
final ContextEntry functionContextEntry2 = new ContextEntry();
final InformationItem functionContextEntry2Variable = new InformationItem();
final LiteralExpressionPMMLDocumentModel functionContextEntry2Value = new LiteralExpressionPMMLDocumentModel();
functionContextEntry2Variable.getName().setValue(LiteralExpressionPMMLDocumentModel.VARIABLE_MODEL);
functionContextEntry2.setVariable(functionContextEntry2Variable);
functionContextEntry2Value.getText().setValue("\"" + modelName + "\"");
functionContextEntry2.setExpression(functionContextEntry2Value);
functionExpression.getContextEntry().add(functionContextEntry1);
functionExpression.getContextEntry().add(functionContextEntry2);
return function;
}
use of org.kie.workbench.common.dmn.api.definition.model.FunctionDefinition in project kie-wb-common by kiegroup.
the class PMMLIncludedModelHandlerTest method setupBusinessKnowledgeModelWithNestedFunction.
private List<BusinessKnowledgeModel> setupBusinessKnowledgeModelWithNestedFunction() {
final List<DRGElement> drgElements = new ArrayList<>();
final BusinessKnowledgeModel bkm1 = new BusinessKnowledgeModel();
final FunctionDefinition bkm1Function = new FunctionDefinition();
bkm1Function.setKind(FunctionDefinition.Kind.FEEL);
bkm1Function.setExpression(makeNestedLiteralExpression());
bkm1.setEncapsulatedLogic(bkm1Function);
final BusinessKnowledgeModel bkm2 = new BusinessKnowledgeModel();
final FunctionDefinition bkm2Function = new FunctionDefinition();
bkm2Function.setKind(FunctionDefinition.Kind.FEEL);
bkm2Function.setExpression(makeNestedPMMLFunctionDefinition(DOCUMENT_NAME_ORIGINAL, MODEL_NAME));
bkm2.setEncapsulatedLogic(bkm2Function);
final BusinessKnowledgeModel bkm3 = new BusinessKnowledgeModel();
final FunctionDefinition bkm3Function = new FunctionDefinition();
bkm3Function.setKind(FunctionDefinition.Kind.FEEL);
bkm3Function.setExpression(makeNestedPMMLFunctionDefinition(UNAFFECTED_DOCUMENT, UNAFFECTED_MODEL));
bkm3.setEncapsulatedLogic(bkm3Function);
drgElements.add(bkm1);
drgElements.add(bkm2);
drgElements.add(bkm3);
when(dmnGraphUtils.getModelDRGElements()).thenReturn(drgElements);
return Arrays.asList(bkm1, bkm2, bkm3);
}
use of org.kie.workbench.common.dmn.api.definition.model.FunctionDefinition in project kie-wb-common by kiegroup.
the class PMMLIncludedModelHandlerTest method assertNestedFunctionDefinition.
private void assertNestedFunctionDefinition(final BusinessKnowledgeModel bkm, final String expectedDocumentValue, final String expectedModelValue) {
final FunctionDefinition function = bkm.getEncapsulatedLogic();
assertThat(function.getExpression()).isInstanceOf(Context.class);
final Context context = (Context) function.getExpression();
assertThat(context.getContextEntry()).hasSize(1);
final ContextEntry contextEntry = context.getContextEntry().get(0);
assertThat(contextEntry.getExpression()).isInstanceOf(FunctionDefinition.class);
assertPMMLContextDefinition((FunctionDefinition) contextEntry.getExpression(), expectedDocumentValue, expectedModelValue);
}
use of org.kie.workbench.common.dmn.api.definition.model.FunctionDefinition in project kie-wb-common by kiegroup.
the class PMMLIncludedModelHandlerTest method setupBusinessKnowledgeModelWithTopLevelFunction.
private List<BusinessKnowledgeModel> setupBusinessKnowledgeModelWithTopLevelFunction() {
final List<DRGElement> drgElements = new ArrayList<>();
final BusinessKnowledgeModel bkm1 = new BusinessKnowledgeModel();
final FunctionDefinition bkm1Function = new FunctionDefinition();
bkm1Function.setKind(FunctionDefinition.Kind.FEEL);
bkm1Function.setExpression(new LiteralExpression());
bkm1.setEncapsulatedLogic(bkm1Function);
final BusinessKnowledgeModel bkm2 = new BusinessKnowledgeModel();
bkm2.setEncapsulatedLogic(makeTopLevelPMMLFunctionDefinition(DOCUMENT_NAME_ORIGINAL, MODEL_NAME));
final BusinessKnowledgeModel bkm3 = new BusinessKnowledgeModel();
bkm3.setEncapsulatedLogic(makeTopLevelPMMLFunctionDefinition(UNAFFECTED_DOCUMENT, UNAFFECTED_MODEL));
bkm1.getId().setValue(NODE1_UUID);
bkm2.getId().setValue(NODE2_UUID);
bkm3.getId().setValue(NODE3_UUID);
drgElements.add(bkm1);
drgElements.add(bkm2);
drgElements.add(bkm3);
when(dmnGraphUtils.getModelDRGElements()).thenReturn(drgElements);
return Arrays.asList(bkm1, bkm2, bkm3);
}
use of org.kie.workbench.common.dmn.api.definition.model.FunctionDefinition in project kie-wb-common by kiegroup.
the class DMNDeepCloneProcessTest method testCloneWhenSourceIsDecision.
@Test
public void testCloneWhenSourceIsDecision() {
final Decision source = buildDecision();
setLinks(source, FIRST_URL, SECOND_URL);
final Decision cloned = dmnDeepCloneProcess.clone(source, new Decision());
assertThat(cloned).isNotNull();
assertThat(cloned.getId().getValue()).isNotEqualTo(SOURCE_ID);
assertThat(cloned.getName().getValue()).isEqualTo(DECISION_SOURCE_NAME + FIRST_INDEX_IN_SUFFIX);
assertThat(cloned.getLinksHolder().getValue().getLinks()).hasSize(2).extracting(DMNExternalLink::getUrl).contains(FIRST_URL, SECOND_URL);
assertThat(cloned.getVariable().getTypeRef()).isEqualTo(BuiltInType.BOOLEAN.asQName());
assertThat(cloned.getQuestion().getValue()).isEqualTo(QUESTION);
assertThat(cloned.getAllowedAnswers().getValue()).isEqualTo(ANSWER);
assertThat(cloned.getExpression()).isNotNull();
assertThat(cloned.getExpression()).isInstanceOf(FunctionDefinition.class);
assertThat(cloned.getExpression().getId().getValue()).isNotEqualTo(FUNCTION_ID);
assertThat(cloned.getExpression().getTypeRef()).isEqualTo(BuiltInType.BOOLEAN.asQName());
assertThat(((FunctionDefinition) cloned.getExpression()).getExpression()).isInstanceOf(Context.class);
assertThat(((FunctionDefinition) cloned.getExpression()).getExpression().getId()).isNotEqualTo(CONTEXT_ID);
assertThat(((FunctionDefinition) cloned.getExpression()).getExpression().getTypeRef()).isEqualTo(BuiltInType.NUMBER.asQName());
}
Aggregations