/* * Copyright 2017 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.cm.backend.marshall.json.oryx; import java.util.ArrayList; import java.util.List; import java.util.Set; import org.junit.Before; import org.junit.Test; import org.kie.workbench.common.stunner.bpmn.backend.marshall.json.oryx.Bpmn2OryxIdMappings; import org.kie.workbench.common.stunner.bpmn.backend.marshall.json.oryx.OryxIdMappings; import org.kie.workbench.common.stunner.bpmn.backend.marshall.json.oryx.property.AssigneeTypeSerializer; import org.kie.workbench.common.stunner.bpmn.backend.marshall.json.oryx.property.AssignmentsTypeSerializer; import org.kie.workbench.common.stunner.bpmn.backend.marshall.json.oryx.property.BooleanTypeSerializer; import org.kie.workbench.common.stunner.bpmn.backend.marshall.json.oryx.property.Bpmn2OryxPropertyManager; import org.kie.workbench.common.stunner.bpmn.backend.marshall.json.oryx.property.Bpmn2OryxPropertySerializer; import org.kie.workbench.common.stunner.bpmn.backend.marshall.json.oryx.property.ColorTypeSerializer; import org.kie.workbench.common.stunner.bpmn.backend.marshall.json.oryx.property.DoubleTypeSerializer; import org.kie.workbench.common.stunner.bpmn.backend.marshall.json.oryx.property.EnumTypeSerializer; import org.kie.workbench.common.stunner.bpmn.backend.marshall.json.oryx.property.IntegerTypeSerializer; import org.kie.workbench.common.stunner.bpmn.backend.marshall.json.oryx.property.StringTypeSerializer; import org.kie.workbench.common.stunner.bpmn.backend.marshall.json.oryx.property.VariablesTypeSerializer; import org.kie.workbench.common.stunner.bpmn.definition.AdHocSubprocess; import org.kie.workbench.common.stunner.bpmn.definition.BusinessRuleTask; import org.kie.workbench.common.stunner.bpmn.definition.EndNoneEvent; import org.kie.workbench.common.stunner.bpmn.definition.EndTerminateEvent; import org.kie.workbench.common.stunner.bpmn.definition.ExclusiveDatabasedGateway; import org.kie.workbench.common.stunner.bpmn.definition.IntermediateTimerEvent; import org.kie.workbench.common.stunner.bpmn.definition.Lane; import org.kie.workbench.common.stunner.bpmn.definition.NoneTask; import org.kie.workbench.common.stunner.bpmn.definition.ParallelGateway; import org.kie.workbench.common.stunner.bpmn.definition.ScriptTask; import org.kie.workbench.common.stunner.bpmn.definition.SequenceFlow; import org.kie.workbench.common.stunner.bpmn.definition.StartNoneEvent; import org.kie.workbench.common.stunner.bpmn.definition.StartSignalEvent; import org.kie.workbench.common.stunner.bpmn.definition.StartTimerEvent; import org.kie.workbench.common.stunner.bpmn.definition.UserTask; import org.kie.workbench.common.stunner.cm.definition.CaseManagementDiagram; import org.kie.workbench.common.stunner.cm.definition.ReusableSubprocess; import org.kie.workbench.common.stunner.core.api.DefinitionManager; import org.kie.workbench.common.stunner.core.api.FactoryManager; import org.kie.workbench.common.stunner.core.util.DefinitionUtils; import org.mockito.Mock; import static org.junit.Assert.*; public class CaseManagementOryxManagerTest { @Mock private DefinitionManager definitionManager; @Mock private FactoryManager factoryManager; private OryxIdMappings oryxIdMappings; private DefinitionUtils definitionUtils; private List<Bpmn2OryxPropertySerializer<?>> oryxPropertySerializers; private Bpmn2OryxPropertyManager oryxPropertyManager; private CaseManagementOryxManager oryxManager; @Before public void setup() { this.oryxIdMappings = new Bpmn2OryxIdMappings(definitionManager); this.definitionUtils = new DefinitionUtils(definitionManager, factoryManager); this.oryxPropertySerializers = new ArrayList<>(); this.oryxPropertySerializers.add(new AssigneeTypeSerializer()); this.oryxPropertySerializers.add(new AssignmentsTypeSerializer()); this.oryxPropertySerializers.add(new BooleanTypeSerializer()); this.oryxPropertySerializers.add(new ColorTypeSerializer()); this.oryxPropertySerializers.add(new DoubleTypeSerializer()); this.oryxPropertySerializers.add(new EnumTypeSerializer(definitionUtils)); this.oryxPropertySerializers.add(new IntegerTypeSerializer()); this.oryxPropertySerializers.add(new StringTypeSerializer()); this.oryxPropertySerializers.add(new VariablesTypeSerializer()); this.oryxPropertyManager = new Bpmn2OryxPropertyManager(oryxPropertySerializers); this.oryxManager = new CaseManagementOryxManager(oryxIdMappings, oryxPropertyManager); } @Test public void checkGetDefinitionClasses() { final Set<Class<?>> classes = oryxManager.getDefinitionClasses(); assertEquals(17, classes.size()); assertTrue(classes.contains(CaseManagementDiagram.class)); assertTrue(classes.contains(Lane.class)); assertTrue(classes.contains(NoneTask.class)); assertTrue(classes.contains(UserTask.class)); assertTrue(classes.contains(ScriptTask.class)); assertTrue(classes.contains(BusinessRuleTask.class)); assertTrue(classes.contains(StartNoneEvent.class)); assertTrue(classes.contains(StartSignalEvent.class)); assertTrue(classes.contains(StartTimerEvent.class)); assertTrue(classes.contains(EndNoneEvent.class)); assertTrue(classes.contains(EndTerminateEvent.class)); assertTrue(classes.contains(IntermediateTimerEvent.class)); assertTrue(classes.contains(ParallelGateway.class)); assertTrue(classes.contains(ExclusiveDatabasedGateway.class)); assertTrue(classes.contains(AdHocSubprocess.class)); assertTrue(classes.contains(ReusableSubprocess.class)); assertTrue(classes.contains(SequenceFlow.class)); } }