blob: bbd4f0937e528dfc8afe080886f16bd1d2f18cd3 [file] [log] [blame]
/*******************************************************************************
* 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