package school.base.test.instance; import static org.junit.Assert.assertTrue; import java.util.Collection; import org.eclipse.emf.common.notify.Notifier; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EObject; import org.junit.Test; import school.Course; import school.SpecialisationCourse; import school.Student; import school.base.test.SchoolBaseDynamicParameterizedTest; import school.base.test.util.DynamicResourceMetamodel; import school.base.test.util.ModelManager; /** * Test cases used to test the instance getters of EMF-IncQuery Base with dynamic EMF model. * * @author Tamas Szabo * */ public class DynamicInstanceTest extends SchoolBaseDynamicParameterizedTest { public DynamicInstanceTest(Notifier notifier) { super(notifier); } /** * Checks all instanes of the {@link Student}'s {@link EClass} */ @Test public void allInstancesTest() { Collection<EObject> result = navigationHelper.getAllInstances(DynamicResourceMetamodel.eINSTANCE.StudentEClass); for (EObject obj : ModelManager.getAllContents(notifier)) { if (obj.eClass().equals(DynamicResourceMetamodel.eINSTANCE.StudentEClass)) { assertTrue(result.contains(obj)); } } } /** * Test case used to check the direct instance getters. * Distinguishes between {@link Course} and {@link SpecialisationCourse} instances. */ @Test public void directInstancesTest() { Collection<EObject> result = navigationHelper.getDirectInstances(DynamicResourceMetamodel.eINSTANCE.CourseEClass); for (EObject obj : ModelManager.getAllContents(notifier)) { if (obj.eClass().equals(DynamicResourceMetamodel.eINSTANCE.SpecialisationCourseEClass)) { assertTrue(!result.contains(obj)); } else if (obj.eClass().equals(DynamicResourceMetamodel.eINSTANCE.CourseEClass)) { assertTrue(result.contains(obj)); } } } }