package matchers; import matchers.Person; import org.eclipse.xtext.xbase.lib.Functions.Function1; import org.jnario.lib.Assert; import org.jnario.runner.ExampleGroupRunner; import org.jnario.runner.Named; import org.jnario.runner.Order; import org.junit.Test; import org.junit.runner.RunWith; @Named("Matchers") @RunWith(ExampleGroupRunner.class) @SuppressWarnings("all") public class MatchersSpec { @Test @Named("Using Hamcrest") @Order(1) public void _usingHamcrest() throws Exception { final Person personOfAgeFour = new Person("Frodo", 4); final Person personOfAgeFive = new Person("Bilbo", 5); Function1<Person, Boolean> _underAge = this.underAge(); Boolean _should_be = this.<Person>should_be(personOfAgeFour, _underAge); Assert.assertFalse("\nExpected personOfAgeFour should not be underAge but" + "\n personOfAgeFour is " + new org.hamcrest.StringDescription().appendValue(personOfAgeFour).toString() + "\n", _should_be); Function1<Person, Boolean> _olderThan = this.olderThan(personOfAgeFive); Assert.assertTrue("\nExpected personOfAgeFour should be olderThan(personOfAgeFive) but" + "\n personOfAgeFour is " + new org.hamcrest.StringDescription().appendValue(personOfAgeFour).toString() + "\n personOfAgeFive is " + new org.hamcrest.StringDescription().appendValue(personOfAgeFive).toString() + "\n", this.<Person>should_be(personOfAgeFour, _olderThan)); } public Function1<Person, Boolean> olderThan(final Person p) { final Function1<Person, Boolean> _function = new Function1<Person, Boolean>() { public Boolean apply(final Person other) { int _age = other.getAge(); int _age_1 = p.getAge(); return Boolean.valueOf((_age > _age_1)); } }; return _function; } public Function1<Person, Boolean> underAge() { final Function1<Person, Boolean> _function = new Function1<Person, Boolean>() { public Boolean apply(final Person p) { int _age = p.getAge(); return Boolean.valueOf((_age < 18)); } }; return _function; } public <T extends Object> Boolean should_be(final T obj, final Function1<T, Boolean> func) { return func.apply(obj); } }