1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package net.grinder.console.synchronisation;
23
24 import static org.junit.Assert.assertEquals;
25 import static org.mockito.Mockito.mock;
26 import static org.mockito.Mockito.verify;
27 import static org.mockito.Mockito.verifyNoMoreInteractions;
28 import static org.mockito.Mockito.when;
29 import net.grinder.communication.Message;
30 import net.grinder.communication.MessageDispatchRegistry;
31 import net.grinder.console.communication.ConsoleCommunication;
32 import net.grinder.synchronisation.BarrierGroup;
33 import net.grinder.synchronisation.messages.BarrierIdentity;
34 import net.grinder.synchronisation.messages.OpenBarrierMessage;
35
36 import org.junit.Before;
37 import org.junit.Test;
38 import org.mockito.ArgumentCaptor;
39 import org.mockito.Captor;
40 import org.mockito.Mock;
41 import org.mockito.MockitoAnnotations;
42
43
44
45
46
47
48
49 public class TestConsoleBarrierGroups {
50
51 @Mock private MessageDispatchRegistry m_messageDispatchRegistry;
52 @Mock private ConsoleCommunication m_consoleCommunication;
53
54 @Captor private ArgumentCaptor<Message> m_messageCaptor;
55
56 @Before public void setUp() {
57 MockitoAnnotations.initMocks(this);
58
59 when(m_consoleCommunication.getMessageDispatchRegistry())
60 .thenReturn(m_messageDispatchRegistry);
61 }
62
63 @Test public void testConsoleBarrierGroups() throws Exception {
64
65 final ConsoleBarrierGroups barrierGroups =
66 new ConsoleBarrierGroups(m_consoleCommunication);
67
68 final BarrierGroup bg = barrierGroups.createBarrierGroup("foo");
69
70 bg.addBarrier();
71 verifyNoMoreInteractions(m_consoleCommunication);
72
73 bg.addWaiter(mock(BarrierIdentity.class));
74 verify(m_consoleCommunication).sendToAgents(m_messageCaptor.capture());
75
76 assertEquals("foo",
77 ((OpenBarrierMessage)m_messageCaptor.getValue()).getName());
78 }
79 }