/******************************************************************************* | |
* 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 java.net.URISyntaxException; | |
import java.util.GregorianCalendar; | |
import javax.xml.datatype.DatatypeConfigurationException; | |
import javax.xml.datatype.DatatypeFactory; | |
import org.eclipse.emf.ecore.EObject; | |
import org.eclipse.emf.ecore.EStructuralFeature; | |
import org.eclipse.emf.edit.provider.ItemProviderAdapter; | |
import org.eclipse.rmf.reqif10.Identifiable; | |
import org.eclipse.rmf.reqif10.pror.testframework.AbstractItemProviderTest; | |
import org.eclipse.rmf.reqif10.pror.util.ProrUtil; | |
import org.junit.Assert; | |
import org.junit.Test; | |
/** | |
* A test case for the model object '<em><b>Identifiable</b></em>'. | |
*/ | |
public abstract class IdentifiableTest extends AbstractItemProviderTest { | |
/** | |
* The fixture for this Identifiable test case. | |
*/ | |
protected Identifiable fixture = null; | |
/** | |
* Sets the fixture for this Identifiable test case. | |
*/ | |
protected void setFixture(Identifiable fixture) { | |
this.fixture = fixture; | |
} | |
/** | |
* Returns the fixture for this Identifiable test case. | |
*/ | |
protected Identifiable getFixture() { | |
return fixture; | |
} | |
/** | |
* Make sure Notifications are generated for all fields. | |
*/ | |
@Test | |
public void testBasicNotifications() throws DatatypeConfigurationException { | |
ItemProviderAdapter ip = ProrUtil.getItemProvider(adapterFactory, getFixture()); | |
ip.addListener(listener); | |
getFixture().setDesc("new Description"); | |
Assert.assertEquals(1, notifications.size()); | |
getFixture().setIdentifier("new id"); | |
Assert.assertEquals(2, notifications.size()); | |
getFixture().setLastChange(new GregorianCalendar()); | |
Assert.assertEquals(3, notifications.size()); | |
getFixture().setLongName("new Long Name"); | |
Assert.assertEquals(4, notifications.size()); | |
} | |
/** | |
* Make sure that the lastChanged attribute is set after creating the | |
* object. | |
* | |
* @throws URISyntaxException | |
*/ | |
@Test | |
public void testSetLastChangeAfterCreation() throws URISyntaxException { | |
EObject parent = getParent(); | |
EStructuralFeature parentFeature = getParentFeature(); | |
Identifiable id = getFixture(); | |
setViaCommand(parent, parentFeature, id); | |
Assert.assertNotNull(id.getLastChange()); | |
} | |
protected abstract EStructuralFeature getParentFeature(); | |
protected abstract EObject getParent(); | |
} //IdentifiableTest |