Seitched to using easymock because
authorErik Brakkee <erik@brakkee.org>
Sat, 29 Mar 2008 22:54:06 +0000 (22:54 +0000)
committerErik Brakkee <erik@brakkee.org>
Sat, 29 Mar 2008 22:54:06 +0000 (22:54 +0000)
1. it is easier (less typing)
2. it is more flexible in defining the order in which methods are
invoked on objects and between objects.

pom.xml
support/src/test/java/org/wamblee/observer/ObservableTest.java

diff --git a/pom.xml b/pom.xml
index 3626101e9270eba61779c7fd311db4f1e5c4832b..f423fd83d73da4e202446b0bb06a06286780d889 100644 (file)
--- a/pom.xml
+++ b/pom.xml
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.jmock</groupId>
-            <artifactId>jmock</artifactId>
-            <version>${jmock.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.jmock</groupId>
-            <artifactId>jmock-junit4</artifactId>
-            <version>${jmock.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.jmock</groupId>
-            <artifactId>jmock-legacy</artifactId>
-            <version>${jmock.version}</version>
-            <scope>test</scope>
+            <groupId>org.easymock</groupId>
+            <artifactId>easymock</artifactId>
+            <version>2.3</version>
         </dependency>
     </dependencies>
 
index 8ea3e58799e9c96d55a5e92222fda10b1d1d6745..ff37ccb9bfeb1e72aea95826c5fcf473f86b5a4a 100644 (file)
 
 package org.wamblee.observer;
 
+import static org.easymock.EasyMock.createControl;
+import static org.easymock.EasyMock.createMock;
+import static org.easymock.EasyMock.createStrictMock;
+import static org.easymock.EasyMock.replay;
+import static org.easymock.EasyMock.verify;
+
 import java.util.ArrayList;
 import java.util.List;
 
 import junit.framework.TestCase;
 
-import org.jmock.Expectations;
-import org.jmock.Mockery;
+import org.easymock.IMocksControl;
 
 /**
  * Test of the observer pattern implementation.
@@ -37,7 +42,6 @@ public class ObservableTest extends TestCase {
 
        private Integer _observed;
        private Observable<Integer, String> _observable;
-       private Mockery _context;
 
        /*
         * (non-Javadoc)
@@ -50,28 +54,24 @@ public class ObservableTest extends TestCase {
                _observed = new Integer(1);
                _observable = new Observable<Integer, String>(_observed,
                                new DefaultObserverNotifier());
-               _context = new Mockery();
-
        }
 
        /**
         * Tests subscription and notification of one subscriber.
         */
        public void testOneObserver() {
-               final Observer observer = _context.mock(Observer.class);
-               long subscription = _observable.subscribe(observer);
+               final Observer mockObserver = createStrictMock(Observer.class);
+               long subscription = _observable.subscribe(mockObserver);
 
                assertEquals(1, _observable.getObserverCount());
 
                final String message = "hallo";
-               _context.checking(new Expectations() {
-                       {
-                               one(observer).send(_observed, message);
-                       }
-               });
+               mockObserver.send(_observed, message);
+               replay(mockObserver);
 
                _observable.send(message);
-               _context.assertIsSatisfied();
+               verify(mockObserver);
+
                _observable.unsubscribe(subscription);
                assertEquals(0, _observable.getObserverCount());
 
@@ -88,9 +88,11 @@ public class ObservableTest extends TestCase {
                final int nsubscribers = SUBSCRIBER_COUNT;
                final Observer[] mocks = new Observer[nsubscribers];
 
+               IMocksControl control = createControl();
+
                List<Long> subscriptions = new ArrayList<Long>();
                for (int i = 0; i < nsubscribers; i++) {
-                       mocks[i] = _context.mock(Observer.class, "" + i);
+                       mocks[i] = control.createMock("mock" + i, Observer.class);
                        long subscription = _observable.subscribe(mocks[i]);
                        assertTrue(subscriptions.add(subscription));
                }
@@ -98,16 +100,14 @@ public class ObservableTest extends TestCase {
                assertEquals(nsubscribers, _observable.getObserverCount());
 
                final String message = "hallo";
-               _context.checking(new Expectations() {
-                       {
-                               for (int i = 0; i < nsubscribers; i++) {
-                                       one(mocks[i]).send(_observed, message);
-                               }
-                       }
-               });
+
+               for (int i = 0; i < nsubscribers; i++) {
+                       mocks[i].send(_observed, message);
+               }
+               control.replay();
 
                _observable.send(message);
-               _context.assertIsSatisfied();
+               control.verify();
 
                for (int i = nsubscribers / 2; i < nsubscribers; i++) {
                        _observable.unsubscribe(subscriptions.get(i));
@@ -115,16 +115,16 @@ public class ObservableTest extends TestCase {
                assertEquals(nsubscribers - (nsubscribers - nsubscribers / 2),
                                _observable.getObserverCount());
 
+               control.reset();
                final String message2 = "blabla";
-               _context.checking(new Expectations() {
-                       {
-                               for (int i = 0; i < nsubscribers / 2; i++) {
-                                       one(mocks[i]).send(_observed, message2);
-                               }
-                       }
-               });
+
+               for (int i = 0; i < nsubscribers / 2; i++) {
+                       mocks[i].send(_observed, message2);
+               }
+               control.replay();
+
                _observable.send(message2);
-               _context.assertIsSatisfied();
+               control.verify();
        }
 
        /**
@@ -133,7 +133,9 @@ public class ObservableTest extends TestCase {
         * 
         */
        public void testUnsubscribeWithWrongSubscription() {
-               Observer<Integer, String> observer = _context.mock(Observer.class);
+               Observer<Integer, String> observer = createMock(Observer.class);
+               replay(observer);
+               
                long subscription = _observable.subscribe(observer);
 
                assertEquals(1, _observable.getObserverCount());