package school.base.test.feature;
import static org.junit.Assert.assertTrue;
import java.util.Collection;
import org.eclipse.emf.common.notify.Notifier;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.junit.Test;
import school.base.test.SchoolBaseDynamicParameterizedTest;
import school.base.test.util.DynamicResourceMetamodel;
import school.base.test.util.ModelManager;
/**
* Test cases used to test the {@link EStructuralFeature} related getters of EMF-IncQuery Base with dynamic EMF model.
*
* @author Tamas Szabo
*
*/
public class DynamicFeatureTest extends SchoolBaseDynamicParameterizedTest {
public DynamicFeatureTest(Notifier notifier) {
super(notifier);
}
/**
* Finding all students in the model
*/
@Test
public void holderTest() {
Collection<EObject> result = navigationHelper.getHoldersOfFeature(DynamicResourceMetamodel.eINSTANCE.StudentNameEAttribute);
for (EObject obj : ModelManager.getAllContents(notifier)) {
if (obj.eClass().equals(DynamicResourceMetamodel.eINSTANCE.StudentEClass)) {
assertTrue(result.contains(obj));
}
}
}
private static final String SCHOOL_NAME = "Budapest University of Technology and Economics";
/**
* Feature holder resolving based on String literal
*/
@Test
public void stringValueTest() {
Collection<EObject> result = navigationHelper.findByFeatureValue(SCHOOL_NAME, DynamicResourceMetamodel.eINSTANCE.SchoolNameEAttribute);
assertTrue(result.size() == 1);
}
/**
* Feature holder resolving based on Integer value
*/
@Test
public void integerValueTest() {
Collection<EObject> result = navigationHelper.findByFeatureValue(2011, DynamicResourceMetamodel.eINSTANCE.YearStartingDateEAttribute);
assertTrue(result.size() == 1);
}
}