WIP:refactor: Refined channel-states, introduced `ChannelState` -- ALIGN
[demos/kafka/chat] / src / test / java / de / juplo / kafka / chat / backend / TestListener.java
index b74b8e8..78d4c82 100644 (file)
@@ -17,18 +17,18 @@ import java.util.*;
 
 
 @Slf4j
-public class TestListener implements Runnable
+public class TestListener
 {
   static final ParameterizedTypeReference<ServerSentEvent<String>> SSE_TYPE = new ParameterizedTypeReference<>() {};
 
 
-  @Override
-  public void run()
+  public Flux<MessageTo> run()
   {
-    Flux
+    return Flux
         .fromArray(chatRooms)
         .flatMap(chatRoom ->
         {
+          log.info("Requesting messages from chat-room {}", chatRoom);
           List<MessageTo> list = new LinkedList<>();
           receivedMessages.put(chatRoom.getId(), list);
           return receiveMessages(chatRoom)
@@ -43,19 +43,8 @@ public class TestListener implements Runnable
                   return Mono.error(e);
                 }
               })
-              .doOnNext(message ->
-              {
-                list.add(message);
-                log.info(
-                    "Received a message from chat-room {}: {}",
-                    chatRoom,
-                    message);
-              })
-              .take(30);
-        })
-        .takeUntil(message -> !running)
-        .then()
-        .block();
+              .doOnNext(message -> list.add(message));
+        });
   }
 
   Flux<ServerSentEvent<String>> receiveMessages(ChatRoomInfoTo chatRoom)
@@ -77,8 +66,6 @@ public class TestListener implements Runnable
 
   final Map<UUID, List<MessageTo>> receivedMessages = new HashMap<>();
 
-  volatile boolean running = true;
-
 
   TestListener(Integer port, ChatRoomInfoTo[] chatRooms)
   {