Vorgaben in der Vorlage vereinfacht rest-producer--json--vorlage rest-producer--json--vorlage--2023-02-signal
authorKai Moritz <kai@juplo.de>
Mon, 30 Jan 2023 19:09:13 +0000 (20:09 +0100)
committerKai Moritz <kai@juplo.de>
Tue, 31 Jan 2023 16:40:51 +0000 (17:40 +0100)
src/main/java/de/juplo/kafka/RestProducer.java
src/test/java/de/juplo/kafka/ApplicationTests.java

index 90dd2ce..5139e63 100644 (file)
@@ -30,12 +30,20 @@ public class RestProducer
       @RequestHeader(name = "X-id", required = false) Long correlationId,
       @RequestBody Integer number)
   {
-    // TODO: Wenn anstatt der Zahl "number" #number Nachrichten versendet
-    // werden muss der Zähler der folgenden Hilfsklasse entsprechend von
-    // 1 auf number angepasst werden!
-    ResultRecorder result = new ResultRecorder(1);
+    // Der Service verschickt für eine Zahl n immer n+1 Nachrichten.
+    // Für n=3 z.B.:
+    // ADD:  { "number": 3, "next": 1 }
+    // ADD:  { "number": 3, "next": 2 }
+    // ADD:  { "number": 3, "next": 3 }
+    // CALC: { "number": 3 }
 
-    send(key, number, correlationId, result);
+    ResultRecorder result = new ResultRecorder(number+1);
+
+    for (int i = 1; i <= number; i++)
+    {
+      send(key, new AddNumberMessage(number, i), correlationId, result);
+    }
+    send(key, new CalculateSumMessage(number), correlationId, result);
 
     return result.getDeferredResult();
   }
index 5844761..b9c1e17 100644 (file)
@@ -62,7 +62,7 @@ public class ApplicationTests
                                .andExpect(status().isOk());
                await("Message was send")
                                .atMost(Duration.ofSeconds(5))
-                               .until(() -> consumer.received.size() == 1);
+                               .until(() -> consumer.received.size() == 667);
        }