X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=support%2Fgeneral%2Fsrc%2Ftest%2Fjava%2Forg%2Fwamblee%2Fobserver%2FObservableTest.java;h=e26571a40d57708975e963b2640fed05373abfd3;hb=81fe8784a2182e25f92a7591ec5b0fba00afb828;hp=ff37ccb9bfeb1e72aea95826c5fcf473f86b5a4a;hpb=dc05aae40ab88d4224d37f53c35d516107a3b031;p=utils diff --git a/support/general/src/test/java/org/wamblee/observer/ObservableTest.java b/support/general/src/test/java/org/wamblee/observer/ObservableTest.java index ff37ccb9..e26571a4 100644 --- a/support/general/src/test/java/org/wamblee/observer/ObservableTest.java +++ b/support/general/src/test/java/org/wamblee/observer/ObservableTest.java @@ -16,18 +16,14 @@ 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 _observable; + private Integer observed; + private Observable 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(_observed, + observed = new Integer(1); + observable = new Observable(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 subscriptions = new ArrayList(); 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 observer = createMock(Observer.class); - replay(observer); - - long subscription = _observable.subscribe(observer); + Observer 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 }