/******************************************************************************* | |
* Copyright (c) 2011, 2013 Formal Mind GmbH and University of Dusseldorf. | |
* 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: | |
* Michael Jastram - initial API and implementation | |
******************************************************************************/ | |
package org.eclipse.rmf.reqif10.provider; | |
import static org.junit.Assert.assertEquals; | |
import java.net.URISyntaxException; | |
import java.util.HashSet; | |
import java.util.Set; | |
import org.eclipse.emf.ecore.EObject; | |
import org.eclipse.emf.ecore.EStructuralFeature; | |
import org.eclipse.emf.edit.provider.IItemLabelProvider; | |
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; | |
import org.eclipse.emf.edit.provider.ItemProviderAdapter; | |
import org.eclipse.rmf.reqif10.AttributeDefinitionString; | |
import org.eclipse.rmf.reqif10.ReqIF; | |
import org.eclipse.rmf.reqif10.ReqIF10Factory; | |
import org.eclipse.rmf.reqif10.ReqIF10Package; | |
import org.eclipse.rmf.reqif10.SpecHierarchy; | |
import org.eclipse.rmf.reqif10.SpecObject; | |
import org.junit.After; | |
import org.junit.Before; | |
import org.junit.Test; | |
/** | |
* A test case for the model object '<em><b>Spec Hierarchy</b></em>'. | |
*/ | |
public class SpecHierarchyTest extends IdentifiableTest { | |
private ReqIF reqif; | |
@Before | |
public void setupReqif() throws URISyntaxException { | |
reqif = getTestReqif("simple.reqif"); | |
} | |
/** | |
* Returns the fixture for this Spec Hierarchy test case. | |
*/ | |
@Override | |
protected SpecHierarchy getFixture() { | |
return (SpecHierarchy)fixture; | |
} | |
/** | |
* @see junit.framework.TestCase#setUp() | |
*/ | |
@Before | |
public void setUpSpecHierarchyTest() throws Exception { | |
setFixture(ReqIF10Factory.eINSTANCE.createSpecHierarchy()); | |
} | |
/** | |
* @see junit.framework.TestCase#tearDown() | |
*/ | |
@After | |
public void tearDownSpecHierarchyTest() throws Exception { | |
setFixture(null); | |
} | |
/** | |
* We test that the properties for the SpecObject appear on the SpecHierarchy. | |
*/ | |
@Test | |
public void testPropertiesOfSpecElementWithAttribute() throws URISyntaxException { | |
ReqIF reqif = getTestReqif("simple.reqif"); | |
setViaCommand(reqif.getCoreContent().getSpecifications().get(0), ReqIF10Package.Literals.SPECIFICATION__CHILDREN, getFixture()); | |
SpecObject specObject = reqif.getCoreContent().getSpecObjects().get(0); | |
getFixture().setObject(specObject); | |
ItemProviderAdapter ip = getItemProvider(getFixture()); | |
Set<String> expected = new HashSet<String>(); | |
for (IItemPropertyDescriptor prop: ip.getPropertyDescriptors(getFixture())) { | |
expected.add(prop.getCategory(getFixture()) + "-" + prop.getDisplayName(getFixture())); | |
} | |
AttributeDefinitionString ad = ReqIF10Factory.eINSTANCE.createAttributeDefinitionString(); | |
adapterFactory.adapt(ad, IItemLabelProvider.class); | |
adapterFactory.adapt(specObject.getType(), IItemLabelProvider.class); | |
adapterFactory.adapt(specObject, IItemLabelProvider.class); | |
adapterFactory.adapt(getFixture(), IItemLabelProvider.class); | |
ad.setLongName("New"); | |
setViaCommand(specObject.getType(), ReqIF10Package.Literals.SPEC_TYPE__SPEC_ATTRIBUTES, ad); | |
assertEquals(expected.size() + 1, ip.getPropertyDescriptors(getFixture()).size()); | |
// Set of actuals | |
Set<String> actual = new HashSet<String>(); | |
for (IItemPropertyDescriptor prop: ip.getPropertyDescriptors(getFixture())) { | |
actual.add(prop.getCategory(getFixture()) + "-" + prop.getDisplayName(getFixture())); | |
} | |
// Set of expected | |
expected.add("Example SpecType-New"); | |
assertEquals(expected, actual); | |
} | |
@Override | |
protected EStructuralFeature getParentFeature() { | |
return ReqIF10Package.eINSTANCE.getSpecification_Children(); | |
} | |
@Override | |
protected EObject getParent() { | |
return reqif.getCoreContent().getSpecifications().get(0); | |
} | |
/** | |
* Make sure that the lastChanged attribute is set after moving the | |
* {@link SpecHierarchy}. | |
* | |
* @throws URISyntaxException | |
*/ | |
@Test | |
public void testSetLastChangeAfterMoving() { | |
// FIXME: Implement me!!! | |
} | |
} //SpecHierarchyTest |