]> juplo.de Git - demos/kafka/chat/commitdiff
WIP:refactor
authorKai Moritz <kai@juplo.de>
Tue, 24 Jan 2023 18:05:18 +0000 (19:05 +0100)
committerKai Moritz <kai@juplo.de>
Tue, 24 Jan 2023 18:05:18 +0000 (19:05 +0100)
src/main/java/de/juplo/kafka/chat/backend/domain/ChatRoom.java
src/main/java/de/juplo/kafka/chat/backend/domain/ChatRoomService.java
src/main/java/de/juplo/kafka/chat/backend/persistence/inmemory/InMemoryChatRoomService.java
src/test/java/de/juplo/kafka/chat/backend/api/ChatBackendControllerTest.java
src/test/java/de/juplo/kafka/chat/backend/domain/ChatRoomTest.java

index 4f855b8c4d3b1eed7430896f9c049e9acbee79fb..f5e3b06bafe0b4fa179dd43d658ded0485209e3f 100644 (file)
@@ -71,16 +71,16 @@ public class ChatRoom
             ? Mono.just(existing)
             : Mono.error(() -> new MessageMutationException(existing, text)))
         .switchIfEmpty(
-            Mono
-                .fromSupplier(() ->service.persistMessage(key, LocalDateTime.now(clock), text))
-                .doOnNext(m ->
+            service
+              .persistMessage(key, LocalDateTime.now(clock), text)
+              .doOnNext(m ->
+              {
+                Sinks.EmitResult result = sink.tryEmitNext(m);
+                if (result.isFailure())
                 {
-                  Sinks.EmitResult result = sink.tryEmitNext(m);
-                  if (result.isFailure())
-                  {
-                    log.warn("Emitting of message failed with {} for {}", result.name(), m);
-                  }
-                }));
+                  log.warn("Emitting of message failed with {} for {}", result.name(), m);
+                }
+              }));
   }
 
 
index c70ffe4e05f66fec184e1996a7a6419d47cae560..374a442b6ef08c53179cbcbd790010d4393104fc 100644 (file)
@@ -8,7 +8,7 @@ import java.time.LocalDateTime;
 
 public interface ChatRoomService
 {
-  Message persistMessage(
+  Mono<Message> persistMessage(
       Message.MessageKey key,
       LocalDateTime timestamp,
       String text);
index dc8dfe80e58f88ae8d2086558537542def3ad17b..1cca973e1e370582102e16a8ce014e7cce339599 100644 (file)
@@ -24,14 +24,14 @@ public class InMemoryChatRoomService implements ChatRoomService
   }
 
   @Override
-  public Message persistMessage(
+  public Mono<Message> persistMessage(
       Message.MessageKey key,
       LocalDateTime timestamp,
       String text)
   {
     Message message = new Message(key, (long)messages.size(), timestamp, text);
     messages.put(message.getKey(), message);
-    return message;
+    return Mono.just(message);
   }
 
   @Override
index 1b25a11eb7874581a0501a0aaaead48c98eb4804..af23529762fe54fb4e3428dcc6677f90bc50e58c 100644 (file)
@@ -183,7 +183,7 @@ public class ChatBackendControllerTest
         .thenReturn(Mono.just(existingMessage));
     // Needed for readable error-reports, in case of a bug that leads to according unwanted call
     when(chatRoomService.persistMessage(any(Message.MessageKey.class), any(LocalDateTime.class), any(String.class)))
-        .thenReturn(mock(Message.class));
+        .thenReturn(mock(Mono.class));
 
     // When
     client
@@ -231,7 +231,7 @@ public class ChatBackendControllerTest
         .thenReturn(Mono.empty());
     // Needed for readable error-reports, in case of a bug that leads to according unwanted call
     when(chatRoomService.persistMessage(any(Message.MessageKey.class), any(LocalDateTime.class), any(String.class)))
-        .thenReturn(mock(Message.class));
+        .thenReturn(mock(Mono.class));
 
     // When
     client
index 9c418f17474ef5c303210b5aab0c3b9bbce4b8f2..822ffe77efbb493fb675f6189bc37fd4643826bd 100644 (file)
@@ -88,7 +88,7 @@ public class ChatRoomTest
     String messageText = "Bar";
     Message message = new Message(key, 0l, timestamp, messageText);
     when(chatRoomService.getMessage(any(Message.MessageKey.class))).thenReturn(Mono.empty());
-    when(chatRoomService.persistMessage(any(Message.MessageKey.class), any(LocalDateTime.class), any(String.class))).thenReturn(message);
+    when(chatRoomService.persistMessage(any(Message.MessageKey.class), any(LocalDateTime.class), any(String.class))).thenReturn(Mono.just(message));
 
     // When
     Mono<Message> mono = chatRoom.addMessage(messageId, user, messageText);
@@ -118,7 +118,7 @@ public class ChatRoomTest
     String messageText = "Bar";
     Message message = new Message(key, 0l, timestamp, messageText);
     when(chatRoomService.getMessage(any(Message.MessageKey.class))).thenReturn(Mono.just(message));
-    when(chatRoomService.persistMessage(any(Message.MessageKey.class), any(LocalDateTime.class), any(String.class))).thenReturn(message);
+    when(chatRoomService.persistMessage(any(Message.MessageKey.class), any(LocalDateTime.class), any(String.class))).thenReturn(Mono.just(message));
 
     // When
     Mono<Message> mono = chatRoom.addMessage(messageId, user, messageText);
@@ -149,7 +149,7 @@ public class ChatRoomTest
     String mutatedText = "Boom!";
     Message message = new Message(key, 0l, timestamp, messageText);
     when(chatRoomService.getMessage(any(Message.MessageKey.class))).thenReturn(Mono.just(message));
-    when(chatRoomService.persistMessage(any(Message.MessageKey.class), any(LocalDateTime.class), any(String.class))).thenReturn(message);
+    when(chatRoomService.persistMessage(any(Message.MessageKey.class), any(LocalDateTime.class), any(String.class))).thenReturn(Mono.just(message));
 
     // When
     Mono<Message> mono = chatRoom.addMessage(messageId, user, mutatedText);