|
From: Nat P. <np...@us...> - 2002-11-06 15:54:39
|
Update of /cvsroot/mockobjects/mockobjects-java/src/core/test/mockobjects/dynamic
In directory usw-pr-cvs1:/tmp/cvs-serv31865/src/core/test/mockobjects/dynamic
Modified Files:
MockTest.java CallCounterTest.java CallSequenceTest.java
Log Message:
Fixed tests broken by MethodExpectation class
Replaced createInterface methods with interface references passed to constructor, and the proxy() method to "cast" the mock to its proxy.
Index: MockTest.java
===================================================================
RCS file: /cvsroot/mockobjects/mockobjects-java/src/core/test/mockobjects/dynamic/MockTest.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- MockTest.java 5 Nov 2002 16:26:59 -0000 1.4
+++ MockTest.java 6 Nov 2002 15:54:34 -0000 1.5
@@ -36,23 +36,7 @@
void first();
void second();
}
-
- public static class DerivedMock
- extends Mock
- {
- public boolean was_called = false;
-
- public void voidMethod() {
- this.was_called = true;
- }
- public String objectTypes( Integer n ) throws Throwable {
- Method method = getClass().getMethod("objectTypes", new Class[] { Integer.class } );
- return (String)mockCall(method , new Object[]{n} );
- }
- };
-
-
private Mock _mock;
private ExampleInterface _interface;
@@ -62,9 +46,8 @@
}
public void setUp() {
- _mock = new Mock();
- _interface =
- (ExampleInterface)_mock.createInterface( ExampleInterface.class );
+ _mock = new Mock( ExampleInterface.class );
+ _interface = (ExampleInterface)_mock.proxy();
}
public void tearDown() {
@@ -415,6 +398,91 @@
fail("should have thrown AssertionFailedError when return from void method");
}
+ public void testEquals() {
+ assertEquals("Same interface should have same hashcode", _interface.hashCode(), _interface.hashCode());
+ assertEquals("Same interface should be equal", _interface, _interface);
+ }
+
+
+ public static interface Interface1 {
+ void method1();
+ }
+
+ public static interface Interface2 {
+ void method2();
+ }
+
+ public static interface Interface3 {
+ void method3();
+ }
+
+ public static interface Interface4 {
+ void method4();
+ }
+
+ public static interface Interface5 {
+ void method5();
+ }
+
+ public void testMockTwoInterfaces() {
+ Mock mock = new Mock( Interface1.class, Interface2.class );
+ assertInstanceOf( Interface1.class, mock.proxy() );
+ assertInstanceOf( Interface2.class, mock.proxy() );
+ }
+
+ public void testMockThreeInterfaces() {
+ Mock mock = new Mock( Interface1.class, Interface2.class,
+ Interface3.class );
+ assertInstanceOf( Interface1.class, mock.proxy() );
+ assertInstanceOf( Interface2.class, mock.proxy() );
+ assertInstanceOf( Interface3.class, mock.proxy() );
+ }
+
+ public void testMockFourInterfaces() {
+ Mock mock = new Mock( Interface1.class, Interface2.class,
+ Interface3.class, Interface4.class );
+ assertInstanceOf( Interface1.class, mock.proxy() );
+ assertInstanceOf( Interface2.class, mock.proxy() );
+ assertInstanceOf( Interface3.class, mock.proxy() );
+ assertInstanceOf( Interface4.class, mock.proxy() );
+ }
+
+ public void testMockFiveInterfaces() {
+ Mock mock = new Mock( new Class[] {
+ Interface1.class, Interface2.class, Interface3.class,
+ Interface4.class, Interface5.class } );
+
+ assertInstanceOf( Interface1.class, mock.proxy() );
+ assertInstanceOf( Interface2.class, mock.proxy() );
+ assertInstanceOf( Interface3.class, mock.proxy() );
+ assertInstanceOf( Interface4.class, mock.proxy() );
+ assertInstanceOf( Interface5.class, mock.proxy() );
+ }
+
+ private static void assertInstanceOf( Class klass, Object o ) {
+ assertTrue( o + " should be an instance of " + klass,
+ klass.isInstance(o) );
+ }
+
+ public static class DerivedMock
+ extends Mock
+ {
+ public boolean was_called = false;
+
+ public DerivedMock() {
+ super( ExampleInterface.class );
+ }
+
+ public void voidMethod() {
+ this.was_called = true;
+ }
+
+ public String objectTypes( Integer n ) throws Throwable {
+ Method method = getClass().getMethod("objectTypes", new Class[] { Integer.class } );
+ return (String)mockCall(method , new Object[]{n} );
+ }
+ };
+
public void testDerivedMockClass() {
DerivedMock mock = new DerivedMock();
ExampleInterface i = (ExampleInterface)Proxy.newProxyInstance(
@@ -443,10 +511,5 @@
assertEquals( "result", i.objectTypes( new Integer(1) ) );
mock.verify();
- }
-
- public void testEquals() {
- assertEquals("Same interface should have same hashcode", _interface.hashCode(), _interface.hashCode());
- assertEquals("Same interface should be equal", _interface, _interface);
}
}
Index: CallCounterTest.java
===================================================================
RCS file: /cvsroot/mockobjects/mockobjects-java/src/core/test/mockobjects/dynamic/CallCounterTest.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- CallCounterTest.java 31 Oct 2002 17:03:47 -0000 1.1
+++ CallCounterTest.java 6 Nov 2002 15:54:35 -0000 1.2
@@ -19,33 +19,18 @@
super(test);
}
- public void testCallCounterPassesArguments()
- throws Throwable
- {
- Mock mock_call = new Mock();
- CallCounter counter = new CallCounter(
- 1, (MockCall)mock_call.createInterface(MockCall.class) );
-
- final Object[] ARGS = { new Object() };
- mock_call.expectVoid( "call", P.args( P.same(ARGS) ) );
-
- counter.call( ARGS );
-
- mock_call.verify();
- counter.verify();
- }
-
- public void testCallCounterReturnsValue()
+ public void testCallCounterPassesArgumentsAndReturnsValue()
throws Throwable
{
- Mock mock_call = new Mock();
+ Mock mock_call = new Mock(MockCall.class);
CallCounter counter = new CallCounter(
- 1, (MockCall)mock_call.createInterface(MockCall.class) );
+ 1, (MockCall)mock_call.proxy() );
+ final Object[] ARGS = { new Object() };
final Object RESULT = new Object();
- mock_call.expectReturn( "call", P.ANY_ARGS, RESULT );
+ mock_call.expectReturn( "call", ARGS, RESULT );
- assertSame( RESULT, counter.call( new Object[0] ) );
+ assertSame( RESULT, counter.call(ARGS) );
mock_call.verify();
counter.verify();
@@ -54,9 +39,9 @@
public void testCallCounterThrowsException()
throws Throwable
{
- Mock mock_call = new Mock();
+ Mock mock_call = new Mock(MockCall.class);
CallCounter counter = new CallCounter(
- 1, (MockCall)mock_call.createInterface(MockCall.class) );
+ 1, (MockCall)mock_call.proxy() );
final Object RESULT = new Object();
mock_call.expectThrow( "call", P.ANY_ARGS, new ExampleException() );
@@ -75,9 +60,9 @@
public void testTooManyCalls()
throws Throwable
{
- Mock mock_call = new Mock();
+ Mock mock_call = new Mock(MockCall.class);
final CallCounter counter = new CallCounter(
- 2, (MockCall)mock_call.createInterface(MockCall.class) );
+ 2, (MockCall)mock_call.proxy() );
counter.call( new Object[0] );
counter.call( new Object[0] );
@@ -95,9 +80,9 @@
public void testTooFewCalls()
throws Throwable
{
- Mock mock_call = new Mock();
+ Mock mock_call = new Mock(MockCall.class);
final CallCounter counter = new CallCounter(
- 2, (MockCall)mock_call.createInterface(MockCall.class) );
+ 2, (MockCall)mock_call.proxy() );
counter.call( new Object[0] );
Index: CallSequenceTest.java
===================================================================
RCS file: /cvsroot/mockobjects/mockobjects-java/src/core/test/mockobjects/dynamic/CallSequenceTest.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- CallSequenceTest.java 1 Nov 2002 15:35:20 -0000 1.1
+++ CallSequenceTest.java 6 Nov 2002 15:54:35 -0000 1.2
@@ -39,50 +39,22 @@
fail( "call to empty call list should fail" );
}
- public void testCallListPassesArguments()
+ public void testCallListPassesArgumentsAndReturnsValue()
throws Throwable
{
- Mock mock_call_1 = new Mock();
- Mock mock_call_2 = new Mock();
+ Mock mock_call_1 = new Mock(MockCall.class);
+ Mock mock_call_2 = new Mock(MockCall.class);
CallSequence call_list = new CallSequence();
final Object[] ARGS_1 = { new Object() };
- final Object[] ARGS_2 = { new Object() };
-
- mock_call_1.expectVoid( "call", P.args( P.same(ARGS_1) ) );
- call_list.expect(
- (MockCall)mock_call_1.createInterface(MockCall.class) );
-
- mock_call_2.expectVoid( "call", P.args( P.same(ARGS_2) ) );
- call_list.expect(
- (MockCall)mock_call_2.createInterface(MockCall.class) );
-
-
- call_list.call( ARGS_1 );
- call_list.call( ARGS_2 );
- mock_call_1.verify();
- mock_call_2.verify();
- call_list.verify();
- }
-
- public void testCallListReturnsValue()
- throws Throwable
- {
- Mock mock_call_1 = new Mock();
- Mock mock_call_2 = new Mock();
- CallSequence call_list = new CallSequence();
- final Object[] ARGS_1 = { new Object() };
- final Object[] ARGS_2 = { new Object() };
final Object RESULT_1 = new Object();
+ final Object[] ARGS_2 = { new Object() };
final Object RESULT_2 = new Object();
- mock_call_1.expectReturn( "call", P.args(P.same(ARGS_1)), RESULT_1 );
- call_list.expect(
- (MockCall)mock_call_1.createInterface(MockCall.class) );
+ mock_call_1.expectReturn( "call", ARGS_1, RESULT_1 );
+ call_list.expect( (MockCall)mock_call_1.proxy() );
- mock_call_2.expectReturn( "call", P.args(P.eq(ARGS_2)), RESULT_2 );
- call_list.expect(
- (MockCall)mock_call_2.createInterface(MockCall.class) );
-
+ mock_call_2.expectReturn( "call", ARGS_2, RESULT_2 );
+ call_list.expect( (MockCall)mock_call_2.proxy() );
assertSame( RESULT_1, call_list.call( ARGS_1 ) );
assertSame( RESULT_2, call_list.call( ARGS_2 ) );
@@ -91,12 +63,12 @@
mock_call_2.verify();
call_list.verify();
}
-
+
public void testCallListThrowsExceptionValue()
throws Throwable
{
- Mock mock_call_1 = new Mock();
- Mock mock_call_2 = new Mock();
+ Mock mock_call_1 = new Mock(MockCall.class);
+ Mock mock_call_2 = new Mock(MockCall.class);
CallSequence call_list = new CallSequence();
final Object[] ARGS_1 = { new Object() };
final Object[] ARGS_2 = { new Object() };
@@ -105,11 +77,10 @@
mock_call_1.expectThrow( "call", P.args(P.same(ARGS_1)), EXCEPTION_1 );
call_list.expect(
- (MockCall)mock_call_1.createInterface(MockCall.class) );
+ (MockCall)mock_call_1.proxy() );
mock_call_2.expectThrow( "call", P.args(P.eq(ARGS_2)), EXCEPTION_2 );
- call_list.expect(
- (MockCall)mock_call_2.createInterface(MockCall.class) );
+ call_list.expect( (MockCall)mock_call_2.proxy() );
try {
call_list.call( ARGS_1 );
|