From e1a3c968100ab6b0a68bb29bf7d1393e0effe44e Mon Sep 17 00:00:00 2001 From: Steffen Nitschke Date: Sun, 31 Jan 2021 03:01:26 +0100 Subject: [PATCH] extract logout method --- .../server/access/web/AccessController.java | 20 ++++++++++- .../access/web/AccessControllerTest.java | 36 +++++++++++++++++++ 2 files changed, 55 insertions(+), 1 deletion(-) diff --git a/fh.fd.ci.server/src/main/java/de/fd/fh/server/access/web/AccessController.java b/fh.fd.ci.server/src/main/java/de/fd/fh/server/access/web/AccessController.java index 3d43c07..ccef76e 100644 --- a/fh.fd.ci.server/src/main/java/de/fd/fh/server/access/web/AccessController.java +++ b/fh.fd.ci.server/src/main/java/de/fd/fh/server/access/web/AccessController.java @@ -33,6 +33,23 @@ public class AccessController return response; } + + public Object logout(Request request, Response response) + { + final String token = request.headers(Utils.AUTHENTICATION_HEADER); + + if (service.logout(token)) + { + response.status(200); + } + else + { + response.status(400); + } + + return response; + } + public AccessController(final AccessService service) { this.service = service; @@ -86,7 +103,8 @@ public class AccessController return response; }); - post("/accounts/logout", this::deletePlayer); + post("/accounts/logout",this::logout); + delete("/accounts/:player_id", this::deletePlayer); } } diff --git a/fh.fd.ci.server/src/test/java/de/fd/fh/server/access/web/AccessControllerTest.java b/fh.fd.ci.server/src/test/java/de/fd/fh/server/access/web/AccessControllerTest.java index 1046b8a..a99039f 100644 --- a/fh.fd.ci.server/src/test/java/de/fd/fh/server/access/web/AccessControllerTest.java +++ b/fh.fd.ci.server/src/test/java/de/fd/fh/server/access/web/AccessControllerTest.java @@ -73,4 +73,40 @@ class AccessControllerTest assertEquals(captor.getValue(), Integer.valueOf(400), "Should return Status code 400."); } + + @Test + void testLogout() + { + when(request.headers(any())).thenReturn("testHeader"); + when(service.logout(any())).thenReturn(true); + + final ArgumentCaptor captor = ArgumentCaptor.forClass(Integer.class); + + new AccessController(service).logout(request, response); + + verify(response).status(captor.capture()); + + then(service).should().logout(any()); + then(service).shouldHaveNoMoreInteractions(); + + assertEquals(captor.getValue(), Integer.valueOf(200), "Should return Status code 200."); + } + + @Test + void failedLogoutTest() + { + when(request.headers(any())).thenReturn("testHeader"); + when(service.logout(any())).thenReturn(false); + + final ArgumentCaptor captor = ArgumentCaptor.forClass(Integer.class); + + new AccessController(service).logout(request, response); + + verify(response).status(captor.capture()); + + then(service).should().logout(any()); + then(service).shouldHaveNoMoreInteractions(); + + assertEquals(captor.getValue(), Integer.valueOf(400), "Should return Status code 400."); + } } \ No newline at end of file