blob: 9f36f088a80babab8e8a481eb2ae98de6026fd92 [file] [log] [blame]
/*
* Copyright (c) 2013 CEA and others.
*
* 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:
* Kenn Hussey (CEA) - initial API and implementation
*
*/
package org.eclipse.uml2.uml.bug.tests;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.eclipse.emf.common.util.BasicDiagnostic;
import org.eclipse.emf.common.util.Diagnostic;
import org.eclipse.emf.common.util.DiagnosticChain;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.uml2.common.util.UML2Util;
import org.eclipse.uml2.uml.Association;
import org.eclipse.uml2.uml.AttributeOwner;
import org.eclipse.uml2.uml.Class;
import org.eclipse.uml2.uml.LiteralUnlimitedNatural;
import org.eclipse.uml2.uml.Package;
import org.eclipse.uml2.uml.Property;
import org.eclipse.uml2.uml.UMLPackage;
import org.eclipse.uml2.uml.VisibilityKind;
import org.eclipse.uml2.uml.tests.util.StandaloneSupport;
import org.eclipse.uml2.uml.util.UMLUtil;
import org.eclipse.uml2.uml.util.UMLUtil.PackageMerger;
import org.eclipse.uml2.uml.util.UMLValidator;
/**
* Tests the 'ATTRIBUTE_TRANSFORMATIONS' package merger option.
*
* @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=416833
*/
public class Bug416833Test
extends TestCase {
private ResourceSet rset;
private Package fixture;
public Bug416833Test() {
super();
}
public Bug416833Test(String name) {
super(name);
}
public static Test suite() {
return new TestSuite(Bug416833Test.class, "Bug 416833 tests"); //$NON-NLS-1$
}
public void testIgnore() {
Package receivingPackage = getPackage("receiving");
BasicDiagnostic diagnostics = new BasicDiagnostic();
merge(receivingPackage, diagnostics, UMLUtil.OPTION__IGNORE);
assertNull(getDiagnostic(diagnostics, UMLUtil.PackageMerger.ATTRIBUTE_TRANSFORMATION));
assertFalse(getAssociation(receivingPackage, "Association_IsDerived_false_false").isDerived());
assertTrue(getAssociation(receivingPackage, "Association_IsDerived_false_true").isDerived());
assertTrue(getAssociation(receivingPackage, "Association_IsDerived_true_false").isDerived());
assertTrue(getAssociation(receivingPackage, "Association_IsDerived_true_true").isDerived());
assertFalse(getClass(receivingPackage, "Classifier_IsAbstract_false_false").isAbstract());
assertTrue(getClass(receivingPackage, "Classifier_IsAbstract_false_true").isAbstract());
assertTrue(getClass(receivingPackage, "Classifier_IsAbstract_true_false").isAbstract());
assertTrue(getClass(receivingPackage, "Classifier_IsAbstract_true_true").isAbstract());
assertFalse(getClass(receivingPackage, "Classifier_IsFinalSpecialization_false_false").isFinalSpecialization());
assertTrue(getClass(receivingPackage, "Classifier_IsFinalSpecialization_false_true").isFinalSpecialization());
assertTrue(getClass(receivingPackage, "Classifier_IsFinalSpecialization_true_false").isFinalSpecialization());
assertTrue(getClass(receivingPackage, "Classifier_IsFinalSpecialization_true_true").isFinalSpecialization());
assertFalse(getProperty(getClass(receivingPackage, "MultiplicityElement_IsOrdered"), "_false_false").isOrdered());
assertTrue(getProperty(getClass(receivingPackage, "MultiplicityElement_IsOrdered"), "_false_true").isOrdered());
assertTrue(getProperty(getClass(receivingPackage, "MultiplicityElement_IsOrdered"), "_true_false").isOrdered());
assertTrue(getProperty(getClass(receivingPackage, "MultiplicityElement_IsOrdered"), "_true_true").isOrdered());
assertFalse(getProperty(getClass(receivingPackage, "MultiplicityElement_IsUnique"), "_false_false").isUnique());
assertFalse(getProperty(getClass(receivingPackage, "MultiplicityElement_IsUnique"), "_false_true").isUnique());
assertFalse(getProperty(getClass(receivingPackage, "MultiplicityElement_IsUnique"), "_true_false").isUnique());
assertTrue(getProperty(getClass(receivingPackage, "MultiplicityElement_IsUnique"), "_true_true").isUnique());
assertEquals(0, getProperty(getClass(receivingPackage, "MultiplicityElement_Lower"), "_less").getLower());
assertEquals(0, getProperty(getClass(receivingPackage, "MultiplicityElement_Lower"), "_equal").getLower());
assertEquals(0, getProperty(getClass(receivingPackage, "MultiplicityElement_Lower"), "_greater").getLower());
assertEquals(LiteralUnlimitedNatural.UNLIMITED, getProperty(getClass(receivingPackage, "MultiplicityElement_Upper"), "_less").getUpper());
assertEquals(LiteralUnlimitedNatural.UNLIMITED, getProperty(getClass(receivingPackage, "MultiplicityElement_Upper"), "_equal").getUpper());
assertEquals(LiteralUnlimitedNatural.UNLIMITED, getProperty(getClass(receivingPackage, "MultiplicityElement_Upper"), "_greater").getUpper());
assertEquals(VisibilityKind.PACKAGE_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_package_package").getVisibility());
assertEquals(VisibilityKind.PRIVATE_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_package_private").getVisibility());
assertEquals(VisibilityKind.PROTECTED_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_package_protected").getVisibility());
assertEquals(VisibilityKind.PACKAGE_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_package_public").getVisibility());
assertEquals(VisibilityKind.PACKAGE_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_private_package").getVisibility());
assertEquals(VisibilityKind.PRIVATE_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_private_private").getVisibility());
assertEquals(VisibilityKind.PROTECTED_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_private_protected").getVisibility());
assertEquals(VisibilityKind.PRIVATE_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_private_public").getVisibility());
assertEquals(VisibilityKind.PACKAGE_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_protected_package").getVisibility());
assertEquals(VisibilityKind.PRIVATE_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_protected_private").getVisibility());
assertEquals(VisibilityKind.PROTECTED_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_protected_protected").getVisibility());
assertEquals(VisibilityKind.PROTECTED_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_protected_public").getVisibility());
assertEquals(VisibilityKind.PACKAGE_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_public_package").getVisibility());
assertEquals(VisibilityKind.PRIVATE_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_public_private").getVisibility());
assertEquals(VisibilityKind.PROTECTED_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_public_protected").getVisibility());
assertEquals(VisibilityKind.PUBLIC_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_public_public").getVisibility());
assertFalse(getProperty(getClass(receivingPackage, "Property_IsDerived"), "_false_false").isDerived());
assertTrue(getProperty(getClass(receivingPackage, "Property_IsDerived"), "_false_true").isDerived());
assertTrue(getProperty(getClass(receivingPackage, "Property_IsDerived"), "_true_false").isDerived());
assertTrue(getProperty(getClass(receivingPackage, "Property_IsDerived"), "_true_true").isDerived());
assertFalse(getProperty(getClass(receivingPackage, "Property_IsDerivedUnion"), "_false_false").isDerivedUnion());
assertTrue(getProperty(getClass(receivingPackage, "Property_IsDerivedUnion"), "_false_true").isDerivedUnion());
assertTrue(getProperty(getClass(receivingPackage, "Property_IsDerivedUnion"), "_true_false").isDerivedUnion());
assertTrue(getProperty(getClass(receivingPackage, "Property_IsDerivedUnion"), "_true_true").isDerivedUnion());
assertFalse(getClass(receivingPackage, "RedefinableElement_IsLeaf_false_false").isLeaf());
assertTrue(getClass(receivingPackage, "RedefinableElement_IsLeaf_false_true").isLeaf());
assertTrue(getClass(receivingPackage, "RedefinableElement_IsLeaf_true_false").isLeaf());
assertTrue(getClass(receivingPackage, "RedefinableElement_IsLeaf_true_true").isLeaf());
assertFalse(getProperty(getClass(receivingPackage, "StructuralFeature_IsReadOnly"), "_false_false").isReadOnly());
assertTrue(getProperty(getClass(receivingPackage, "StructuralFeature_IsReadOnly"), "_false_true").isReadOnly());
assertTrue(getProperty(getClass(receivingPackage, "StructuralFeature_IsReadOnly"), "_true_false").isReadOnly());
assertTrue(getProperty(getClass(receivingPackage, "StructuralFeature_IsReadOnly"), "_true_true").isReadOnly());
}
public void testReport() {
Package receivingPackage = getPackage("receiving");
BasicDiagnostic diagnostics = new BasicDiagnostic();
merge(receivingPackage, diagnostics, UMLUtil.OPTION__REPORT);
Diagnostic diagnostic = getDiagnostic(diagnostics, UMLUtil.PackageMerger.ATTRIBUTE_TRANSFORMATION);
assertNotNull(diagnostic);
assertEquals(Diagnostic.WARNING, diagnostic.getSeverity());
assertFalse(getAssociation(receivingPackage, "Association_IsDerived_false_false").isDerived());
assertFalse(getAssociation(receivingPackage, "Association_IsDerived_false_true").isDerived());
assertTrue(getAssociation(receivingPackage, "Association_IsDerived_true_false").isDerived());
assertTrue(getAssociation(receivingPackage, "Association_IsDerived_true_true").isDerived());
assertFalse(getClass(receivingPackage, "Classifier_IsAbstract_false_false").isAbstract());
assertFalse(getClass(receivingPackage, "Classifier_IsAbstract_false_true").isAbstract());
assertTrue(getClass(receivingPackage, "Classifier_IsAbstract_true_false").isAbstract());
assertTrue(getClass(receivingPackage, "Classifier_IsAbstract_true_true").isAbstract());
assertFalse(getClass(receivingPackage, "Classifier_IsFinalSpecialization_false_false").isFinalSpecialization());
assertFalse(getClass(receivingPackage, "Classifier_IsFinalSpecialization_false_true").isFinalSpecialization());
assertTrue(getClass(receivingPackage, "Classifier_IsFinalSpecialization_true_false").isFinalSpecialization());
assertTrue(getClass(receivingPackage, "Classifier_IsFinalSpecialization_true_true").isFinalSpecialization());
assertFalse(getProperty(getClass(receivingPackage, "MultiplicityElement_IsOrdered"), "_false_false").isOrdered());
assertFalse(getProperty(getClass(receivingPackage, "MultiplicityElement_IsOrdered"), "_false_true").isOrdered());
assertTrue(getProperty(getClass(receivingPackage, "MultiplicityElement_IsOrdered"), "_true_false").isOrdered());
assertTrue(getProperty(getClass(receivingPackage, "MultiplicityElement_IsOrdered"), "_true_true").isOrdered());
assertFalse(getProperty(getClass(receivingPackage, "MultiplicityElement_IsUnique"), "_false_false").isUnique());
assertFalse(getProperty(getClass(receivingPackage, "MultiplicityElement_IsUnique"), "_false_true").isUnique());
assertTrue(getProperty(getClass(receivingPackage, "MultiplicityElement_IsUnique"), "_true_false").isUnique());
assertTrue(getProperty(getClass(receivingPackage, "MultiplicityElement_IsUnique"), "_true_true").isUnique());
assertEquals(0, getProperty(getClass(receivingPackage, "MultiplicityElement_Lower"), "_less").getLower());
assertEquals(0, getProperty(getClass(receivingPackage, "MultiplicityElement_Lower"), "_equal").getLower());
assertEquals(1, getProperty(getClass(receivingPackage, "MultiplicityElement_Lower"), "_greater").getLower());
assertEquals(1, getProperty(getClass(receivingPackage, "MultiplicityElement_Upper"), "_less").getUpper());
assertEquals(LiteralUnlimitedNatural.UNLIMITED, getProperty(getClass(receivingPackage, "MultiplicityElement_Upper"), "_equal").getUpper());
assertEquals(LiteralUnlimitedNatural.UNLIMITED, getProperty(getClass(receivingPackage, "MultiplicityElement_Upper"), "_greater").getUpper());
assertEquals(VisibilityKind.PACKAGE_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_package_package").getVisibility());
assertEquals(VisibilityKind.PACKAGE_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_package_private").getVisibility());
assertEquals(VisibilityKind.PACKAGE_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_package_protected").getVisibility());
assertEquals(VisibilityKind.PACKAGE_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_package_public").getVisibility());
assertEquals(VisibilityKind.PRIVATE_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_private_package").getVisibility());
assertEquals(VisibilityKind.PRIVATE_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_private_private").getVisibility());
assertEquals(VisibilityKind.PRIVATE_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_private_protected").getVisibility());
assertEquals(VisibilityKind.PRIVATE_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_private_public").getVisibility());
assertEquals(VisibilityKind.PROTECTED_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_protected_package").getVisibility());
assertEquals(VisibilityKind.PROTECTED_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_protected_private").getVisibility());
assertEquals(VisibilityKind.PROTECTED_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_protected_protected").getVisibility());
assertEquals(VisibilityKind.PROTECTED_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_protected_public").getVisibility());
assertEquals(VisibilityKind.PUBLIC_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_public_package").getVisibility());
assertEquals(VisibilityKind.PUBLIC_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_public_private").getVisibility());
assertEquals(VisibilityKind.PUBLIC_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_public_protected").getVisibility());
assertEquals(VisibilityKind.PUBLIC_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_public_public").getVisibility());
assertFalse(getProperty(getClass(receivingPackage, "Property_IsDerivedUnion"), "_false_false").isDerivedUnion());
assertFalse(getProperty(getClass(receivingPackage, "Property_IsDerivedUnion"), "_false_true").isDerivedUnion());
assertTrue(getProperty(getClass(receivingPackage, "Property_IsDerivedUnion"), "_true_false").isDerivedUnion());
assertTrue(getProperty(getClass(receivingPackage, "Property_IsDerivedUnion"), "_true_true").isDerivedUnion());
assertFalse(getClass(receivingPackage, "RedefinableElement_IsLeaf_false_false").isLeaf());
assertFalse(getClass(receivingPackage, "RedefinableElement_IsLeaf_false_true").isLeaf());
assertTrue(getClass(receivingPackage, "RedefinableElement_IsLeaf_true_false").isLeaf());
assertTrue(getClass(receivingPackage, "RedefinableElement_IsLeaf_true_true").isLeaf());
assertFalse(getProperty(getClass(receivingPackage, "StructuralFeature_IsReadOnly"), "_false_false").isReadOnly());
assertFalse(getProperty(getClass(receivingPackage, "StructuralFeature_IsReadOnly"), "_false_true").isReadOnly());
assertTrue(getProperty(getClass(receivingPackage, "StructuralFeature_IsReadOnly"), "_true_false").isReadOnly());
assertTrue(getProperty(getClass(receivingPackage, "StructuralFeature_IsReadOnly"), "_true_true").isReadOnly());
}
public void testProcess() {
Package receivingPackage = getPackage("receiving");
BasicDiagnostic diagnostics = new BasicDiagnostic();
merge(receivingPackage, diagnostics, UMLUtil.OPTION__PROCESS);
Diagnostic diagnostic = getDiagnostic(diagnostics, UMLUtil.PackageMerger.ATTRIBUTE_TRANSFORMATION);
assertNotNull(diagnostic);
assertEquals(Diagnostic.INFO, diagnostic.getSeverity());
assertFalse(getAssociation(receivingPackage, "Association_IsDerived_false_false").isDerived());
assertTrue(getAssociation(receivingPackage, "Association_IsDerived_false_true").isDerived());
assertTrue(getAssociation(receivingPackage, "Association_IsDerived_true_false").isDerived());
assertTrue(getAssociation(receivingPackage, "Association_IsDerived_true_true").isDerived());
assertFalse(getClass(receivingPackage, "Classifier_IsAbstract_false_false").isAbstract());
assertFalse(getClass(receivingPackage, "Classifier_IsAbstract_false_true").isAbstract());
assertFalse(getClass(receivingPackage, "Classifier_IsAbstract_true_false").isAbstract());
assertTrue(getClass(receivingPackage, "Classifier_IsAbstract_true_true").isAbstract());
assertFalse(getClass(receivingPackage, "Classifier_IsFinalSpecialization_false_false").isFinalSpecialization());
assertFalse(getClass(receivingPackage, "Classifier_IsFinalSpecialization_false_true").isFinalSpecialization());
assertFalse(getClass(receivingPackage, "Classifier_IsFinalSpecialization_true_false").isFinalSpecialization());
assertTrue(getClass(receivingPackage, "Classifier_IsFinalSpecialization_true_true").isFinalSpecialization());
assertFalse(getProperty(getClass(receivingPackage, "MultiplicityElement_IsOrdered"), "_false_false").isOrdered());
assertTrue(getProperty(getClass(receivingPackage, "MultiplicityElement_IsOrdered"), "_false_true").isOrdered());
assertTrue(getProperty(getClass(receivingPackage, "MultiplicityElement_IsOrdered"), "_true_false").isOrdered());
assertTrue(getProperty(getClass(receivingPackage, "MultiplicityElement_IsOrdered"), "_true_true").isOrdered());
assertFalse(getProperty(getClass(receivingPackage, "MultiplicityElement_IsUnique"), "_false_false").isUnique());
assertFalse(getProperty(getClass(receivingPackage, "MultiplicityElement_IsUnique"), "_false_true").isUnique());
assertFalse(getProperty(getClass(receivingPackage, "MultiplicityElement_IsUnique"), "_true_false").isUnique());
assertTrue(getProperty(getClass(receivingPackage, "MultiplicityElement_IsUnique"), "_true_true").isUnique());
assertEquals(0, getProperty(getClass(receivingPackage, "MultiplicityElement_Lower"), "_less").getLower());
assertEquals(0, getProperty(getClass(receivingPackage, "MultiplicityElement_Lower"), "_equal").getLower());
assertEquals(0, getProperty(getClass(receivingPackage, "MultiplicityElement_Lower"), "_greater").getLower());
assertEquals(LiteralUnlimitedNatural.UNLIMITED, getProperty(getClass(receivingPackage, "MultiplicityElement_Upper"), "_less").getUpper());
assertEquals(LiteralUnlimitedNatural.UNLIMITED, getProperty(getClass(receivingPackage, "MultiplicityElement_Upper"), "_equal").getUpper());
assertEquals(LiteralUnlimitedNatural.UNLIMITED, getProperty(getClass(receivingPackage, "MultiplicityElement_Upper"), "_greater").getUpper());
assertEquals(VisibilityKind.PUBLIC_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_package_package").getVisibility());
assertEquals(VisibilityKind.PUBLIC_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_package_private").getVisibility());
assertEquals(VisibilityKind.PUBLIC_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_package_protected").getVisibility());
assertEquals(VisibilityKind.PUBLIC_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_package_public").getVisibility());
assertEquals(VisibilityKind.PUBLIC_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_private_package").getVisibility());
assertEquals(VisibilityKind.PRIVATE_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_private_private").getVisibility());
assertEquals(VisibilityKind.PUBLIC_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_private_protected").getVisibility());
assertEquals(VisibilityKind.PUBLIC_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_private_public").getVisibility());
assertEquals(VisibilityKind.PUBLIC_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_protected_package").getVisibility());
assertEquals(VisibilityKind.PUBLIC_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_protected_private").getVisibility());
assertEquals(VisibilityKind.PUBLIC_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_protected_protected").getVisibility());
assertEquals(VisibilityKind.PUBLIC_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_protected_public").getVisibility());
assertEquals(VisibilityKind.PUBLIC_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_public_package").getVisibility());
assertEquals(VisibilityKind.PUBLIC_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_public_private").getVisibility());
assertEquals(VisibilityKind.PUBLIC_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_public_protected").getVisibility());
assertEquals(VisibilityKind.PUBLIC_LITERAL, getClass(receivingPackage, "NamedElement_Visibility_public_public").getVisibility());
assertFalse(getProperty(getClass(receivingPackage, "Property_IsDerivedUnion"), "_false_false").isDerivedUnion());
assertTrue(getProperty(getClass(receivingPackage, "Property_IsDerivedUnion"), "_false_true").isDerivedUnion());
assertTrue(getProperty(getClass(receivingPackage, "Property_IsDerivedUnion"), "_true_false").isDerivedUnion());
assertTrue(getProperty(getClass(receivingPackage, "Property_IsDerivedUnion"), "_true_true").isDerivedUnion());
assertFalse(getClass(receivingPackage, "RedefinableElement_IsLeaf_false_false").isLeaf());
assertFalse(getClass(receivingPackage, "RedefinableElement_IsLeaf_false_true").isLeaf());
assertFalse(getClass(receivingPackage, "RedefinableElement_IsLeaf_true_false").isLeaf());
assertTrue(getClass(receivingPackage, "RedefinableElement_IsLeaf_true_true").isLeaf());
assertFalse(getProperty(getClass(receivingPackage, "StructuralFeature_IsReadOnly"), "_false_false").isReadOnly());
assertFalse(getProperty(getClass(receivingPackage, "StructuralFeature_IsReadOnly"), "_false_true").isReadOnly());
assertFalse(getProperty(getClass(receivingPackage, "StructuralFeature_IsReadOnly"), "_true_false").isReadOnly());
assertTrue(getProperty(getClass(receivingPackage, "StructuralFeature_IsReadOnly"), "_true_true").isReadOnly());
}
//
// Test framework
//
@Override
protected void setUp()
throws Exception {
rset = new ResourceSetImpl();
if (StandaloneSupport.isStandalone()) {
StandaloneSupport.init(rset);
}
fixture = getTestModel();
}
@Override
protected void tearDown()
throws Exception {
fixture = null;
// clean up the CacheAdapter as well as we can
for (Resource next : rset.getResources()) {
next.unload();
next.eAdapters().clear();
}
rset.getResources().clear();
rset.eAdapters().clear();
}
Association getAssociation(Package package_, String name) {
return (Association) package_.getOwnedType(name);
}
Class getClass(Package package_, String name) {
return (Class) package_.getOwnedType(name);
}
Property getProperty(AttributeOwner owner, String name) {
return owner.getOwnedAttribute(name, null);
}
Package getPackage(String name) {
return fixture.getNestedPackage(name);
}
Package getTestModel() {
URL url = getClass().getResource("Bug416833.uml"); //$NON-NLS-1$
return (Package) UML2Util.load(rset,
URI.createURI(url.toExternalForm()), UMLPackage.Literals.PACKAGE);
}
void merge(org.eclipse.uml2.uml.Package package_,
DiagnosticChain diagnostics, String option) {
Map<String, String> options = new HashMap<String, String>();
options
.put(PackageMerger.OPTION__ATTRIBUTE_TRANSFORMATIONS, option);
UMLUtil.merge(package_, options, diagnostics, null);
}
Diagnostic getDiagnostic(Diagnostic diagnostics, int code) {
for (Diagnostic child : diagnostics.getChildren()) {
if (UMLValidator.DIAGNOSTIC_SOURCE.equals(child.getSource())
&& (child.getCode() == code)) {
// found it
return child;
}
}
return null;
}
}