updated coding rules.
[utils] / support / general / src / test / java / org / wamblee / observer / ObservableTest.java
index ff37ccb9bfeb1e72aea95826c5fcf473f86b5a4a..e26571a40d57708975e963b2640fed05373abfd3 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 static org.mockito.Mockito.*; 
 
 import java.util.ArrayList;
 import java.util.List;
 
-import junit.framework.TestCase;
+import org.mockito.InOrder;
 
-import org.easymock.IMocksControl;
+import junit.framework.TestCase;
 
 /**
  * Test of the observer pattern implementation.
@@ -40,8 +36,8 @@ public class ObservableTest extends TestCase {
 
        private static final String UPDATE = "send";
 
-       private Integer _observed;
-       private Observable<Integer, String> _observable;
+       private Integer observed;
+       private Observable<Integer, String> observable;
 
        /*
         * (non-Javadoc)
@@ -51,8 +47,8 @@ public class ObservableTest extends TestCase {
        @Override
        protected void setUp() throws Exception {
                super.setUp();
-               _observed = new Integer(1);
-               _observable = new Observable<Integer, String>(_observed,
+               observed = new Integer(1);
+               observable = new Observable<Integer, String>(observed,
                                new DefaultObserverNotifier());
        }
 
@@ -60,23 +56,24 @@ public class ObservableTest extends TestCase {
         * Tests subscription and notification of one subscriber.
         */
        public void testOneObserver() {
-               final Observer mockObserver = createStrictMock(Observer.class);
-               long subscription = _observable.subscribe(mockObserver);
+               final Observer mockObserver = mock(Observer.class);
+               InOrder order = inOrder(mockObserver);
+               
+               long subscription = observable.subscribe(mockObserver);
 
-               assertEquals(1, _observable.getObserverCount());
+               assertEquals(1, observable.getObserverCount());
 
                final String message = "hallo";
-               mockObserver.send(_observed, message);
-               replay(mockObserver);
-
-               _observable.send(message);
-               verify(mockObserver);
-
-               _observable.unsubscribe(subscription);
-               assertEquals(0, _observable.getObserverCount());
-
-               _observable.send(message);
+               observable.send(message);
+               
+               order.verify(mockObserver).send(observed, message);
+               verifyNoMoreInteractions(mockObserver);
+               
+               observable.unsubscribe(subscription);
+               assertEquals(0, observable.getObserverCount());
 
+               observable.send(message);
+               verifyNoMoreInteractions(mockObserver);
        }
 
        /**
@@ -87,44 +84,41 @@ public class ObservableTest extends TestCase {
        public void testManySubscribers() {
                final int nsubscribers = SUBSCRIBER_COUNT;
                final Observer[] mocks = new Observer[nsubscribers];
-
-               IMocksControl control = createControl();
+               final InOrder[] order = new InOrder[nsubscribers];
 
                List<Long> subscriptions = new ArrayList<Long>();
                for (int i = 0; i < nsubscribers; i++) {
-                       mocks[i] = control.createMock("mock" + i, Observer.class);
-                       long subscription = _observable.subscribe(mocks[i]);
+                       mocks[i] = mock(Observer.class);
+                       order[i] = inOrder(mocks[i]);
+                       long subscription = observable.subscribe(mocks[i]);
                        assertTrue(subscriptions.add(subscription));
                }
 
-               assertEquals(nsubscribers, _observable.getObserverCount());
+               assertEquals(nsubscribers, observable.getObserverCount());
 
                final String message = "hallo";
 
+               observable.send(message);
                for (int i = 0; i < nsubscribers; i++) {
-                       mocks[i].send(_observed, message);
+                       order[i].verify(mocks[i]).send(observed, message);
                }
-               control.replay();
-
-               _observable.send(message);
-               control.verify();
 
                for (int i = nsubscribers / 2; i < nsubscribers; i++) {
-                       _observable.unsubscribe(subscriptions.get(i));
+                       observable.unsubscribe(subscriptions.get(i));
                }
                assertEquals(nsubscribers - (nsubscribers - nsubscribers / 2),
-                               _observable.getObserverCount());
+                               observable.getObserverCount());
 
-               control.reset();
                final String message2 = "blabla";
 
+               observable.send(message2);
                for (int i = 0; i < nsubscribers / 2; i++) {
-                       mocks[i].send(_observed, message2);
-               }
-               control.replay();
-
-               _observable.send(message2);
-               control.verify();
+                       order[i].verify(mocks[i]).send(observed, message2);
+               }               
+               for (int i = nsubscribers/2; i < nsubscribers; i++) {
+                       verifyNoMoreInteractions(mocks[i]);
+               }               
+               
        }
 
        /**
@@ -133,15 +127,14 @@ public class ObservableTest extends TestCase {
         * 
         */
        public void testUnsubscribeWithWrongSubscription() {
-               Observer<Integer, String> observer = createMock(Observer.class);
-               replay(observer);
-               
-               long subscription = _observable.subscribe(observer);
+               Observer<Integer, String> observer = mock(Observer.class);
+       
+               long subscription = observable.subscribe(observer);
 
-               assertEquals(1, _observable.getObserverCount());
+               assertEquals(1, observable.getObserverCount());
 
                try {
-                       _observable.unsubscribe(subscription + 1);
+                       observable.unsubscribe(subscription + 1);
                } catch (IllegalArgumentException e) {
                        return; // ok
                }