/*******************************************************************************
* Copyright (c) 2012, 2014 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.pror.configuration.provider;
import static org.junit.Assert.assertEquals;
import org.eclipse.rmf.reqif10.ReqIF;
import org.eclipse.rmf.reqif10.common.util.ReqIFToolExtensionUtil;
import org.eclipse.rmf.reqif10.pror.configuration.ConfigurationFactory;
import org.eclipse.rmf.reqif10.pror.configuration.ConfigurationPackage;
import org.eclipse.rmf.reqif10.pror.configuration.ProrPresentationConfigurations;
import org.eclipse.rmf.reqif10.pror.configuration.ProrToolExtension;
import org.eclipse.rmf.reqif10.pror.presentation.linewrap.LinewrapConfiguration;
import org.eclipse.rmf.reqif10.pror.presentation.linewrap.LinewrapFactory;
import org.eclipse.rmf.reqif10.pror.presentation.linewrap.provider.LinewrapItemProviderAdapterFactory;
import org.eclipse.rmf.reqif10.pror.testframework.AbstractItemProviderTest;
import org.eclipse.rmf.reqif10.pror.util.ProrUtil;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
/**
* A test case for the model object '<em><b>Pror Presentation Configurations</b></em>'.
*/
public class ProrPresentationConfigurationsTest extends AbstractItemProviderTest {
/**
* The fixture for this Pror Presentation Configurations test case.
*/
protected ProrPresentationConfigurations fixture = null;
/**
* Sets the fixture for this Pror Presentation Configurations test case.
*/
protected void setFixture(ProrPresentationConfigurations fixture) {
this.fixture = fixture;
}
/**
* Returns the fixture for this Pror Presentation Configurations test case.
*/
protected ProrPresentationConfigurations getFixture() {
return fixture;
}
/**
* @see junit.framework.TestCase#setUp()
*/
@Before
public void setUp() throws Exception {
setFixture(ConfigurationFactory.eINSTANCE.createProrPresentationConfigurations());
}
/**
* @see junit.framework.TestCase#tearDown()
*/
@After
public void tearDown() throws Exception {
setFixture(null);
}
@Test
public void testPresentationRegistration() throws Exception {
// We use the LinewrapPresentation just for this test -> Register Factory.
adapterFactory
.addAdapterFactory(new LinewrapItemProviderAdapterFactory());
// Needs an EditingDomain.
((ProrPresentationConfigurationsItemProvider) ProrUtil.getItemProvider(
adapterFactory, fixture)).setEditingDomain(editingDomain);
ReqIF reqif = getTestReqif("simple.reqif");
ProrToolExtension toolExtension = ConfigurationFactory.eINSTANCE
.createProrToolExtension();
toolExtension.setPresentationConfigurations(fixture);
ReqIFToolExtensionUtil.addToolExtension(reqif, toolExtension);
LinewrapConfiguration config = LinewrapFactory.eINSTANCE.createLinewrapConfiguration();
ProrPresentationConfigurationItemProvider ip = (ProrPresentationConfigurationItemProvider) ProrUtil
.getConfigItemProvider(config, adapterFactory);
// should trigger registration.
setViaCommand(fixture, ConfigurationPackage.Literals.PROR_PRESENTATION_CONFIGURATIONS__PRESENTATION_CONFIGURATIONS, config);
assertEquals(ip.getRegisteredConfigurations().size(), 1);
// should trigger un-registration
removeViaCommand(fixture, ConfigurationPackage.Literals.PROR_PRESENTATION_CONFIGURATIONS__PRESENTATION_CONFIGURATIONS, config);
assertEquals(ip.getRegisteredConfigurations().size(), 0);
}
} //ProrPresentationConfigurationsTest