use of org.kie.workbench.common.stunner.core.diagram.DiagramImpl in project kie-wb-common by kiegroup.
the class DMNMarshallerTest method testLoan.
@Test
public void testLoan() throws IOException {
roundTripUnmarshalMarshalThenUnmarshalDMN(getClass().getResourceAsStream("/Loan Pre-Qualification.dmn"));
DMNMarshaller m = new DMNMarshaller(new XMLEncoderDiagramMetadataMarshaller(), applicationFactoryManager);
Graph<?, ?> g = m.unmarshall(null, this.getClass().getResourceAsStream("/Loan Pre-Qualification.dmn"));
DiagramImpl diagram = new DiagramImpl("", null);
diagram.setGraph(g);
String mString = m.marshall(diagram);
final KieServices ks = KieServices.Factory.get();
final KieContainer kieContainer = KieHelper.getKieContainer(ks.newReleaseId("org.kie", "dmn-testLoan", "1.0"), ks.getResources().newByteArrayResource(mString.getBytes()).setTargetPath("src/main/resources/Loan Pre-Qualification.dmn"));
final DMNRuntime runtime = kieContainer.newKieSession().getKieRuntime(DMNRuntime.class);
Assert.assertNotNull(runtime);
DMNModel model = runtime.getModel("http://www.trisotech.com/definitions/_4e0a7f15-3176-427e-add8-68d30903c84c", "Loan Pre-Qualification");
DMNContext dmnContext = runtime.newContext();
dmnContext.set("Credit Score", new HashMap<String, Object>() {
{
put("FICO", 400);
}
});
DMNResult dmnResult = runtime.evaluateByName(model, dmnContext, "Credit Score Rating");
assertFalse(dmnResult.getMessages().toString(), dmnResult.hasErrors());
}
use of org.kie.workbench.common.stunner.core.diagram.DiagramImpl in project kie-wb-common by kiegroup.
the class DMNMarshallerTest method setup.
@Before
public void setup() throws Exception {
// Graph utils.
when(definitionManager.adapters()).thenReturn(adapterManager);
when(adapterManager.registry()).thenReturn(adapterRegistry);
definitionUtils = new DefinitionUtils(definitionManager, applicationFactoryManager);
testScopeModelFactory = new TestScopeModelFactory(new DMNDefinitionSet.DMNDefinitionSetBuilder().build());
// Definition manager.
final BackendDefinitionAdapter definitionAdapter = new BackendDefinitionAdapter(definitionUtils);
final BackendDefinitionSetAdapter definitionSetAdapter = new BackendDefinitionSetAdapter(definitionAdapter);
final BackendPropertySetAdapter propertySetAdapter = new BackendPropertySetAdapter();
final BackendPropertyAdapter propertyAdapter = new BackendPropertyAdapter();
when(adapterManager.forDefinitionSet()).thenReturn(definitionSetAdapter);
when(adapterManager.forDefinition()).thenReturn(definitionAdapter);
when(adapterManager.forPropertySet()).thenReturn(propertySetAdapter);
when(adapterManager.forProperty()).thenReturn(propertyAdapter);
when(adapterRegistry.getDefinitionSetAdapter(any(Class.class))).thenReturn(definitionSetAdapter);
when(adapterRegistry.getDefinitionAdapter(any(Class.class))).thenReturn(definitionAdapter);
when(adapterRegistry.getPropertySetAdapter(any(Class.class))).thenReturn(propertySetAdapter);
when(adapterRegistry.getPropertyAdapter(any(Class.class))).thenReturn(propertyAdapter);
commandManager = new GraphCommandManagerImpl(null, null, null);
commandFactory = new GraphCommandFactory();
connectionEdgeFactory = new EdgeFactoryImpl(definitionManager);
viewNodeFactory = new NodeFactoryImpl(definitionUtils);
dmnGraphFactory = new GraphFactoryImpl(definitionManager);
doAnswer(invocationOnMock -> {
String id = (String) invocationOnMock.getArguments()[0];
return testScopeModelFactory.build(id);
}).when(applicationFactoryManager).newDefinition(anyString());
doAnswer(invocationOnMock -> {
String uuid = (String) invocationOnMock.getArguments()[0];
String id = (String) invocationOnMock.getArguments()[1];
if (DMNDefinitionSet.class.getName().equals(id)) {
// Emulate DMNGraphFactoryImpl, that adds a DMNDiagram to new Graphs
// Please note this is different from the stunner jbpm test which this dmn test is based on
Graph graph = (Graph) dmnGraphFactory.build(uuid, DMN_DEF_SET_ID);
DMNDiagram model = new DMNDiagram.DMNDiagramBuilder().build();
Node node = viewNodeFactory.build(uuid, model);
graph.addNode(node);
return graph;
}
Object model = testScopeModelFactory.accepts(id) ? testScopeModelFactory.build(id) : null;
if (null != model) {
Class<? extends ElementFactory> element = BackendDefinitionAdapter.getGraphFactory(model.getClass());
if (element.isAssignableFrom(NodeFactory.class)) {
Node node = viewNodeFactory.build(uuid, model);
return node;
} else if (element.isAssignableFrom(EdgeFactory.class)) {
Edge edge = connectionEdgeFactory.build(uuid, model);
return edge;
}
}
return null;
}).when(applicationFactoryManager).newElement(anyString(), anyString());
doAnswer(invocationOnMock -> {
String uuid = (String) invocationOnMock.getArguments()[0];
Class type = (Class) invocationOnMock.getArguments()[1];
String id = BindableAdapterUtils.getGenericClassName(type);
if (DMNDefinitionSet.class.equals(type)) {
Graph graph = (Graph) dmnGraphFactory.build(uuid, DMN_DEF_SET_ID);
return graph;
}
Object model = testScopeModelFactory.accepts(id) ? testScopeModelFactory.build(id) : null;
if (null != model) {
Class<? extends ElementFactory> element = BackendDefinitionAdapter.getGraphFactory(model.getClass());
if (element.isAssignableFrom(NodeFactory.class)) {
Node node = viewNodeFactory.build(uuid, model);
return node;
} else if (element.isAssignableFrom(EdgeFactory.class)) {
Edge edge = connectionEdgeFactory.build(uuid, model);
return edge;
}
}
return null;
}).when(applicationFactoryManager).newElement(anyString(), any(Class.class));
doAnswer(invocationOnMock -> {
String uuid = (String) invocationOnMock.getArguments()[0];
String defSetId = (String) invocationOnMock.getArguments()[1];
final Graph graph = (Graph) applicationFactoryManager.newElement(uuid, defSetId);
final DiagramImpl result = new DiagramImpl(uuid, new MetadataImpl.MetadataImplBuilder(defSetId).build());
result.setGraph(graph);
return result;
}).when(applicationFactoryManager).newDiagram(anyString(), anyString(), any(Metadata.class));
MappingContextSingleton.loadDynamicMarshallers();
}
use of org.kie.workbench.common.stunner.core.diagram.DiagramImpl in project kie-wb-common by kiegroup.
the class SessionPreviewImplTest method setup.
@Before
@SuppressWarnings("unchecked")
public void setup() {
this.preview = new SessionPreviewImpl(definitionManager, shapeManager, textPropertyProviderFactory, canvasCommandManager, definitionUtils, graphUtils, canvasHandlerFactories, canvasCommandFactories, selectionControl, view);
final DiagramImpl diagram = new DiagramImpl("diagram", new MetadataImpl());
final GraphImpl graph = new GraphImpl("graph", new GraphNodeStoreImpl());
final DefinitionSetImpl definitionSet = new DefinitionSetImpl("id");
diagram.setGraph(graph);
graph.setContent(definitionSet);
definitionSet.setBounds(new BoundsImpl(new BoundImpl(0.0, 0.0), new BoundImpl(100.0, 100.0)));
when(session.getCanvasHandler()).thenReturn(canvasHandler);
when(session.getCanvas()).thenReturn(canvas);
when(canvasHandler.getDiagram()).thenReturn(diagram);
when(shapeManager.getCanvasFactory(any(Diagram.class))).thenReturn(canvasFactory);
when(canvasFactory.newCanvas()).thenReturn(canvas);
when(canvasFactory.newControl(eq(ZoomControl.class))).thenReturn(zoomControl);
when(canvasHandlerFactories.select(any(Annotation.class))).thenReturn(canvasHandlerFactories);
when(canvasHandlerFactories.get()).thenReturn(canvasHandler);
when(canvas.getView()).thenReturn(canvasView);
preview.open(session, callback);
}
use of org.kie.workbench.common.stunner.core.diagram.DiagramImpl in project kie-wb-common by kiegroup.
the class MigrationDiagramMarshallerTest method setup.
@Before
@SuppressWarnings("unchecked")
public void setup() {
definitionManager = mock(DefinitionManager.class);
adapterManager = mock(AdapterManager.class);
adapterRegistry = mock(AdapterRegistry.class);
rulesManager = mock(RuleManager.class);
cloneManager = mock(CloneManager.class);
// Graph utils.
when(definitionManager.adapters()).thenReturn(adapterManager);
when(adapterManager.registry()).thenReturn(adapterRegistry);
DefinitionUtils definitionUtils1 = new DefinitionUtils(definitionManager, applicationFactoryManager);
testScopeModelFactory = new TestScopeModelFactory(new BPMNDefinitionSet.BPMNDefinitionSetBuilder().build());
// Definition manager.
final BackendDefinitionAdapter definitionAdapter = new BackendDefinitionAdapter(definitionUtils1);
final BackendDefinitionSetAdapter definitionSetAdapter = new BackendDefinitionSetAdapter(definitionAdapter);
final BackendPropertySetAdapter propertySetAdapter = new BackendPropertySetAdapter();
final BackendPropertyAdapter propertyAdapter = new BackendPropertyAdapter();
when(adapterManager.forDefinitionSet()).thenReturn(definitionSetAdapter);
when(adapterManager.forDefinition()).thenReturn(definitionAdapter);
when(adapterManager.forPropertySet()).thenReturn(propertySetAdapter);
when(adapterManager.forProperty()).thenReturn(propertyAdapter);
when(adapterRegistry.getDefinitionSetAdapter(any(Class.class))).thenReturn(definitionSetAdapter);
when(adapterRegistry.getDefinitionAdapter(any(Class.class))).thenReturn(definitionAdapter);
when(adapterRegistry.getPropertySetAdapter(any(Class.class))).thenReturn(propertySetAdapter);
when(adapterRegistry.getPropertyAdapter(any(Class.class))).thenReturn(propertyAdapter);
GraphCommandManager commandManager1 = new GraphCommandManagerImpl(null, null, null);
GraphCommandFactory commandFactory1 = new GraphCommandFactory();
connectionEdgeFactory = new EdgeFactoryImpl(definitionManager);
viewNodeFactory = new NodeFactoryImpl(definitionUtils1);
bpmnGraphFactory = new GraphFactoryImpl(definitionManager);
doAnswer(invocationOnMock -> {
String id = (String) invocationOnMock.getArguments()[0];
return testScopeModelFactory.build(id);
}).when(applicationFactoryManager).newDefinition(anyString());
doAnswer(invocationOnMock -> {
String uuid = (String) invocationOnMock.getArguments()[0];
String id = (String) invocationOnMock.getArguments()[1];
if (BPMNDefinitionSet.class.getName().equals(id)) {
return bpmnGraphFactory.build(uuid, BPMN_DEF_SET_ID);
}
Object model = testScopeModelFactory.accepts(id) ? testScopeModelFactory.build(id) : null;
if (null != model) {
Class<? extends ElementFactory> element = BackendDefinitionAdapter.getGraphFactory(model.getClass());
if (element.isAssignableFrom(NodeFactory.class)) {
return viewNodeFactory.build(uuid, model);
} else if (element.isAssignableFrom(EdgeFactory.class)) {
return connectionEdgeFactory.build(uuid, model);
}
}
return null;
}).when(applicationFactoryManager).newElement(anyString(), anyString());
doAnswer(invocationOnMock -> {
String uuid = (String) invocationOnMock.getArguments()[0];
Class type = (Class) invocationOnMock.getArguments()[1];
String id = BindableAdapterUtils.getGenericClassName(type);
if (BPMNDefinitionSet.class.equals(type)) {
return bpmnGraphFactory.build(uuid, BPMN_DEF_SET_ID);
}
Object model = testScopeModelFactory.accepts(id) ? testScopeModelFactory.build(id) : null;
if (null != model) {
Class<? extends ElementFactory> element = BackendDefinitionAdapter.getGraphFactory(model.getClass());
if (element.isAssignableFrom(NodeFactory.class)) {
return viewNodeFactory.build(uuid, model);
} else if (element.isAssignableFrom(EdgeFactory.class)) {
return connectionEdgeFactory.build(uuid, model);
}
}
return null;
}).when(applicationFactoryManager).newElement(anyString(), any(Class.class));
doAnswer(invocationOnMock -> {
String uuid = (String) invocationOnMock.getArguments()[0];
String defSetId = (String) invocationOnMock.getArguments()[1];
final Graph graph = (Graph) applicationFactoryManager.newElement(uuid, defSetId);
final DiagramImpl result = new DiagramImpl(uuid, new MetadataImpl.MetadataImplBuilder(defSetId).build());
result.setGraph(graph);
return result;
}).when(applicationFactoryManager).newDiagram(anyString(), anyString(), any(Metadata.class));
// Work items stuff.
workItemDefinitionMockRegistry = new WorkItemDefinitionMockRegistry();
// Bpmn 2 oryx stuff.
Bpmn2OryxIdMappings oryxIdMappings = new Bpmn2OryxIdMappings(definitionManager, () -> workItemDefinitionMockRegistry);
StringTypeSerializer stringTypeSerializer = new StringTypeSerializer();
BooleanTypeSerializer booleanTypeSerializer = new BooleanTypeSerializer();
ColorTypeSerializer colorTypeSerializer = new ColorTypeSerializer();
DoubleTypeSerializer doubleTypeSerializer = new DoubleTypeSerializer();
IntegerTypeSerializer integerTypeSerializer = new IntegerTypeSerializer();
EnumTypeSerializer enumTypeSerializer = new EnumTypeSerializer(definitionUtils1);
AssignmentsTypeSerializer assignmentsTypeSerializer = new AssignmentsTypeSerializer();
VariablesTypeSerializer variablesTypeSerializer = new VariablesTypeSerializer();
TimerSettingsTypeSerializer timerSettingsTypeSerializer = new TimerSettingsTypeSerializer();
ScriptTypeTypeSerializer scriptTypeTypeSerializer = new ScriptTypeTypeSerializer();
ScriptTypeListTypeSerializer scriptTypeListTypeSerializer = new ScriptTypeListTypeSerializer();
TaskTypeSerializer taskTypeSerializer = new TaskTypeSerializer(definitionUtils1, enumTypeSerializer);
List<Bpmn2OryxPropertySerializer<?>> propertySerializers = new LinkedList<>();
propertySerializers.add(stringTypeSerializer);
propertySerializers.add(booleanTypeSerializer);
propertySerializers.add(colorTypeSerializer);
propertySerializers.add(doubleTypeSerializer);
propertySerializers.add(integerTypeSerializer);
propertySerializers.add(enumTypeSerializer);
propertySerializers.add(assignmentsTypeSerializer);
propertySerializers.add(variablesTypeSerializer);
propertySerializers.add(timerSettingsTypeSerializer);
propertySerializers.add(scriptTypeTypeSerializer);
propertySerializers.add(scriptTypeListTypeSerializer);
propertySerializers.add(taskTypeSerializer);
Bpmn2OryxPropertyManager oryxPropertyManager = new Bpmn2OryxPropertyManager(propertySerializers);
Bpmn2OryxManager oryxManager = new Bpmn2OryxManager(oryxIdMappings, oryxPropertyManager);
oryxManager.init();
// Marshalling factories.
BPMNGraphObjectBuilderFactory objectBuilderFactory = new BPMNGraphObjectBuilderFactory(definitionManager, oryxManager, () -> workItemDefinitionMockRegistry);
taskMorphDefinition = new TaskTypeMorphDefinition();
Collection<MorphDefinition> morphDefinitions = new ArrayList<MorphDefinition>() {
{
add(taskMorphDefinition);
}
};
BackendBindableMorphAdapter<Object> morphAdapter = new BackendBindableMorphAdapter(definitionUtils1, applicationFactoryManager, cloneManager, morphDefinitions);
when(adapterRegistry.getMorphAdapter(eq(UserTask.class))).thenReturn(morphAdapter);
when(adapterRegistry.getMorphAdapter(eq(NoneTask.class))).thenReturn(morphAdapter);
when(adapterRegistry.getMorphAdapter(eq(ScriptTask.class))).thenReturn(morphAdapter);
when(adapterRegistry.getMorphAdapter(eq(BusinessRuleTask.class))).thenReturn(morphAdapter);
GraphIndexBuilder<?> indexBuilder = new MapIndexBuilder();
when(rulesManager.evaluate(any(RuleSet.class), any(RuleEvaluationContext.class))).thenReturn(new DefaultRuleViolations());
// The work item definition registry.
WorkItemDefinitionBackendRegistry widRegistry = mock(WorkItemDefinitionBackendRegistry.class);
when(widRegistry.getRegistry()).thenReturn(workItemDefinitionMockRegistry);
when(widRegistry.items()).thenReturn(workItemDefinitionMockRegistry.items());
when(widRegistry.load(any(Metadata.class))).thenReturn(widRegistry);
doAnswer(invocationOnMock -> workItemDefinitionMockRegistry.get((String) invocationOnMock.getArguments()[0])).when(widRegistry).get(anyString());
// The tested BPMN marshaller.
oldMarshaller = new BPMNDiagramMarshaller(new XMLEncoderDiagramMetadataMarshaller(), objectBuilderFactory, definitionManager, indexBuilder, oryxManager, applicationFactoryManager, rulesManager, commandManager1, commandFactory1, widRegistry);
// Graph utils.
when(definitionManager.adapters()).thenReturn(adapterManager);
when(adapterManager.registry()).thenReturn(adapterRegistry);
// initApplicationFactoryManagerAlt();
when(rulesManager.evaluate(any(RuleSet.class), any(RuleEvaluationContext.class))).thenReturn(new DefaultRuleViolations());
DefinitionUtils definitionUtils = new DefinitionUtils(definitionManager, applicationFactoryManager);
TestScopeModelFactory testScopeModelFactory = new TestScopeModelFactory(new BPMNDefinitionSet.BPMNDefinitionSetBuilder().build());
// Definition manager.
mockAdapterManager(definitionAdapter, definitionSetAdapter, propertySetAdapter, propertyAdapter);
mockAdapterRegistry(definitionAdapter, definitionSetAdapter, propertySetAdapter, propertyAdapter);
applicationFactoryManager = new MockApplicationFactoryManager(definitionManager, new GraphFactoryImpl(definitionManager), testScopeModelFactory, new EdgeFactoryImpl(definitionManager), new NodeFactoryImpl(definitionUtils));
GraphCommandManagerImpl commandManager = new GraphCommandManagerImpl(null, null, null);
GraphCommandFactory commandFactory = new GraphCommandFactory();
// The tested BPMN marshaller.
newMarshaller = new BPMNDirectDiagramMarshaller(new XMLEncoderDiagramMetadataMarshaller(), definitionManager, rulesManager, applicationFactoryManager, commandFactory, commandManager);
}
use of org.kie.workbench.common.stunner.core.diagram.DiagramImpl in project kie-wb-common by kiegroup.
the class MockApplicationFactoryManager method newDiagram.
@Override
public <M extends Metadata, D extends Diagram> D newDiagram(String uuid, String defSetId, M metadata) {
final Graph graph = (Graph) this.newElement(uuid, defSetId);
final DiagramImpl result = new DiagramImpl(uuid, new MetadataImpl.MetadataImplBuilder(defSetId).build());
result.setGraph(graph);
return (D) result;
}
Aggregations