/* * Copyright 2016 Red Hat, Inc. and/or its affiliates. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *   *     http://www.apache.org/licenses/LICENSE-2.0 *   * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.kie.workbench.common.stunner.bpmn.project.factory.impl; import java.util.ArrayList; import java.util.List; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.kie.workbench.common.stunner.bpmn.BPMNDefinitionSet; import org.kie.workbench.common.stunner.bpmn.definition.BPMNDiagram; import org.kie.workbench.common.stunner.bpmn.definition.BPMNDiagramImpl; import org.kie.workbench.common.stunner.bpmn.definition.property.diagram.Package; import org.kie.workbench.common.stunner.core.diagram.Metadata; import org.kie.workbench.common.stunner.core.graph.Graph; import org.kie.workbench.common.stunner.core.graph.Node; import org.kie.workbench.common.stunner.core.graph.content.Bounds; import org.kie.workbench.common.stunner.core.graph.content.view.View; import org.kie.workbench.common.stunner.core.graph.content.view.ViewImpl; import org.kie.workbench.common.stunner.project.diagram.ProjectDiagram; import org.kie.workbench.common.stunner.project.diagram.ProjectMetadata; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import static org.junit.Assert.*; import static org.mockito.Mockito.*; @RunWith(MockitoJUnitRunner.class) public class BPMNProjectDiagramFactoryTest { private static final String NAME = "name1"; private static final String DIAGRAM_NODE_UUID = "dnuuid"; private static final String PKG = "org.kie.wb.common.stunner.bpmn.project.test"; @Mock ProjectMetadata metadata; @Mock Graph graph; @Mock Node diagramNode; @Mock Bounds bounds; BPMNDiagramImpl diagram; private View<BPMNDiagram> diagramNodeContent; private final List<Node> graphNodes = new ArrayList<>(1); private BPMNProjectDiagramFactoryImpl tested; @Before public void setup() throws Exception { diagram = new BPMNDiagramImpl.BPMNDiagramBuilder().build(); diagramNodeContent = new ViewImpl<BPMNDiagram>(diagram, bounds); graphNodes.add(diagramNode); when(diagramNode.getUUID()).thenReturn(DIAGRAM_NODE_UUID); when(diagramNode.getContent()).thenReturn(diagramNodeContent); when(graph.nodes()).thenReturn(graphNodes); tested = new BPMNProjectDiagramFactoryImpl(); } @Test public void testMetadataType() { Class<? extends Metadata> type = tested.getMetadataType(); assertEquals(ProjectMetadata.class, type); } @Test public void testDefinitionSetType() { Class<?> type = tested.getDefinitionSetType(); assertEquals(BPMNDefinitionSet.class, type); } @Test @SuppressWarnings("unchecked") public void testBuildNoPackageSpecified() { when(metadata.getProjectPackage()).thenReturn(null); ProjectDiagram pdiagram = tested.build(NAME, metadata, graph); assertNotNull(pdiagram); assertEquals(graph, pdiagram.getGraph()); assertEquals(NAME, diagram.getDiagramSet().getId().getValue()); assertEquals(Package.DEFAULT_PACKAGE, diagram.getDiagramSet().getPackageProperty().getValue()); verify(metadata, times(1)).setCanvasRootUUID(eq(DIAGRAM_NODE_UUID)); } @Test @SuppressWarnings("unchecked") public void testBuild() { final String pName = "p1"; when(metadata.getProjectPackage()).thenReturn(PKG); when(metadata.getProjectName()).thenReturn(pName); ProjectDiagram pdiagram = tested.build(NAME, metadata, graph); assertNotNull(pdiagram); assertEquals(graph, pdiagram.getGraph()); assertEquals(pName + "." + NAME, diagram.getDiagramSet().getId().getValue()); assertEquals(PKG, diagram.getDiagramSet().getPackageProperty().getValue()); verify(metadata, times(1)).setCanvasRootUUID(eq(DIAGRAM_NODE_UUID)); } }