package jetbrains.mps.make.generator; /*Generated by MPS */ import org.junit.runner.RunWith; import org.jmock.integration.junit4.JMock; import jetbrains.mps.make.unittest.MockTestCase; import jetbrains.mps.make.facet.IFacetManifest; import jetbrains.mps.make.facet.FacetRegistry; import org.junit.Test; import jetbrains.mps.make.script.ScriptBuilder; import jetbrains.mps.make.script.IScriptController; import jetbrains.mps.make.unittest.Mockups; import jetbrains.mps.make.script.IConfigMonitor; import org.jmock.Expectations; import jetbrains.mps.baseLanguage.closures.runtime._FunctionTypes; import org.hamcrest.BaseMatcher; import org.hamcrest.Description; import org.jmock.api.Action; import org.jmock.api.Invocation; import jetbrains.mps.make.script.IPropertiesPool; import jetbrains.mps.make.script.IFeedback; import jetbrains.mps.make.script.IQuery; import jetbrains.mps.make.script.IOption; import jetbrains.mps.internal.collections.runtime.Sequence; import jetbrains.mps.make.script.IScript; import jetbrains.mps.make.facet.IFacet; import jetbrains.mps.make.facet.ITarget; import junit.framework.Assert; import jetbrains.mps.make.script.IResult; import jetbrains.mps.progress.EmptyProgressMonitor; import org.junit.Before; import java.lang.reflect.Constructor; import org.junit.After; @RunWith(JMock.class) public class Generator_Test extends MockTestCase { private IFacetManifest manifest; private FacetRegistry myFacetRegistry; @Test public void test_queryStop() throws Exception { ScriptBuilder scb = new ScriptBuilder(); final IScriptController mons = Mockups.monitors(context, "mons"); final IConfigMonitor cmon = context.mock(IConfigMonitor.class); context.checking(new Expectations() { { final Object[] cfg = new Object[1]; exactly(1).of(mons).runConfigWithMonitor((_FunctionTypes._void_P1_E0<? super IConfigMonitor>) with(new BaseMatcher<Object>() { @Override public boolean matches(Object o) { cfg[0] = o; return true; } @Override public void describeTo(Description p0) { } })); will(new Action() { @Override public Object invoke(Invocation invocation) throws Throwable { ((_FunctionTypes._void_P1_E0<? super IConfigMonitor>) cfg[0]).invoke(cmon); return null; } @Override public void describeTo(Description description) { } }); exactly(1).of(mons).setup(with(Expectations.aNonNull(IPropertiesPool.class)), with(Expectations.aNonNull(Iterable.class)), with(Expectations.<Iterable>anything())); exactly(1).of(cmon).reportFeedback(with(Expectations.aNonNull(IFeedback.class))); final IQuery[] query = new IQuery[1]; exactly(1).of(cmon).relayQuery(with(new BaseMatcher<IQuery<IOption>>() { @Override public boolean matches(Object o) { if (o instanceof IQuery) { query[0] = (IQuery) o; return true; } return false; } @Override public void describeTo(Description p0) { } })); will(new Action() { @Override public Object invoke(Invocation invocation) throws Throwable { return Sequence.fromIterable(query[0].options()).last(); } @Override public void describeTo(Description description) { } }); } }); Mockups.allowing(context, mons); IScript scr = scb.withFacetName(new IFacet.Name("jetbrains.mps.make.tests.Maker_")).withFacetName(new IFacet.Name("jetbrains.mps.make.tests.Generator_")).withFacetName(new IFacet.Name("jetbrains.mps.make.tests.TextGen_")).withFinalTarget(new ITarget.Name("jetbrains.mps.make.tests.Maker_.Make")).toScript(); Assert.assertTrue(scr.isValid()); ITarget dt = scr.finalTarget(); Assert.assertNotNull(dt); Assert.assertEquals(new ITarget.Name("jetbrains.mps.make.tests.Maker_.Make"), dt.getName()); IResult res = scr.execute(mons, null, new EmptyProgressMonitor()); Assert.assertNotNull(res); Assert.assertFalse(res.isSucessful()); Assert.assertTrue(Sequence.fromIterable(res.output()).isEmpty()); } public Generator_Test() { } @Before public void setUp() throws Exception { Class<?> mf = Class.forName(Generator_Test.class.getPackage().getName() + ".FacetManifest"); Constructor<?> ctor = mf.getConstructor(); Object inst = ctor.newInstance(); this.manifest = (IFacetManifest) inst; myFacetRegistry = new FacetRegistry(null); myFacetRegistry.init(); registerFacets(manifest); } @After public void tearDown() throws Exception { unregisterFacets(manifest); myFacetRegistry.dispose(); } private void registerFacets(IFacetManifest fm) { for (IFacet fct : fm.facets()) { myFacetRegistry.register(fct); } } private void unregisterFacets(IFacetManifest fm) { for (IFacet fct : fm.facets()) { myFacetRegistry.unregister(fct); } } }