blob: f35174d324a3f1f456e5e34174a8110c2865aa19 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011, 2012 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:
* Said Salem - initial API and implementation
******************************************************************************/
package org.eclipse.rmf.reqif10.pror.editor.agilegrid;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import org.eclipse.rmf.reqif10.AttributeValueString;
import org.eclipse.rmf.reqif10.ReqIF10Factory;
import org.eclipse.rmf.reqif10.SpecHierarchy;
import org.eclipse.rmf.reqif10.SpecObject;
import org.eclipse.rmf.reqif10.SpecRelation;
import org.eclipse.rmf.reqif10.pror.configuration.Column;
import org.eclipse.rmf.reqif10.pror.configuration.ConfigurationFactory;
import org.eclipse.rmf.reqif10.pror.configuration.ConfigurationPackage;
import org.eclipse.rmf.reqif10.pror.editor.agilegrid.ProrAgileGridContentProvider;
import org.eclipse.rmf.reqif10.pror.editor.agilegrid.ProrRow.ProrRowSpecHierarchy;
import org.junit.Test;
/**
* Tests {@link ProrAgileGridContentProvider}
*
*
* @author salem
*
*/
public class ContentProviderBasicTests extends AbstractContentProviderTests {
@Test(expected = IndexOutOfBoundsException.class)
public void testGetProrNonExistingRow() {
contentProvider.getProrRow(1);
}
@Test(expected = IndexOutOfBoundsException.class)
public void testGetContentNonExistingRow() {
contentProvider.getContentAt(2, 0);
}
@Test(expected = IndexOutOfBoundsException.class)
public void testGetContentNonExistingColumn() {
contentProvider.getContentAt(0, 2);
}
@Test
public void testGetContentOfEmptyColumn() {
addColumn("NonExistingAttribute");
assertNull(contentProvider.getContentAt(0, 0));
}
/**
* Tests for getProrRow()
*/
@Test
public void testGetProrRow0() {
SpecHierarchy[] sh = createSpecHierarchies();
assertEquals(sh[0],
((ProrRowSpecHierarchy) contentProvider.getProrRow(0))
.getSpecHierarchy());
}
@Test
public void testGetProrRow1() {
SpecHierarchy[] sh = createSpecHierarchies();
assertEquals(specification.getChildren().get(1), sh[1]);
ProrRowSpecHierarchy prorRowSpecHierarchy = (ProrRowSpecHierarchy) contentProvider
.getProrRow(1);
assertEquals(sh[1], prorRowSpecHierarchy.getSpecHierarchy());
}
@Test
public void testGetProrRow2() {
SpecHierarchy[] sh = createSpecHierarchies();
assertEquals(sh[2],
((ProrRowSpecHierarchy) contentProvider.getProrRow(2))
.getSpecHierarchy());
}
@Test
public void testGetProrRow3() {
SpecHierarchy[] sh = createSpecHierarchies();
assertEquals(sh[3],
((ProrRowSpecHierarchy) contentProvider.getProrRow(3))
.getSpecHierarchy());
}
@Test
public void testGetProrRow4() {
SpecHierarchy[] sh = createSpecHierarchies();
assertEquals(sh[4],
((ProrRowSpecHierarchy) contentProvider.getProrRow(4))
.getSpecHierarchy());
}
@Test
public void testGetProrRowSpecRelationRow0() {
SpecRelation[] sr = createSpecRelations();
assertEquals(sr[0], (contentProvider.getProrRow(1)).getSpecElement());
}
@Test
public void testGetProrRowSpecRelationRow1() {
SpecRelation[] sr = createSpecRelations();
assertEquals(sr[1], contentProvider.getProrRow(3).getSpecElement());
}
@Test
public void testGetProrRowSpecRelationRow2() {
SpecRelation[] sr = createSpecRelations();
assertEquals(sr[2], contentProvider.getProrRow(4).getSpecElement());
}
/**
*
* The link column is always the last column
*
* */
@Test
public void testGetContentOfLinkColumnSpecObject() {
addColumn("First Column");
addColumn("Second Column");
addColumn("Third Column");
assertEquals(specObject, contentProvider.getContentAt(0, 3));
}
/**
* The link column is always the last column
* */
@Test
public void testGetContentOfLinkColumnEmptySpecHierarchy() {
addColumn("First Column");
addColumn("Second Column");
addColumn("Third Column");
createSpecHierarchies();
assertNull(contentProvider.getContentAt(3, 3));
assertNull(contentProvider.getContentAt(4, 3));
}
/**
* The link column is always the last column
* */
@Test
public void testGetContentOfLinkColumnSpecRelation() {
addColumn("First Column");
addColumn("Second Column");
addColumn("Third Column");
SpecRelation[] sr = createSpecRelations();
assertEquals(sr[0], contentProvider.getContentAt(1, 3));
assertEquals(sr[1], contentProvider.getContentAt(3, 3));
assertEquals(sr[2], contentProvider.getContentAt(4, 3));
}
@Test
public void testInitialCellValueWithColumn() {
addColumn("Description");
assertEquals(1, specViewConfig.getColumns().size());
assertTrue(contentProvider.getContentAt(0, 0) instanceof AttributeValueString);
}
/**
* Adds another label config element to the column configurations
*/
private void addColumn(String label) {
Column column = ConfigurationFactory.eINSTANCE.createColumn();
column.setLabel(label);
column.setWidth(100);
setViaCommand(
specViewConfig,
ConfigurationPackage.Literals.PROR_SPEC_VIEW_CONFIGURATION__COLUMNS,
column);
}
/**
* Creates the following test structure:
*
* <pre>
* +-------------+
* |specification|
* +--+----------+
* |
* | +------------+ +---------+
* +--+ specH 0 +---+SpecObj 0|
* | +------------+ +---------+
* |
* | +------------+ +---------+
* +--+ specH 1 +---+SpecObj 1|
* | +------------+ +---------+
* |
* | +------------+ +---------+
* +--+ specH 2 +---+SpecObj 1|
* | +-+----------+ +---------+
* | |
* | | +------------+
* | +-+ specH 3 |
* | +------------+
* |
* | +------------+
* +---+ specH 4 |
* +------------+
*
*
* </pre>
*
* @param sh
*/
private SpecHierarchy[] createSpecHierarchies() {
SpecHierarchy[] sh = new SpecHierarchy[5];
sh[0] = specHierarchy;
sh[1] = ReqIF10Factory.eINSTANCE.createSpecHierarchy();
sh[2] = ReqIF10Factory.eINSTANCE.createSpecHierarchy();
sh[3] = ReqIF10Factory.eINSTANCE.createSpecHierarchy();
sh[4] = ReqIF10Factory.eINSTANCE.createSpecHierarchy();
sh[0].setDesc("specH 0");
sh[1].setDesc("specH 1");
sh[2].setDesc("specH 2");
sh[3].setDesc("specH 3");
sh[4].setDesc("specH 4");
SpecObject specObj = ReqIF10Factory.eINSTANCE.createSpecObject();
specObject.setDesc("specObj 0");
specObj.setDesc("specObj 1");
sh[1].setObject(specObj);
sh[2].setObject(specObj);
reqif.getCoreContent().getSpecObjects().add(specObj);
specification.getChildren().add(sh[1]);
specification.getChildren().add(sh[2]);
specification.getChildren().get(2).getChildren().add(sh[3]);
specification.getChildren().add(sh[4]);
return sh;
}
private SpecRelation[] createSpecRelations() {
SpecRelation[] sr = new SpecRelation[3];
sr[0] = ReqIF10Factory.eINSTANCE.createSpecRelation();
sr[1] = ReqIF10Factory.eINSTANCE.createSpecRelation();
sr[2] = ReqIF10Factory.eINSTANCE.createSpecRelation();
sr[0].setDesc("SpecRel 0");
sr[1].setDesc("SpecRel 1");
sr[2].setDesc("SpecRel 2");
SpecHierarchy[] sh = createSpecHierarchies();
sr[0].setSource(sh[0].getObject());
sr[0].setTarget(sh[0].getObject());
sr[1].setSource(sh[1].getObject());
sr[2].setSource(sh[2].getObject());
reqif.getCoreContent().getSpecRelations().add(sr[0]);
reqif.getCoreContent().getSpecRelations().add(sr[1]);
reqif.getCoreContent().getSpecRelations().add(sr[2]);
contentProvider.setShowSpecRelations(true);
assertTrue(contentProvider.getShowSpecRelations());
return sr;
}
}