22
22
import java .util .concurrent .CopyOnWriteArrayList ;
23
23
import java .util .concurrent .CountDownLatch ;
24
24
import java .util .concurrent .LinkedBlockingQueue ;
25
+ import java .util .concurrent .atomic .AtomicInteger ;
25
26
26
27
import javax .websocket .ClientEndpoint ;
27
28
import javax .websocket .CloseReason ;
@@ -144,6 +145,7 @@ public void onMessage(ByteBuffer message) {
144
145
public static class BasicText extends BasicHandler <String > {
145
146
146
147
private final String expected ;
148
+ private final AtomicInteger messageCount ;
147
149
148
150
public BasicText (CountDownLatch latch ) {
149
151
this (latch , null );
@@ -152,6 +154,11 @@ public BasicText(CountDownLatch latch) {
152
154
public BasicText (CountDownLatch latch , String expected ) {
153
155
super (latch );
154
156
this .expected = expected ;
157
+ if (expected == null ) {
158
+ messageCount = null ;
159
+ } else {
160
+ messageCount = new AtomicInteger (0 );
161
+ }
155
162
}
156
163
157
164
@ Override
@@ -162,11 +169,20 @@ public void onMessage(String message) {
162
169
if (!expected .equals (message )) {
163
170
throw new IllegalStateException ("Expected: [" + expected + "]\r \n " + "Was: [" + message + "]" );
164
171
}
172
+ messageCount .incrementAndGet ();
165
173
}
166
174
if (getLatch () != null ) {
167
175
getLatch ().countDown ();
168
176
}
169
177
}
178
+
179
+ public int getMessageCount () {
180
+ if (expected == null ) {
181
+ return getMessages ().size ();
182
+ } else {
183
+ return messageCount .get ();
184
+ }
185
+ }
170
186
}
171
187
172
188
public static class SleepingText implements MessageHandler .Whole <String > {
0 commit comments