package org.eclipse.emf.mwe.tests.util;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.mwe.core.WorkflowContext;
import org.eclipse.emf.mwe.core.WorkflowContextDefaultImpl;
import org.eclipse.emf.mwe.core.issues.IssuesImpl;
import org.eclipse.emf.mwe.core.monitor.NullProgressMonitor;
import org.eclipse.emf.mwe.utils.Reader;
import org.junit.Assert;
import org.junit.Test;
public class ReaderTest extends Assert {
/**
* Will fail when executed as plain vanilla unit test.
* Tests are executed as plugin-unit-test on the server. Since they may
* not fail on the server, we decide to use a platform:/plugin..-uri.
*/
@Test public void testLoadSimpleModel() throws Exception {
Reader r = new Reader();
r.setFirstElementOnly(true);
r.setModelSlot("x");
r.setUri("platform:/plugin/org.eclipse.emf.mwe.tests/resources/test/res/test.ecore");
WorkflowContext ctx = new WorkflowContextDefaultImpl();
r.invoke(ctx, new NullProgressMonitor(), new IssuesImpl());
EObject model1 = (EObject) ctx.get("x");
assertNotNull(model1);
r.invoke(ctx, new NullProgressMonitor(), new IssuesImpl());
EObject model2 = (EObject) ctx.get("x");
assertNotNull(model2);
assertTrue(model1.eClass()==model2.eClass());
}
@Test public void testFaultTolerantLoad() throws Exception {
Reader r = new Reader();
r.setFirstElementOnly(true);
r.setModelSlot("x");
r.setIgnoreMissingModel(true);
r.setUri("platform:/plugin/this/path/does/not/exist/test.ecore");
WorkflowContext ctx = new WorkflowContextDefaultImpl();
r.invoke(ctx, new NullProgressMonitor(), new IssuesImpl());
EObject model = (EObject) ctx.get("x");
assertNull(model);
}
}