From: David S. <ds...@us...> - 2007-07-12 17:08:28
|
Update of /cvsroot/junit/junit/src/org/junit/experimental/test/javamodel In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv26134/src/org/junit/experimental/test/javamodel Added Files: FunctionTest.java ConcreteFunctionTest.java Log Message: Re-organize theory packages --- NEW FILE: FunctionTest.java --- package org.junit.experimental.test.javamodel; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.nullValue; import static org.junit.Assert.assertThat; import org.junit.Before; import org.junit.Test; import org.junit.experimental.imposterization.FunctionPointer; import org.junit.experimental.theories.methods.api.TestedOn; public class FunctionTest { public static class HasAnnotation { public void something(@TestedOn(ints= { 3 }) int x) { } } FunctionPointer function= FunctionPointer.pointer(); @Before public void functionPoints() { function.calls(new HasAnnotation()).something(4); } @SuppressWarnings("unchecked") @Test public void getSupplierAnnotation() { assertThat(function.signatures().get(0).getSupplierAnnotation(), is(TestedOn.class)); } @Test public void thrownReturnsNullIfNormalReturn() { assertThat(function.exceptionThrown(4), nullValue()); } } --- NEW FILE: ConcreteFunctionTest.java --- package org.junit.experimental.test.javamodel; import static org.hamcrest.CoreMatchers.allOf; import static org.hamcrest.CoreMatchers.not; import static org.junit.Assert.assertThat; import static org.junit.Assume.assumeThat; import static org.junit.matchers.StringContains.containsString; import java.lang.reflect.Method; import org.junit.experimental.theories.methods.api.Theory; import org.junit.experimental.theories.runner.ConcreteFunction; import org.junit.experimental.theories.runner.api.Theories; import org.junit.runner.RunWith; @RunWith(Theories.class) public class ConcreteFunctionTest { public static Method TO_STRING; public static Method WAIT; static { try { TO_STRING= Object.class.getMethod("toString"); WAIT= Object.class.getMethod("wait"); } catch (Exception e) { e.printStackTrace(); } } public static ConcreteFunction zeroToString1= new ConcreteFunction(0, TO_STRING); public static ConcreteFunction zeroToString2= new ConcreteFunction(0, TO_STRING); public static ConcreteFunction oneToString1= new ConcreteFunction(1, TO_STRING); public static ConcreteFunction oneFinalize= new ConcreteFunction(1, WAIT); public static String ROB_KUTNER= "Rob Kutner"; @Theory public void unequalToStringsMeansFunctionsUnequal(ConcreteFunction a, ConcreteFunction b) { assumeThat(a.toString(), not(b.toString())); assertThat(a, not(b)); } @Theory public void unequalMethodsMeansUnequalFunctions(Method m1, Method m2, Object o) { assumeThat(m1, not(m2)); assertThat(new ConcreteFunction(o, m1), not(new ConcreteFunction(o, m2))); } @Theory public void unequalFunctionsMeanUnequalToStrings(ConcreteFunction a, ConcreteFunction b) { assumeThat(a, not(b)); assertThat(a.toString(), not(b.toString())); } @SuppressWarnings("unchecked") @Theory public void throwsUsefulErrorWhenParameterNumberWrong(String string) throws Throwable { try { new ConcreteFunction(this, TO_STRING).invoke(string); } catch (Exception e) { assertThat(e.toString(), allOf(containsString(string), containsString(TO_STRING.toString()))); } } } |