diff --git a/spring-5-webflux-2/src/main/java/com/baeldung/webflux/zipwhen/service/DatabaseService.java b/spring-5-webflux-2/src/main/java/com/baeldung/webflux/zipwhen/service/DatabaseService.java index b7e7a1aa50..d420646871 100644 --- a/spring-5-webflux-2/src/main/java/com/baeldung/webflux/zipwhen/service/DatabaseService.java +++ b/spring-5-webflux-2/src/main/java/com/baeldung/webflux/zipwhen/service/DatabaseService.java @@ -10,26 +10,13 @@ import reactor.core.publisher.Mono; public class DatabaseService { private Map dataStore = new ConcurrentHashMap<>(); - // public Mono saveUserData(User user) { - // - // - // return Mono.fromRunnable(() -> { - // // Simulate saving the user data to a database or data store - // dataStore.put(user.getId(), user); - // - // - // }); - // } - //} - public Mono saveUserData(User user) { return Mono.create(sink -> { - // Simulate saving the user data to a database or data store try { dataStore.put(user.getId(), user); - sink.success(true); // Database save operation successful + sink.success(true); } catch (Exception e) { - sink.success(false); // Database save operation failed + sink.success(false); } }); } diff --git a/spring-5-webflux-2/src/main/java/com/baeldung/webflux/zipwhen/service/EmailService.java b/spring-5-webflux-2/src/main/java/com/baeldung/webflux/zipwhen/service/EmailService.java index 7c33466f24..9c0340b7ee 100644 --- a/spring-5-webflux-2/src/main/java/com/baeldung/webflux/zipwhen/service/EmailService.java +++ b/spring-5-webflux-2/src/main/java/com/baeldung/webflux/zipwhen/service/EmailService.java @@ -2,14 +2,6 @@ package com.baeldung.webflux.zipwhen.service; import reactor.core.publisher.Mono; -//public class EmailService { -// public Mono sendEmail(String userId) { -// //code to send the email -// return Mono.just(true); -// } -//} - - public class EmailService { private final UserService userService; @@ -20,7 +12,6 @@ public class EmailService { public Mono sendEmail(String userId) { return userService.getUser(userId) .flatMap(user -> { - // Code to send the email using the user's information System.out.println("Sending email to: " + user.getEmail()); return Mono.just(true); }) diff --git a/spring-5-webflux-2/src/main/java/com/baeldung/webflux/zipwhen/service/UserService.java b/spring-5-webflux-2/src/main/java/com/baeldung/webflux/zipwhen/service/UserService.java index 4d5a6448d5..fe602fbc33 100644 --- a/spring-5-webflux-2/src/main/java/com/baeldung/webflux/zipwhen/service/UserService.java +++ b/spring-5-webflux-2/src/main/java/com/baeldung/webflux/zipwhen/service/UserService.java @@ -6,10 +6,7 @@ import reactor.core.publisher.Mono; public class UserService { public Mono getUser(String userId) { - // Replace with your implementation to validate the user - // and return a Mono with the validated user data - // For example: - return Mono.just(new User(userId, "John Doe")); + return Mono.just(new User(userId, "john Major")); } } diff --git a/spring-5-webflux-2/src/main/java/com/baeldung/webflux/zipwhen/web/UserController.java b/spring-5-webflux-2/src/main/java/com/baeldung/webflux/zipwhen/web/UserController.java index a08f364d90..dbd89c45d3 100644 --- a/spring-5-webflux-2/src/main/java/com/baeldung/webflux/zipwhen/web/UserController.java +++ b/spring-5-webflux-2/src/main/java/com/baeldung/webflux/zipwhen/web/UserController.java @@ -14,16 +14,15 @@ import reactor.core.scheduler.Schedulers; import reactor.util.function.Tuples; public class UserController { - private final UserService userService; - private final EmailService emailService; - private final DatabaseService databaseService; - public UserController(UserService userService, - EmailService emailService, - DatabaseService databaseService) { - this.userService = userService; - this.emailService = emailService; - this.databaseService = databaseService; - } + private final UserService userService; + private final EmailService emailService; + private final DatabaseService databaseService; + + public UserController(UserService userService, EmailService emailService, DatabaseService databaseService) { + this.userService = userService; + this.emailService = emailService; + this.databaseService = databaseService; + } @GetMapping("/example/{userId}") public Mono> combineAllDataFor(@PathVariable String userId) { diff --git a/spring-5-webflux-2/src/test/java/com/baeldung/webflux/zipwhen/UserControllerTest.java b/spring-5-webflux-2/src/test/java/com/baeldung/webflux/zipwhen/UserControllerTest.java index 69b14f3172..1d86d5ce99 100644 --- a/spring-5-webflux-2/src/test/java/com/baeldung/webflux/zipwhen/UserControllerTest.java +++ b/spring-5-webflux-2/src/test/java/com/baeldung/webflux/zipwhen/UserControllerTest.java @@ -24,19 +24,20 @@ public class UserControllerTest { String userId = "123"; User user = new User(userId, "John Doe"); - Mockito.when(userService.getUser(userId)).thenReturn(Mono.just(user)); - Mockito.when(emailService.sendEmail(userId)).thenReturn(Mono.just(true)); - Mockito.when(databaseService.saveUserData(user)).thenReturn(Mono.just(true)); + Mockito.when(userService.getUser(userId)) + .thenReturn(Mono.just(user)); + Mockito.when(emailService.sendEmail(userId)) + .thenReturn(Mono.just(true)); + Mockito.when(databaseService.saveUserData(user)) + .thenReturn(Mono.just(true)); UserController userController = new UserController(userService, emailService, databaseService); Mono> responseMono = userController.combineAllDataFor(userId); StepVerifier.create(responseMono) - .expectNextMatches(responseEntity -> - responseEntity.getStatusCode() == HttpStatus.OK && - responseEntity.getBody().equals("Response: " + user + ", Email Sent: true, Database Result: " + true) - ) + .expectNextMatches(responseEntity -> responseEntity.getStatusCode() == HttpStatus.OK && responseEntity.getBody() + .equals("Response: " + user + ", Email Sent: true, Database Result: " + true)) .verifyComplete(); } }