blob: 92fecb84f593f90aebec0075e4e42c462544ac72 [file] [log] [blame]
/*****************************************************************************
* Copyright (c) 2012 CEA LIST.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*
* CEA LIST - Initial API and implementation
*
*****************************************************************************/
package org.eclipse.papyrus.sysml.diagram.internalblock.tests.creation.node;
import static org.eclipse.papyrus.sysml.diagram.internalblock.tests.utils.EditorUtils.getDiagramView;
import static org.eclipse.papyrus.sysml.diagram.internalblock.tests.utils.TestPrepareUtils.changeVisibility;
import static org.eclipse.papyrus.sysml.diagram.internalblock.tests.utils.TestPrepareUtils.createGraphicalNode;
import static org.eclipse.papyrus.sysml.diagram.internalblock.tests.utils.TestUtils.createNodeFromPalette;
import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
import org.eclipse.gmf.runtime.notation.View;
import org.eclipse.papyrus.sysml.diagram.common.utils.SysMLGraphicalTypes;
import org.eclipse.papyrus.sysml.diagram.internalblock.tests.AbstractTest;
import org.eclipse.papyrus.sysml.service.types.element.SysMLElementTypes;
import org.eclipse.papyrus.uml.service.types.element.UMLElementTypes;
import org.junit.BeforeClass;
import org.junit.Test;
/**
* JUnit tests for element creation test (via palette tools) in a Property "structure" compartment (meaningless compartment).
*/
public class TestNodeCreationOnNestedPropertyStructureCompartment extends AbstractTest {
/** Compartment of a nested Property */
public static View containerView;
/** Compartment of a deep nested Property */
public static View subContainerView;
@BeforeClass
public static void prepareContainerForTest() throws Exception {
try {
View blockView = ViewUtil.getChildBySemanticHint(getDiagramView(), SysMLGraphicalTypes.SHAPE_SYSML_BLOCK_AS_COMPOSITE_ID);
View blockStructureView = ViewUtil.getChildBySemanticHint(blockView, SysMLGraphicalTypes.COMPARTMENT_SYSML_STRUCTURE_ID);
View partView = createGraphicalNode(SysMLElementTypes.PART_PROPERTY, SysMLGraphicalTypes.SHAPE_SYSML_BLOCKPROPERTY_AS_COMPOSITE_ID, blockStructureView);
View partStructureView = ViewUtil.getChildBySemanticHint(partView, SysMLGraphicalTypes.COMPARTMENT_SYSML_BLOCKPROPERTY_STRUCTURE_ID);
View propertyPartView = createGraphicalNode(UMLElementTypes.PROPERTY, SysMLGraphicalTypes.SHAPE_SYSML_BLOCKPROPERTY_AS_COMPOSITE_ID, partStructureView);
containerView = ViewUtil.getChildBySemanticHint(propertyPartView, SysMLGraphicalTypes.COMPARTMENT_SYSML_BLOCKPROPERTY_STRUCTURE_ID);
if(containerView == null) {
throw new Exception("Unable to prepare container for test.");
}
// Ensure the compartment is visible (required for EditPart to be found)
if(!containerView.isVisible()) {
changeVisibility(containerView);
}
View nestedPartView = createGraphicalNode(SysMLElementTypes.PART_PROPERTY, SysMLGraphicalTypes.SHAPE_SYSML_BLOCKPROPERTY_AS_COMPOSITE_ID, partStructureView);
View nestedPartStructureView = ViewUtil.getChildBySemanticHint(nestedPartView, SysMLGraphicalTypes.COMPARTMENT_SYSML_BLOCKPROPERTY_STRUCTURE_ID);
View subPropertyPartView = createGraphicalNode(UMLElementTypes.PROPERTY, SysMLGraphicalTypes.SHAPE_SYSML_BLOCKPROPERTY_AS_COMPOSITE_ID, nestedPartStructureView);
subContainerView = ViewUtil.getChildBySemanticHint(subPropertyPartView, SysMLGraphicalTypes.COMPARTMENT_SYSML_BLOCKPROPERTY_STRUCTURE_ID);
if(subContainerView == null) {
throw new Exception("Unable to prepare container for test.");
}
// Ensure the compartment is visible (required for EditPart to be found)
if(!subContainerView.isVisible()) {
changeVisibility(subContainerView);
}
} catch (Exception e) {
throw new Exception("Unable to prepare container for test.", e);
}
}
@Test
public void createActorPart() throws Exception {
createNodeFromPalette("internalblock.tool.actorpart", containerView, false);
}
@Test
public void createPort() throws Exception {
createNodeFromPalette("internalblock.tool.port", containerView, false);
}
@Test
public void createFlowPort_IN() throws Exception {
createNodeFromPalette("internalblock.tool.flowport_in", containerView, false);
}
@Test
public void createFlowPort_OUT() throws Exception {
createNodeFromPalette("internalblock.tool.flowport_out", containerView, false);
}
@Test
public void createFlowPort_INOUT() throws Exception {
createNodeFromPalette("internalblock.tool.flowport_inout", containerView, false);
}
@Test
public void createFlowPort_NA() throws Exception {
createNodeFromPalette("internalblock.tool.flowport_na", containerView, false);
}
@Test
public void createPart() throws Exception {
createNodeFromPalette("internalblock.tool.part", containerView, false);
}
@Test
public void createProperty() throws Exception {
createNodeFromPalette("internalblock.tool.property", containerView, false);
}
@Test
public void createReference() throws Exception {
createNodeFromPalette("internalblock.tool.reference", containerView, false);
}
@Test
public void createValue() throws Exception {
createNodeFromPalette("internalblock.tool.value", containerView, false);
}
@Test
public void createComment() throws Exception {
createNodeFromPalette("internalblock.tool.comment", containerView, true);
}
@Test
public void createConstraint() throws Exception {
createNodeFromPalette("internalblock.tool.constraint", containerView, false);
}
//////////////////////////////////////////////////
// test on deep nested Property compartment
//////////////////////////////////////////////////
@Test
public void createActorPartOnDeepNestedPropertyStructureCompartment() throws Exception {
createNodeFromPalette("internalblock.tool.actorpart", containerView, false);
}
@Test
public void createPortOnDeepNestedPropertyStructureCompartment() throws Exception {
createNodeFromPalette("internalblock.tool.port", containerView, false);
}
@Test
public void createFlowPort_INOnDeepNestedPropertyStructureCompartment() throws Exception {
createNodeFromPalette("internalblock.tool.flowport_in", containerView, false);
}
@Test
public void createFlowPort_OUTOnDeepNestedPropertyStructureCompartment() throws Exception {
createNodeFromPalette("internalblock.tool.flowport_out", containerView, false);
}
@Test
public void createFlowPort_INOUTOnDeepNestedPropertyStructureCompartment() throws Exception {
createNodeFromPalette("internalblock.tool.flowport_inout", containerView, false);
}
@Test
public void createFlowPort_NAOnDeepNestedPropertyStructureCompartment() throws Exception {
createNodeFromPalette("internalblock.tool.flowport_na", containerView, false);
}
@Test
public void createPartOnDeepNestedPropertyStructureCompartment() throws Exception {
createNodeFromPalette("internalblock.tool.part", containerView, false);
}
@Test
public void createPropertyOnDeepNestedPropertyStructureCompartment() throws Exception {
createNodeFromPalette("internalblock.tool.property", containerView, false);
}
@Test
public void createReferenceOnDeepNestedPropertyStructureCompartment() throws Exception {
createNodeFromPalette("internalblock.tool.reference", containerView, false);
}
@Test
public void createValueOnDeepNestedPropertyStructureCompartment() throws Exception {
createNodeFromPalette("internalblock.tool.value", containerView, false);
}
@Test
public void createCommentOnDeepNestedPropertyStructureCompartment() throws Exception {
createNodeFromPalette("internalblock.tool.comment", containerView, true);
}
@Test
public void createConstraintOnDeepNestedPropertyStructureCompartment() throws Exception {
createNodeFromPalette("internalblock.tool.constraint", containerView, false);
}
}