From 156190722836432763be2a78c8f18895cef24799 Mon Sep 17 00:00:00 2001 From: "J.vanderSluis" <J.vanderSluis@student.han.nl> Date: Thu, 11 May 2023 09:38:58 +0200 Subject: [PATCH 1/9] Added UserController, UserService, UserConfiguration and interfaces now in separate packages --- .../controllers/PeerController.java | 17 +++++++------- .../controllers/UserController.java | 22 +++++++++++++++++++ .../data/MasterConfiguration.java | 1 + .../data/UserConfiguration.java | 12 ++++++++++ .../IMasterConfiguration.java | 2 +- .../data/interfaces/IUserConfiguration.java | 5 +++++ .../aim/asd/bootstrapserver/dto/LoginDto.java | 4 ++++ .../{RequestDto.java => RequestPeerDto.java} | 4 ++-- .../services/MasterService.java | 4 ++-- .../bootstrapserver/services/UserService.java | 19 ++++++++++++++++ .../{ => interfaces}/IMasterService.java | 2 +- .../services/interfaces/IUserService.java | 7 ++++++ .../bootstrapserver/MasterServiceTest.java | 4 ++-- .../bootstrapserver/PeerControllerTest.java | 13 +++++------ 14 files changed, 92 insertions(+), 24 deletions(-) create mode 100644 src/main/java/nl/han/aim/asd/bootstrapserver/controllers/UserController.java create mode 100644 src/main/java/nl/han/aim/asd/bootstrapserver/data/UserConfiguration.java rename src/main/java/nl/han/aim/asd/bootstrapserver/data/{ => interfaces}/IMasterConfiguration.java (75%) create mode 100644 src/main/java/nl/han/aim/asd/bootstrapserver/data/interfaces/IUserConfiguration.java create mode 100644 src/main/java/nl/han/aim/asd/bootstrapserver/dto/LoginDto.java rename src/main/java/nl/han/aim/asd/bootstrapserver/dto/{RequestDto.java => RequestPeerDto.java} (87%) create mode 100644 src/main/java/nl/han/aim/asd/bootstrapserver/services/UserService.java rename src/main/java/nl/han/aim/asd/bootstrapserver/services/{ => interfaces}/IMasterService.java (81%) create mode 100644 src/main/java/nl/han/aim/asd/bootstrapserver/services/interfaces/IUserService.java diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/controllers/PeerController.java b/src/main/java/nl/han/aim/asd/bootstrapserver/controllers/PeerController.java index c7d0c69..c49e591 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/controllers/PeerController.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/controllers/PeerController.java @@ -1,9 +1,8 @@ package nl.han.aim.asd.bootstrapserver.controllers; -import nl.han.aim.asd.bootstrapserver.dto.RequestDto; +import nl.han.aim.asd.bootstrapserver.dto.RequestPeerDto; import nl.han.aim.asd.bootstrapserver.entity.Peer; -import nl.han.aim.asd.bootstrapserver.services.IMasterService; -import org.springframework.beans.factory.annotation.Autowired; +import nl.han.aim.asd.bootstrapserver.services.interfaces.IMasterService; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -20,23 +19,23 @@ public class PeerController { /** * The end point where a client can get the ip and port of the master peer - * @param requestDto an object with the ip, port, email and password of the client + * @param requestPeerDto an object with the ip, port, email and password of the client * @return an ip and port number of the master peer */ @PostMapping("/joinNetwork") - public ResponseEntity<Peer> joinNetwork(@RequestBody RequestDto requestDto) { - Peer peer = new Peer(requestDto.getIp(), requestDto.getPort()); + public ResponseEntity<Peer> joinNetwork(@RequestBody RequestPeerDto requestPeerDto) { + Peer peer = new Peer(requestPeerDto.getIp(), requestPeerDto.getPort()); return masterService.returnMasterIp(peer); } /** * The end point where a client can update the master to a new peer - * @param requestDto an object with the ip, port, email and password of the client + * @param requestPeerDto an object with the ip, port, email and password of the client * @return a 200 status code. */ @PostMapping("/updateMaster") - public ResponseEntity<String> updateMaster(@RequestBody RequestDto requestDto){ - Peer peer = new Peer(requestDto.getIp(), requestDto.getPort()); + public ResponseEntity<String> updateMaster(@RequestBody RequestPeerDto requestPeerDto){ + Peer peer = new Peer(requestPeerDto.getIp(), requestPeerDto.getPort()); return masterService.updateMaster(peer); } diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/controllers/UserController.java b/src/main/java/nl/han/aim/asd/bootstrapserver/controllers/UserController.java new file mode 100644 index 0000000..c646c8d --- /dev/null +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/controllers/UserController.java @@ -0,0 +1,22 @@ +package nl.han.aim.asd.bootstrapserver.controllers; + +import nl.han.aim.asd.bootstrapserver.dto.LoginDto; +import nl.han.aim.asd.bootstrapserver.services.interfaces.IUserService; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class UserController { + + private final IUserService userService; + + public UserController(IUserService userService) { + this.userService = userService; + } + + @PostMapping("/login") + public boolean login(@RequestBody LoginDto loginDto) { + return userService.login(loginDto.username(), loginDto.password()); + } +} diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/data/MasterConfiguration.java b/src/main/java/nl/han/aim/asd/bootstrapserver/data/MasterConfiguration.java index e983733..074f731 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/data/MasterConfiguration.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/data/MasterConfiguration.java @@ -1,5 +1,6 @@ package nl.han.aim.asd.bootstrapserver.data; +import nl.han.aim.asd.bootstrapserver.data.interfaces.IMasterConfiguration; import nl.han.aim.asd.bootstrapserver.entity.Peer; import org.springframework.stereotype.Service; diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/data/UserConfiguration.java b/src/main/java/nl/han/aim/asd/bootstrapserver/data/UserConfiguration.java new file mode 100644 index 0000000..112cbf4 --- /dev/null +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/data/UserConfiguration.java @@ -0,0 +1,12 @@ +package nl.han.aim.asd.bootstrapserver.data; + +import nl.han.aim.asd.bootstrapserver.data.interfaces.IUserConfiguration; +import org.springframework.stereotype.Service; + +@Service +public class UserConfiguration implements IUserConfiguration { + @Override + public boolean login(String username, String password) { + return false; + } +} diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/data/IMasterConfiguration.java b/src/main/java/nl/han/aim/asd/bootstrapserver/data/interfaces/IMasterConfiguration.java similarity index 75% rename from src/main/java/nl/han/aim/asd/bootstrapserver/data/IMasterConfiguration.java rename to src/main/java/nl/han/aim/asd/bootstrapserver/data/interfaces/IMasterConfiguration.java index 6776677..a8f3417 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/data/IMasterConfiguration.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/data/interfaces/IMasterConfiguration.java @@ -1,4 +1,4 @@ -package nl.han.aim.asd.bootstrapserver.data; +package nl.han.aim.asd.bootstrapserver.data.interfaces; import nl.han.aim.asd.bootstrapserver.entity.Peer; diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/data/interfaces/IUserConfiguration.java b/src/main/java/nl/han/aim/asd/bootstrapserver/data/interfaces/IUserConfiguration.java new file mode 100644 index 0000000..3383fdf --- /dev/null +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/data/interfaces/IUserConfiguration.java @@ -0,0 +1,5 @@ +package nl.han.aim.asd.bootstrapserver.data.interfaces; + +public interface IUserConfiguration { + boolean login(String username, String password); +} diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/dto/LoginDto.java b/src/main/java/nl/han/aim/asd/bootstrapserver/dto/LoginDto.java new file mode 100644 index 0000000..ce0165c --- /dev/null +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/dto/LoginDto.java @@ -0,0 +1,4 @@ +package nl.han.aim.asd.bootstrapserver.dto; + +public record LoginDto(String username, String password) { +} diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/dto/RequestDto.java b/src/main/java/nl/han/aim/asd/bootstrapserver/dto/RequestPeerDto.java similarity index 87% rename from src/main/java/nl/han/aim/asd/bootstrapserver/dto/RequestDto.java rename to src/main/java/nl/han/aim/asd/bootstrapserver/dto/RequestPeerDto.java index 71688fa..1f05765 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/dto/RequestDto.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/dto/RequestPeerDto.java @@ -1,12 +1,12 @@ package nl.han.aim.asd.bootstrapserver.dto; -public class RequestDto { +public class RequestPeerDto { String ip; int port; String email; String password; - public RequestDto(String ip, int port, String email, String password) { + public RequestPeerDto(String ip, int port, String email, String password) { this.ip = ip; this.port = port; this.email = email; diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/services/MasterService.java b/src/main/java/nl/han/aim/asd/bootstrapserver/services/MasterService.java index 7a480d0..e563fa8 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/services/MasterService.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/services/MasterService.java @@ -1,8 +1,8 @@ package nl.han.aim.asd.bootstrapserver.services; -import nl.han.aim.asd.bootstrapserver.data.IMasterConfiguration; +import nl.han.aim.asd.bootstrapserver.data.interfaces.IMasterConfiguration; import nl.han.aim.asd.bootstrapserver.entity.Peer; -import org.springframework.beans.factory.annotation.Autowired; +import nl.han.aim.asd.bootstrapserver.services.interfaces.IMasterService; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/services/UserService.java b/src/main/java/nl/han/aim/asd/bootstrapserver/services/UserService.java new file mode 100644 index 0000000..93d0920 --- /dev/null +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/services/UserService.java @@ -0,0 +1,19 @@ +package nl.han.aim.asd.bootstrapserver.services; + +import nl.han.aim.asd.bootstrapserver.data.interfaces.IUserConfiguration; +import nl.han.aim.asd.bootstrapserver.services.interfaces.IUserService; +import org.springframework.stereotype.Service; + +@Service +public class UserService implements IUserService { + private final IUserConfiguration userConfiguration; + + public UserService(IUserConfiguration userConfiguration) { + this.userConfiguration = userConfiguration; + } + + @Override + public boolean login(String username, String password) { + return false; + } +} diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/services/IMasterService.java b/src/main/java/nl/han/aim/asd/bootstrapserver/services/interfaces/IMasterService.java similarity index 81% rename from src/main/java/nl/han/aim/asd/bootstrapserver/services/IMasterService.java rename to src/main/java/nl/han/aim/asd/bootstrapserver/services/interfaces/IMasterService.java index 4c045ee..80ddcf3 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/services/IMasterService.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/services/interfaces/IMasterService.java @@ -1,4 +1,4 @@ -package nl.han.aim.asd.bootstrapserver.services; +package nl.han.aim.asd.bootstrapserver.services.interfaces; import nl.han.aim.asd.bootstrapserver.entity.Peer; import org.springframework.http.ResponseEntity; diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/services/interfaces/IUserService.java b/src/main/java/nl/han/aim/asd/bootstrapserver/services/interfaces/IUserService.java new file mode 100644 index 0000000..b60f71c --- /dev/null +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/services/interfaces/IUserService.java @@ -0,0 +1,7 @@ +package nl.han.aim.asd.bootstrapserver.services.interfaces; + +public interface IUserService { + + boolean login(String username, String password); + +} diff --git a/src/test/java/nl/han/aim/asd/bootstrapserver/MasterServiceTest.java b/src/test/java/nl/han/aim/asd/bootstrapserver/MasterServiceTest.java index c9ef573..d860d58 100644 --- a/src/test/java/nl/han/aim/asd/bootstrapserver/MasterServiceTest.java +++ b/src/test/java/nl/han/aim/asd/bootstrapserver/MasterServiceTest.java @@ -3,10 +3,10 @@ package nl.han.aim.asd.bootstrapserver; import static org.junit.jupiter.api.Assertions.*; import static org.mockito.Mockito.*; -import nl.han.aim.asd.bootstrapserver.data.IMasterConfiguration; +import nl.han.aim.asd.bootstrapserver.data.interfaces.IMasterConfiguration; import nl.han.aim.asd.bootstrapserver.data.MasterConfiguration; import nl.han.aim.asd.bootstrapserver.entity.Peer; -import nl.han.aim.asd.bootstrapserver.services.IMasterService; +import nl.han.aim.asd.bootstrapserver.services.interfaces.IMasterService; import nl.han.aim.asd.bootstrapserver.services.MasterService; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/src/test/java/nl/han/aim/asd/bootstrapserver/PeerControllerTest.java b/src/test/java/nl/han/aim/asd/bootstrapserver/PeerControllerTest.java index ce89c1a..8b20485 100644 --- a/src/test/java/nl/han/aim/asd/bootstrapserver/PeerControllerTest.java +++ b/src/test/java/nl/han/aim/asd/bootstrapserver/PeerControllerTest.java @@ -1,10 +1,9 @@ package nl.han.aim.asd.bootstrapserver; import nl.han.aim.asd.bootstrapserver.controllers.PeerController; -import nl.han.aim.asd.bootstrapserver.data.IMasterConfiguration; -import nl.han.aim.asd.bootstrapserver.dto.RequestDto; +import nl.han.aim.asd.bootstrapserver.dto.RequestPeerDto; import nl.han.aim.asd.bootstrapserver.entity.Peer; -import nl.han.aim.asd.bootstrapserver.services.IMasterService; +import nl.han.aim.asd.bootstrapserver.services.interfaces.IMasterService; import nl.han.aim.asd.bootstrapserver.services.MasterService; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -16,13 +15,13 @@ import static org.mockito.Mockito.*; public class PeerControllerTest { PeerController sut; IMasterService masterService; - RequestDto requestDto; + RequestPeerDto requestPeerDto; @BeforeEach public void setup(){ masterService = Mockito.mock(MasterService.class); sut = new PeerController(masterService); - requestDto = new RequestDto("100.0.0.1", 8080, "email", "password"); + requestPeerDto = new RequestPeerDto("100.0.0.1", 8080, "email", "password"); } @Test @@ -30,7 +29,7 @@ public class PeerControllerTest { //arrange //act - sut.joinNetwork(requestDto); + sut.joinNetwork(requestPeerDto); //assert verify(masterService).returnMasterIp(any(Peer.class)); } @@ -39,7 +38,7 @@ public class PeerControllerTest { //arrange //act - sut.updateMaster(requestDto); + sut.updateMaster(requestPeerDto); //assert verify(masterService).updateMaster(any(Peer.class)); } -- GitLab From 47a6eb2ed9a73fca23b77e4761481518a5380009 Mon Sep 17 00:00:00 2001 From: "J.vanderSluis" <J.vanderSluis@student.han.nl> Date: Thu, 11 May 2023 09:48:12 +0200 Subject: [PATCH 2/9] added comments --- .../aim/asd/bootstrapserver/controllers/UserController.java | 5 +++++ .../han/aim/asd/bootstrapserver/data/UserConfiguration.java | 1 + .../bootstrapserver/data/interfaces/IUserConfiguration.java | 6 ++++++ .../han/aim/asd/bootstrapserver/services/UserService.java | 2 +- .../bootstrapserver/services/interfaces/IUserService.java | 6 ++++++ 5 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/controllers/UserController.java b/src/main/java/nl/han/aim/asd/bootstrapserver/controllers/UserController.java index c646c8d..05739f3 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/controllers/UserController.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/controllers/UserController.java @@ -15,6 +15,11 @@ public class UserController { this.userService = userService; } + /** + * The endpoint where the client makes a login request + * @param loginDto a username and password is provided + * @return true when the login was successful otherwise false + */ @PostMapping("/login") public boolean login(@RequestBody LoginDto loginDto) { return userService.login(loginDto.username(), loginDto.password()); diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/data/UserConfiguration.java b/src/main/java/nl/han/aim/asd/bootstrapserver/data/UserConfiguration.java index 112cbf4..0fd814a 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/data/UserConfiguration.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/data/UserConfiguration.java @@ -5,6 +5,7 @@ import org.springframework.stereotype.Service; @Service public class UserConfiguration implements IUserConfiguration { + @Override public boolean login(String username, String password) { return false; diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/data/interfaces/IUserConfiguration.java b/src/main/java/nl/han/aim/asd/bootstrapserver/data/interfaces/IUserConfiguration.java index 3383fdf..09bf84e 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/data/interfaces/IUserConfiguration.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/data/interfaces/IUserConfiguration.java @@ -1,5 +1,11 @@ package nl.han.aim.asd.bootstrapserver.data.interfaces; public interface IUserConfiguration { + /** + * Makes a login request to the database + * @param username the username of the client + * @param password the password of the client + * @return true when the login was successful otherwise false + */ boolean login(String username, String password); } diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/services/UserService.java b/src/main/java/nl/han/aim/asd/bootstrapserver/services/UserService.java index 93d0920..b55cf7e 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/services/UserService.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/services/UserService.java @@ -14,6 +14,6 @@ public class UserService implements IUserService { @Override public boolean login(String username, String password) { - return false; + return userConfiguration.login(username, password); } } diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/services/interfaces/IUserService.java b/src/main/java/nl/han/aim/asd/bootstrapserver/services/interfaces/IUserService.java index b60f71c..b97e51d 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/services/interfaces/IUserService.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/services/interfaces/IUserService.java @@ -2,6 +2,12 @@ package nl.han.aim.asd.bootstrapserver.services.interfaces; public interface IUserService { + /** + * Login request for the service + * @param username the username of the client + * @param password the password of the client + * @return true when the login was successful otherwise false + */ boolean login(String username, String password); } -- GitLab From 4eb15e3aed146c881318ad86c987c03473ab5c0f Mon Sep 17 00:00:00 2001 From: "J.vanderSluis" <J.vanderSluis@student.han.nl> Date: Thu, 11 May 2023 10:03:56 +0200 Subject: [PATCH 3/9] added registration endpoint and service --- .../bootstrapserver/controllers/UserController.java | 11 +++++++++++ .../asd/bootstrapserver/data/UserConfiguration.java | 5 +++++ .../data/interfaces/IUserConfiguration.java | 9 +++++++++ .../aim/asd/bootstrapserver/dto/RegistrationDto.java | 4 ++++ .../aim/asd/bootstrapserver/services/UserService.java | 5 +++++ .../services/interfaces/IUserService.java | 8 ++++++++ 6 files changed, 42 insertions(+) create mode 100644 src/main/java/nl/han/aim/asd/bootstrapserver/dto/RegistrationDto.java diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/controllers/UserController.java b/src/main/java/nl/han/aim/asd/bootstrapserver/controllers/UserController.java index 05739f3..e454b36 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/controllers/UserController.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/controllers/UserController.java @@ -1,6 +1,7 @@ package nl.han.aim.asd.bootstrapserver.controllers; import nl.han.aim.asd.bootstrapserver.dto.LoginDto; +import nl.han.aim.asd.bootstrapserver.dto.RegistrationDto; import nl.han.aim.asd.bootstrapserver.services.interfaces.IUserService; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -24,4 +25,14 @@ public class UserController { public boolean login(@RequestBody LoginDto loginDto) { return userService.login(loginDto.username(), loginDto.password()); } + + /** + * The endpoint where the client makes a registration request + * @param registrationDto a username, email and password + * @return true when the registration is completed successfully otherwise return false + */ + @PostMapping("/registration") + public boolean registration(@RequestBody RegistrationDto registrationDto) { + return userService.registration(registrationDto.username(), registrationDto.email(), registrationDto.password()); + } } diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/data/UserConfiguration.java b/src/main/java/nl/han/aim/asd/bootstrapserver/data/UserConfiguration.java index 0fd814a..a0ac6ab 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/data/UserConfiguration.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/data/UserConfiguration.java @@ -10,4 +10,9 @@ public class UserConfiguration implements IUserConfiguration { public boolean login(String username, String password) { return false; } + + @Override + public boolean registration(String username, String email, String password) { + return false; + } } diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/data/interfaces/IUserConfiguration.java b/src/main/java/nl/han/aim/asd/bootstrapserver/data/interfaces/IUserConfiguration.java index 09bf84e..d607641 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/data/interfaces/IUserConfiguration.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/data/interfaces/IUserConfiguration.java @@ -8,4 +8,13 @@ public interface IUserConfiguration { * @return true when the login was successful otherwise false */ boolean login(String username, String password); + + /** + * Makes a registration request to the database + * @param username the username of the client + * @param email the unique email address of the client + * @param password the password of the client + * @return true when the registration was completed successfully otherwise return false + */ + boolean registration(String username, String email, String password); } diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/dto/RegistrationDto.java b/src/main/java/nl/han/aim/asd/bootstrapserver/dto/RegistrationDto.java new file mode 100644 index 0000000..3fcada7 --- /dev/null +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/dto/RegistrationDto.java @@ -0,0 +1,4 @@ +package nl.han.aim.asd.bootstrapserver.dto; + +public record RegistrationDto(String username, String email, String password) { +} diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/services/UserService.java b/src/main/java/nl/han/aim/asd/bootstrapserver/services/UserService.java index b55cf7e..09ad614 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/services/UserService.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/services/UserService.java @@ -16,4 +16,9 @@ public class UserService implements IUserService { public boolean login(String username, String password) { return userConfiguration.login(username, password); } + + @Override + public boolean registration(String username, String email, String password) { + return userConfiguration.registration(username, email, password); + } } diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/services/interfaces/IUserService.java b/src/main/java/nl/han/aim/asd/bootstrapserver/services/interfaces/IUserService.java index b97e51d..69bc883 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/services/interfaces/IUserService.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/services/interfaces/IUserService.java @@ -10,4 +10,12 @@ public interface IUserService { */ boolean login(String username, String password); + /** + * Registration request for the service + * @param username the username of the client + * @param email the unique email address of the client + * @param password the password of the client + * @return true when the registration was completed successfully otherwise return false + */ + boolean registration(String username, String email, String password); } -- GitLab From 08b4bc277977802e01721cb15d4283203434afff Mon Sep 17 00:00:00 2001 From: "J.vanderSluis" <J.vanderSluis@student.han.nl> Date: Thu, 11 May 2023 10:07:58 +0200 Subject: [PATCH 4/9] renamed username to email --- .../aim/asd/bootstrapserver/controllers/UserController.java | 4 ++-- .../bootstrapserver/data/interfaces/IUserConfiguration.java | 4 ++-- .../java/nl/han/aim/asd/bootstrapserver/dto/LoginDto.java | 2 +- .../nl/han/aim/asd/bootstrapserver/services/UserService.java | 4 ++-- .../asd/bootstrapserver/services/interfaces/IUserService.java | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/controllers/UserController.java b/src/main/java/nl/han/aim/asd/bootstrapserver/controllers/UserController.java index 05739f3..3767234 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/controllers/UserController.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/controllers/UserController.java @@ -17,11 +17,11 @@ public class UserController { /** * The endpoint where the client makes a login request - * @param loginDto a username and password is provided + * @param loginDto a email and password is provided * @return true when the login was successful otherwise false */ @PostMapping("/login") public boolean login(@RequestBody LoginDto loginDto) { - return userService.login(loginDto.username(), loginDto.password()); + return userService.login(loginDto.email(), loginDto.password()); } } diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/data/interfaces/IUserConfiguration.java b/src/main/java/nl/han/aim/asd/bootstrapserver/data/interfaces/IUserConfiguration.java index 09bf84e..1f49bbd 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/data/interfaces/IUserConfiguration.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/data/interfaces/IUserConfiguration.java @@ -3,9 +3,9 @@ package nl.han.aim.asd.bootstrapserver.data.interfaces; public interface IUserConfiguration { /** * Makes a login request to the database - * @param username the username of the client + * @param email the email of the client * @param password the password of the client * @return true when the login was successful otherwise false */ - boolean login(String username, String password); + boolean login(String email, String password); } diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/dto/LoginDto.java b/src/main/java/nl/han/aim/asd/bootstrapserver/dto/LoginDto.java index ce0165c..218fd39 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/dto/LoginDto.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/dto/LoginDto.java @@ -1,4 +1,4 @@ package nl.han.aim.asd.bootstrapserver.dto; -public record LoginDto(String username, String password) { +public record LoginDto(String email, String password) { } diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/services/UserService.java b/src/main/java/nl/han/aim/asd/bootstrapserver/services/UserService.java index b55cf7e..237337b 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/services/UserService.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/services/UserService.java @@ -13,7 +13,7 @@ public class UserService implements IUserService { } @Override - public boolean login(String username, String password) { - return userConfiguration.login(username, password); + public boolean login(String email, String password) { + return userConfiguration.login(email, password); } } diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/services/interfaces/IUserService.java b/src/main/java/nl/han/aim/asd/bootstrapserver/services/interfaces/IUserService.java index b97e51d..14ae3c4 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/services/interfaces/IUserService.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/services/interfaces/IUserService.java @@ -4,10 +4,10 @@ public interface IUserService { /** * Login request for the service - * @param username the username of the client + * @param email the email of the client * @param password the password of the client * @return true when the login was successful otherwise false */ - boolean login(String username, String password); + boolean login(String email, String password); } -- GitLab From 53173849a23302918389dff6d462c1f84190339d Mon Sep 17 00:00:00 2001 From: "J.vanderSluis" <J.vanderSluis@student.han.nl> Date: Thu, 11 May 2023 10:20:10 +0200 Subject: [PATCH 5/9] merge conflict resolved --- .../nl/han/aim/asd/bootstrapserver/data/UserConfiguration.java | 2 +- .../asd/bootstrapserver/data/interfaces/IUserConfiguration.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/data/UserConfiguration.java b/src/main/java/nl/han/aim/asd/bootstrapserver/data/UserConfiguration.java index a0ac6ab..8ca1b4c 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/data/UserConfiguration.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/data/UserConfiguration.java @@ -7,7 +7,7 @@ import org.springframework.stereotype.Service; public class UserConfiguration implements IUserConfiguration { @Override - public boolean login(String username, String password) { + public boolean login(String email, String password) { return false; } diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/data/interfaces/IUserConfiguration.java b/src/main/java/nl/han/aim/asd/bootstrapserver/data/interfaces/IUserConfiguration.java index 7cda1e1..383f6ee 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/data/interfaces/IUserConfiguration.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/data/interfaces/IUserConfiguration.java @@ -7,7 +7,7 @@ public interface IUserConfiguration { * @param password the password of the client * @return true when the login was successful otherwise false */ - boolean login(String username, String password); + boolean login(String email, String password); /** * Makes a registration request to the database -- GitLab From 95e097340e23b3e35e673f11d50f9b08e1873b47 Mon Sep 17 00:00:00 2001 From: "J.vanderSluis" <J.vanderSluis@student.han.nl> Date: Mon, 15 May 2023 10:52:06 +0200 Subject: [PATCH 6/9] feedback verwerkt --- .../controllers/UserController.java | 31 ++++++++++++++----- .../data/UserConfiguration.java | 4 +-- .../data/interfaces/IUserConfiguration.java | 5 ++- .../services/TokenService.java | 14 +++++++++ .../bootstrapserver/services/UserService.java | 10 +++++- .../services/interfaces/ITokenService.java | 5 +++ .../services/interfaces/IUserService.java | 2 ++ 7 files changed, 57 insertions(+), 14 deletions(-) create mode 100644 src/main/java/nl/han/aim/asd/bootstrapserver/services/TokenService.java create mode 100644 src/main/java/nl/han/aim/asd/bootstrapserver/services/interfaces/ITokenService.java diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/controllers/UserController.java b/src/main/java/nl/han/aim/asd/bootstrapserver/controllers/UserController.java index ec68155..4c8ac86 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/controllers/UserController.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/controllers/UserController.java @@ -2,7 +2,10 @@ package nl.han.aim.asd.bootstrapserver.controllers; import nl.han.aim.asd.bootstrapserver.dto.LoginDto; import nl.han.aim.asd.bootstrapserver.dto.RegistrationDto; +import nl.han.aim.asd.bootstrapserver.services.interfaces.ITokenService; import nl.han.aim.asd.bootstrapserver.services.interfaces.IUserService; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; @@ -11,28 +14,40 @@ import org.springframework.web.bind.annotation.RestController; public class UserController { private final IUserService userService; + private final ITokenService tokenService; - public UserController(IUserService userService) { + public UserController(IUserService userService, ITokenService tokenService) { this.userService = userService; + this.tokenService = tokenService; } /** * The endpoint where the client makes a login request - * @param loginDto a email and password is provided - * @return true when the login was successful otherwise false + * @param loginDto an email and password is provided + * @return Ok and a token when the user successfully logged in, if not return unauthorized */ @PostMapping("/login") - public boolean login(@RequestBody LoginDto loginDto) { - return userService.login(loginDto.email(), loginDto.password()); + public ResponseEntity<String> login(@RequestBody LoginDto loginDto) { + boolean loginResult = userService.login(loginDto.email(), loginDto.password()); + + if (!loginResult) + return new ResponseEntity<>(HttpStatus.UNAUTHORIZED); + + return new ResponseEntity<>(tokenService.generateToken(), HttpStatus.OK); } /** * The endpoint where the client makes a registration request * @param registrationDto a username, email and password - * @return true when the registration is completed successfully otherwise return false + * @return Created when the user registered successfully else return Conflict */ @PostMapping("/registration") - public boolean registration(@RequestBody RegistrationDto registrationDto) { - return userService.registration(registrationDto.username(), registrationDto.email(), registrationDto.password()); + public ResponseEntity<HttpStatus> registration(@RequestBody RegistrationDto registrationDto) { + boolean result = userService.registration(registrationDto.username(), registrationDto.email(), registrationDto.password()); + + if (!result) + return new ResponseEntity<>(HttpStatus.CONFLICT); + + return new ResponseEntity<>(HttpStatus.CREATED); } } diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/data/UserConfiguration.java b/src/main/java/nl/han/aim/asd/bootstrapserver/data/UserConfiguration.java index 8ca1b4c..eaa3709 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/data/UserConfiguration.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/data/UserConfiguration.java @@ -7,8 +7,8 @@ import org.springframework.stereotype.Service; public class UserConfiguration implements IUserConfiguration { @Override - public boolean login(String email, String password) { - return false; + public String getPassword(String email) { + return "admin"; } @Override diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/data/interfaces/IUserConfiguration.java b/src/main/java/nl/han/aim/asd/bootstrapserver/data/interfaces/IUserConfiguration.java index 383f6ee..ede9736 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/data/interfaces/IUserConfiguration.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/data/interfaces/IUserConfiguration.java @@ -4,10 +4,9 @@ public interface IUserConfiguration { /** * Makes a login request to the database * @param email the email of the client - * @param password the password of the client - * @return true when the login was successful otherwise false + * @return the password of the email */ - boolean login(String email, String password); + String getPassword(String email); /** * Makes a registration request to the database diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/services/TokenService.java b/src/main/java/nl/han/aim/asd/bootstrapserver/services/TokenService.java new file mode 100644 index 0000000..66718f0 --- /dev/null +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/services/TokenService.java @@ -0,0 +1,14 @@ +package nl.han.aim.asd.bootstrapserver.services; + +import nl.han.aim.asd.bootstrapserver.services.interfaces.ITokenService; +import org.springframework.stereotype.Service; + +import java.util.UUID; + +@Service +public class TokenService implements ITokenService { + @Override + public String generateToken() { + return UUID.randomUUID().toString(); + } +} diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/services/UserService.java b/src/main/java/nl/han/aim/asd/bootstrapserver/services/UserService.java index 9d5eb5c..87f3978 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/services/UserService.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/services/UserService.java @@ -2,6 +2,8 @@ package nl.han.aim.asd.bootstrapserver.services; import nl.han.aim.asd.bootstrapserver.data.interfaces.IUserConfiguration; import nl.han.aim.asd.bootstrapserver.services.interfaces.IUserService; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; @Service @@ -14,7 +16,13 @@ public class UserService implements IUserService { @Override public boolean login(String email, String password) { - return userConfiguration.login(email, password); + String pass = userConfiguration.getPassword(email); + + if (pass == null) { + return false; + } + + return password.equals(pass); } @Override diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/services/interfaces/ITokenService.java b/src/main/java/nl/han/aim/asd/bootstrapserver/services/interfaces/ITokenService.java new file mode 100644 index 0000000..143763f --- /dev/null +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/services/interfaces/ITokenService.java @@ -0,0 +1,5 @@ +package nl.han.aim.asd.bootstrapserver.services.interfaces; + +public interface ITokenService { + String generateToken(); +} diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/services/interfaces/IUserService.java b/src/main/java/nl/han/aim/asd/bootstrapserver/services/interfaces/IUserService.java index cbde834..6360896 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/services/interfaces/IUserService.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/services/interfaces/IUserService.java @@ -1,5 +1,7 @@ package nl.han.aim.asd.bootstrapserver.services.interfaces; +import org.springframework.http.ResponseEntity; + public interface IUserService { /** -- GitLab From cdd9d99e9cd5078fa697661ceafd90ab3fce6de8 Mon Sep 17 00:00:00 2001 From: "J.vanderSluis" <J.vanderSluis@student.han.nl> Date: Mon, 15 May 2023 11:00:19 +0200 Subject: [PATCH 7/9] added token to RequestPeerDto --- .../controllers/PeerController.java | 4 +- .../bootstrapserver/dto/RequestPeerDto.java | 45 +------------------ .../bootstrapserver/PeerControllerTest.java | 2 +- 3 files changed, 4 insertions(+), 47 deletions(-) diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/controllers/PeerController.java b/src/main/java/nl/han/aim/asd/bootstrapserver/controllers/PeerController.java index c49e591..442a132 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/controllers/PeerController.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/controllers/PeerController.java @@ -24,7 +24,7 @@ public class PeerController { */ @PostMapping("/joinNetwork") public ResponseEntity<Peer> joinNetwork(@RequestBody RequestPeerDto requestPeerDto) { - Peer peer = new Peer(requestPeerDto.getIp(), requestPeerDto.getPort()); + Peer peer = new Peer(requestPeerDto.ip(), requestPeerDto.port()); return masterService.returnMasterIp(peer); } @@ -35,7 +35,7 @@ public class PeerController { */ @PostMapping("/updateMaster") public ResponseEntity<String> updateMaster(@RequestBody RequestPeerDto requestPeerDto){ - Peer peer = new Peer(requestPeerDto.getIp(), requestPeerDto.getPort()); + Peer peer = new Peer(requestPeerDto.ip(), requestPeerDto.port()); return masterService.updateMaster(peer); } diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/dto/RequestPeerDto.java b/src/main/java/nl/han/aim/asd/bootstrapserver/dto/RequestPeerDto.java index 1f05765..110a9fe 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/dto/RequestPeerDto.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/dto/RequestPeerDto.java @@ -1,47 +1,4 @@ package nl.han.aim.asd.bootstrapserver.dto; -public class RequestPeerDto { - String ip; - int port; - String email; - String password; - - public RequestPeerDto(String ip, int port, String email, String password) { - this.ip = ip; - this.port = port; - this.email = email; - this.password = password; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public int getPort() { - return port; - } - - public void setPort(int port) { - this.port = port; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } +public record RequestPeerDto(String token, String ip, int port) { } diff --git a/src/test/java/nl/han/aim/asd/bootstrapserver/PeerControllerTest.java b/src/test/java/nl/han/aim/asd/bootstrapserver/PeerControllerTest.java index 8b20485..a96f689 100644 --- a/src/test/java/nl/han/aim/asd/bootstrapserver/PeerControllerTest.java +++ b/src/test/java/nl/han/aim/asd/bootstrapserver/PeerControllerTest.java @@ -21,7 +21,7 @@ public class PeerControllerTest { public void setup(){ masterService = Mockito.mock(MasterService.class); sut = new PeerController(masterService); - requestPeerDto = new RequestPeerDto("100.0.0.1", 8080, "email", "password"); + requestPeerDto = new RequestPeerDto("aaa-bbb-ccc", "100.0.0.1", 8080); } @Test -- GitLab From 73bac0e21db43533eb252d45baac274864cc71e2 Mon Sep 17 00:00:00 2001 From: "J.vanderSluis" <J.vanderSluis@student.han.nl> Date: Mon, 15 May 2023 11:10:10 +0200 Subject: [PATCH 8/9] added token check to userController --- .../controllers/PeerController.java | 12 +++++++++++- .../bootstrapserver/services/TokenService.java | 17 ++++++++++++++++- .../services/interfaces/ITokenService.java | 2 ++ .../asd/bootstrapserver/PeerControllerTest.java | 8 +++++++- 4 files changed, 36 insertions(+), 3 deletions(-) diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/controllers/PeerController.java b/src/main/java/nl/han/aim/asd/bootstrapserver/controllers/PeerController.java index 442a132..4cd1446 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/controllers/PeerController.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/controllers/PeerController.java @@ -3,6 +3,8 @@ package nl.han.aim.asd.bootstrapserver.controllers; import nl.han.aim.asd.bootstrapserver.dto.RequestPeerDto; import nl.han.aim.asd.bootstrapserver.entity.Peer; import nl.han.aim.asd.bootstrapserver.services.interfaces.IMasterService; +import nl.han.aim.asd.bootstrapserver.services.interfaces.ITokenService; +import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -12,9 +14,11 @@ import org.springframework.web.bind.annotation.RestController; @RestController public class PeerController { private final IMasterService masterService; + private final ITokenService tokenService; - public PeerController(IMasterService masterService) { + public PeerController(IMasterService masterService, ITokenService tokenService) { this.masterService = masterService; + this.tokenService = tokenService; } /** @@ -24,6 +28,9 @@ public class PeerController { */ @PostMapping("/joinNetwork") public ResponseEntity<Peer> joinNetwork(@RequestBody RequestPeerDto requestPeerDto) { + if (!tokenService.checkToken(requestPeerDto.token())) + return new ResponseEntity<>(HttpStatus.UNAUTHORIZED); + Peer peer = new Peer(requestPeerDto.ip(), requestPeerDto.port()); return masterService.returnMasterIp(peer); } @@ -35,6 +42,9 @@ public class PeerController { */ @PostMapping("/updateMaster") public ResponseEntity<String> updateMaster(@RequestBody RequestPeerDto requestPeerDto){ + if (!tokenService.checkToken(requestPeerDto.token())) + return new ResponseEntity<>(HttpStatus.UNAUTHORIZED); + Peer peer = new Peer(requestPeerDto.ip(), requestPeerDto.port()); return masterService.updateMaster(peer); } diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/services/TokenService.java b/src/main/java/nl/han/aim/asd/bootstrapserver/services/TokenService.java index 66718f0..5748847 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/services/TokenService.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/services/TokenService.java @@ -3,12 +3,27 @@ package nl.han.aim.asd.bootstrapserver.services; import nl.han.aim.asd.bootstrapserver.services.interfaces.ITokenService; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.UUID; @Service public class TokenService implements ITokenService { + private ArrayList<String> tokens; + + public TokenService() { + tokens = new ArrayList<>(); + } + @Override public String generateToken() { - return UUID.randomUUID().toString(); + String token = UUID.randomUUID().toString(); + tokens.add(token); + + return token; + } + + @Override + public boolean checkToken(String token) { + return tokens.contains(token); } } diff --git a/src/main/java/nl/han/aim/asd/bootstrapserver/services/interfaces/ITokenService.java b/src/main/java/nl/han/aim/asd/bootstrapserver/services/interfaces/ITokenService.java index 143763f..31d49de 100644 --- a/src/main/java/nl/han/aim/asd/bootstrapserver/services/interfaces/ITokenService.java +++ b/src/main/java/nl/han/aim/asd/bootstrapserver/services/interfaces/ITokenService.java @@ -2,4 +2,6 @@ package nl.han.aim.asd.bootstrapserver.services.interfaces; public interface ITokenService { String generateToken(); + + boolean checkToken(String token); } diff --git a/src/test/java/nl/han/aim/asd/bootstrapserver/PeerControllerTest.java b/src/test/java/nl/han/aim/asd/bootstrapserver/PeerControllerTest.java index a96f689..963e49c 100644 --- a/src/test/java/nl/han/aim/asd/bootstrapserver/PeerControllerTest.java +++ b/src/test/java/nl/han/aim/asd/bootstrapserver/PeerControllerTest.java @@ -5,8 +5,10 @@ import nl.han.aim.asd.bootstrapserver.dto.RequestPeerDto; import nl.han.aim.asd.bootstrapserver.entity.Peer; import nl.han.aim.asd.bootstrapserver.services.interfaces.IMasterService; import nl.han.aim.asd.bootstrapserver.services.MasterService; +import nl.han.aim.asd.bootstrapserver.services.interfaces.ITokenService; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.mockito.Mock; import org.mockito.Mockito; import static org.mockito.Mockito.*; @@ -15,12 +17,16 @@ import static org.mockito.Mockito.*; public class PeerControllerTest { PeerController sut; IMasterService masterService; + + @Mock + ITokenService tokenService; RequestPeerDto requestPeerDto; @BeforeEach public void setup(){ masterService = Mockito.mock(MasterService.class); - sut = new PeerController(masterService); + + sut = new PeerController(masterService, tokenService); requestPeerDto = new RequestPeerDto("aaa-bbb-ccc", "100.0.0.1", 8080); } -- GitLab From 2239b7e0e2ca517a84b0e6b3332a818f4e71c38f Mon Sep 17 00:00:00 2001 From: "J.vanderSluis" <J.vanderSluis@student.han.nl> Date: Mon, 15 May 2023 11:51:20 +0200 Subject: [PATCH 9/9] fixed tokenservice in test --- .../aim/asd/bootstrapserver/PeerControllerTest.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/test/java/nl/han/aim/asd/bootstrapserver/PeerControllerTest.java b/src/test/java/nl/han/aim/asd/bootstrapserver/PeerControllerTest.java index 963e49c..c7309c8 100644 --- a/src/test/java/nl/han/aim/asd/bootstrapserver/PeerControllerTest.java +++ b/src/test/java/nl/han/aim/asd/bootstrapserver/PeerControllerTest.java @@ -3,6 +3,7 @@ package nl.han.aim.asd.bootstrapserver; import nl.han.aim.asd.bootstrapserver.controllers.PeerController; import nl.han.aim.asd.bootstrapserver.dto.RequestPeerDto; import nl.han.aim.asd.bootstrapserver.entity.Peer; +import nl.han.aim.asd.bootstrapserver.services.TokenService; import nl.han.aim.asd.bootstrapserver.services.interfaces.IMasterService; import nl.han.aim.asd.bootstrapserver.services.MasterService; import nl.han.aim.asd.bootstrapserver.services.interfaces.ITokenService; @@ -17,23 +18,23 @@ import static org.mockito.Mockito.*; public class PeerControllerTest { PeerController sut; IMasterService masterService; - - @Mock ITokenService tokenService; RequestPeerDto requestPeerDto; + private final String TOKEN = "aaa-bbb-ccc"; @BeforeEach public void setup(){ masterService = Mockito.mock(MasterService.class); + tokenService = Mockito.mock(TokenService.class); sut = new PeerController(masterService, tokenService); - requestPeerDto = new RequestPeerDto("aaa-bbb-ccc", "100.0.0.1", 8080); + requestPeerDto = new RequestPeerDto(TOKEN, "100.0.0.1", 8080); } @Test public void joinNetworkCallsMasterServiceReturnMasterIp(){ //arrange - + when(tokenService.checkToken(TOKEN)).thenReturn(true); //act sut.joinNetwork(requestPeerDto); //assert @@ -42,6 +43,7 @@ public class PeerControllerTest { @Test public void updateMasterCallsMasterServiceCallsUpdateMaster(){ //arrange + when(tokenService.checkToken(TOKEN)).thenReturn(true); //act sut.updateMaster(requestPeerDto); -- GitLab