package org.whole.lang.matchers.tests; import static org.junit.Assert.*; import static org.hamcrest.CoreMatchers.*; import static org.whole.lang.tests.junit.EntityMatchers.*; import org.junit.*; import org.whole.lang.model.IEntity; import org.whole.lang.reflect.ReflectionFactory; import org.whole.lang.tests.junit.TestCase; public class GenericMatcherTest extends TestCase { protected static IEntity create(String templateName) { return GenericMatcherTestTemplateManager.instance().create(templateName); } protected static IEntity evaluate(String templateName) { return evaluate(create(templateName)); } /** * */ @Test public void testAnyTypeVariables() { bindings().wEnterScope(); IEntity subject; subject = create("fragment"); assertThat("at /testCases/0/tests/0/body/0", subject, matches(create("fragment1"))); subject = create("fragment2"); assertThat("at /testCases/0/tests/0/body/1", subject, not(matches(create("fragment3")))); subject = create("fragment4"); assertThat("at /testCases/0/tests/0/body/2", subject, not(matches(create("fragment5")))); subject = create("fragment6"); assertThat("at /testCases/0/tests/0/body/3", subject, matches(create("fragment7"))); subject = create("fragment8"); assertThat("at /testCases/0/tests/0/body/4", subject, matches(create("fragment9"))); bindings().wExitScope(); } /** * */ @Test public void testTypedVariables() { bindings().wEnterScope(); IEntity subject; subject = create("fragment10"); assertThat("at /testCases/0/tests/1/body/0", subject, not(matches(create("fragment11")))); subject = create("fragment12"); assertThat("at /testCases/0/tests/1/body/1", subject, matches(create("fragment13"))); subject = create("fragment14"); assertThat("at /testCases/0/tests/1/body/2", subject, matches(create("fragment15"))); subject = create("fragment16"); assertThat("at /testCases/0/tests/1/body/3", subject, matches(create("fragment17"))); subject = create("fragment18"); assertThat("at /testCases/0/tests/1/body/4", subject, not(matches(create("fragment19")))); subject = create("fragment20"); assertThat("at /testCases/0/tests/1/body/5", subject, not(matches(create("fragment21")))); subject = create("fragment22"); assertThat("at /testCases/0/tests/1/body/6", subject, matches(create("fragment23"))); bindings().wExitScope(); } }