diff options
Diffstat (limited to 'ufund-api/src/test/java/com/ufund')
11 files changed, 533 insertions, 199 deletions
diff --git a/ufund-api/src/test/java/com/ufund/api/ufundapi/controller/AuthControllerTest.java b/ufund-api/src/test/java/com/ufund/api/ufundapi/controller/AuthControllerTest.java index 3d4637d..f4b5980 100644 --- a/ufund-api/src/test/java/com/ufund/api/ufundapi/controller/AuthControllerTest.java +++ b/ufund-api/src/test/java/com/ufund/api/ufundapi/controller/AuthControllerTest.java @@ -8,7 +8,6 @@ import static org.junit.jupiter.api.Assertions.assertEquals;  import org.junit.jupiter.api.BeforeEach;  import org.junit.jupiter.api.Test;  import static org.mockito.ArgumentMatchers.any; -import org.mockito.Mockito;  import static org.mockito.Mockito.doThrow;  import static org.mockito.Mockito.mock;  import static org.mockito.Mockito.when; @@ -26,7 +25,7 @@ public class AuthControllerTest {      private Map<String, String> authMap;      @BeforeEach -    private void setupAuthController() { +    public void setupAuthController() {          mockAuthService = mock(AuthService.class);          authController = new AuthController(mockAuthService); @@ -76,7 +75,7 @@ public class AuthControllerTest {      }      @Test -    public void testLogout() throws IllegalAccessException, IOException { +    public void testLogout() {          // Setup          String key = "123"; @@ -88,7 +87,7 @@ public class AuthControllerTest {      }      @Test -    public void testLogoutIOException() throws IllegalAccessException, IOException { +    public void testLogoutIOException() throws IOException {          // Setup          String key = "123"; diff --git a/ufund-api/src/test/java/com/ufund/api/ufundapi/controller/CupboardControllerTest.java b/ufund-api/src/test/java/com/ufund/api/ufundapi/controller/CupboardControllerTest.java index 6ef6710..8572ec6 100644 --- a/ufund-api/src/test/java/com/ufund/api/ufundapi/controller/CupboardControllerTest.java +++ b/ufund-api/src/test/java/com/ufund/api/ufundapi/controller/CupboardControllerTest.java @@ -7,10 +7,11 @@ import static java.util.Map.entry;  import static org.junit.jupiter.api.Assertions.assertArrayEquals;  import static org.junit.jupiter.api.Assertions.assertEquals;  import static org.junit.jupiter.api.Assertions.assertNull; +import static org.mockito.Mockito.*; + +import com.ufund.api.ufundapi.service.AuthService;  import org.junit.jupiter.api.BeforeEach;  import org.junit.jupiter.api.Test; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when;  import org.springframework.http.HttpStatus;  import com.ufund.api.ufundapi.DuplicateKeyException; @@ -21,29 +22,44 @@ import com.ufund.api.ufundapi.service.CupboardService;  public class CupboardControllerTest {      private CupboardController cupboardController;      private CupboardService mockCupboardService; +    private final String key = "dummyKey"; +    private AuthService mockAuthService;      @BeforeEach      public void setupCupboardDAO() { +        mockAuthService = mock(AuthService.class);          mockCupboardService = mock(CupboardService.class); -        cupboardController = new CupboardController(mockCupboardService); +        cupboardController = new CupboardController(mockCupboardService, mockAuthService); + +        try { +            doThrow().when(mockAuthService).keyHasAccessToCupboard(key); +        } catch (Exception ignored) {}      }      @Test      public void createNeed() throws IOException, DuplicateKeyException {          String name = "Test"; +        String location = "Atlantis";          int maxGoal = 100;          GoalType type = Need.GoalType.MONETARY; -        var need = new Need(name, type, maxGoal); -        when(mockCupboardService.createNeed(name, maxGoal, type)).thenReturn(need); +        boolean urgent = false; +        String image = ""; +        String description = ""; +        var need = new Need(name, location, image, maxGoal, type, urgent, description); +        when(mockCupboardService.createNeed(name, image, location, maxGoal, type, urgent, description)).thenReturn(need);          Map<String, Object> needMap = Map.ofEntries(                  entry("name", "Test"), -                entry("maxGoal", 100.0), -                entry("type", "MONETARY") +                entry("image", ""), +                entry("location", "Atlantis"), +                entry("maxGoal", 100), +                entry("type", "MONETARY"), +                entry("urgent", false), +                entry("description", "")          ); -        var res = cupboardController.createNeed(needMap); +        var res = cupboardController.createNeed(needMap, key);          assertEquals(HttpStatus.OK, res.getStatusCode());          assertEquals(need, res.getBody()); @@ -51,41 +67,94 @@ public class CupboardControllerTest {      @Test      public void createNeedBadMaxGoal() throws IOException, DuplicateKeyException { -        when(mockCupboardService.createNeed("Name", -100, Need.GoalType.MONETARY)).thenThrow(new IllegalArgumentException()); +        when(mockCupboardService.createNeed("Test", "", "Atlantis", -100, Need.GoalType.MONETARY, false, "")).thenThrow(new IllegalArgumentException());          Map<String, Object> needMap = Map.ofEntries( -                entry("name", "Name"), -                entry("maxGoal", -100.0), -                entry("type", "MONETARY")); +                entry("name", "Test"), +                entry("image", ""), +                entry("location", "Atlantis"), +                entry("maxGoal", -100), +                entry("type", "MONETARY"), +                entry("urgent", false), +                entry("description", "") +        ); -        var res = cupboardController.createNeed(needMap); +        var res = cupboardController.createNeed(needMap, key);          assertEquals(HttpStatus.BAD_REQUEST, res.getStatusCode());      }      @Test      public void createNeedIOException() throws IOException, DuplicateKeyException { -        when(mockCupboardService.createNeed("Name", 100, Need.GoalType.MONETARY)).thenThrow(new IOException()); +        when(mockCupboardService.createNeed("Test", "", "Atlantis", 100, Need.GoalType.MONETARY, false, "")).thenThrow(new IOException());          Map<String, Object> needMap = Map.ofEntries( -                entry("name", "Name"), -                entry("maxGoal", 100.0), -                entry("type", "MONETARY")); +                entry("name", "Test"), +                entry("image", ""), +                entry("location", "Atlantis"), +                entry("maxGoal", 100), +                entry("type", "MONETARY"), +                entry("urgent", false), +                entry("description", "") +        ); -        var res = cupboardController.createNeed(needMap); +        var res = cupboardController.createNeed(needMap, key);          assertEquals(HttpStatus.INTERNAL_SERVER_ERROR, res.getStatusCode());      }      @Test +    public void createNeedConflict() throws IOException, DuplicateKeyException { +        when(mockCupboardService.createNeed("Test", "", "Atlantis", 100, Need.GoalType.MONETARY, false, "")).thenThrow(new DuplicateKeyException("")); + +        Map<String, Object> needMap = Map.ofEntries( +                entry("name", "Test"), +                entry("image", ""), +                entry("location", "Atlantis"), +                entry("maxGoal", 100), +                entry("type", "MONETARY"), +                entry("urgent", false), +                entry("description", "") +        ); + +        var res = cupboardController.createNeed(needMap, key); + +        assertEquals(HttpStatus.CONFLICT, res.getStatusCode()); +    } + +    @Test +    public void createNeedUnauthorized() throws IOException, IllegalAccessException { +        doThrow(new IllegalAccessException()).when(mockAuthService).keyHasAccessToCupboard(key); + +        Map<String, Object> needMap = Map.ofEntries( +                entry("name", "Test"), +                entry("location", "Atlantis"), +                entry("maxGoal", 100), +                entry("type", "MONETARY"), +                entry("urgent", false) +        ); + +        var res = cupboardController.createNeed(needMap, key); + +        assertEquals(HttpStatus.UNAUTHORIZED, res.getStatusCode()); +    } + +    @Test      public void getNeeds() throws IOException { -        var need = new Need("Name", 1, 100, Need.GoalType.MONETARY); +        String name = "Test"; +        String location = "Atlantis"; +        int maxGoal = 100; +        GoalType type = Need.GoalType.MONETARY; +        boolean urgent = false; +        String image = ""; +        String description = ""; +        var need = new Need(name, location, image, maxGoal, type, urgent, description);          when(mockCupboardService.getNeeds()).thenReturn(new Need[]{need});          var res = cupboardController.getNeeds();          assertEquals(HttpStatus.OK, res.getStatusCode()); -        assertArrayEquals(new Need[]{need}, res.getBody()); +        assertArrayEquals(new Need[]{need}, (Need[]) res.getBody());      }      @Test @@ -104,18 +173,25 @@ public class CupboardControllerTest {          var res = cupboardController.getNeeds();          assertEquals(HttpStatus.OK, res.getStatusCode()); -        assertArrayEquals(new Need[]{}, res.getBody()); +        assertArrayEquals(new Need[]{}, (Need[]) res.getBody());      }      @Test      public void searchNeeds() throws IOException { -        var need = new Need("Name", 1, 100, Need.GoalType.MONETARY); +        String name = "Test"; +        String location = "Atlantis"; +        int maxGoal = 100; +        GoalType type = Need.GoalType.MONETARY; +        boolean urgent = false; +        String image = ""; +        String description = ""; +        var need = new Need(name, location, image, maxGoal, type, urgent, description);          when(mockCupboardService.searchNeeds("Na")).thenReturn(new Need[]{need});          var res = cupboardController.searchNeeds("Na");          assertEquals(HttpStatus.OK, res.getStatusCode()); -        assertArrayEquals(new Need[]{need}, res.getBody()); +        assertArrayEquals(new Need[]{need}, (Need[]) res.getBody());      }      @Test @@ -134,12 +210,19 @@ public class CupboardControllerTest {          var res = cupboardController.searchNeeds("Na");          assertEquals(HttpStatus.OK, res.getStatusCode()); -        assertArrayEquals(new Need[]{}, res.getBody()); +        assertArrayEquals(new Need[]{}, (Need[]) res.getBody());      }      @Test      public void getNeed() throws IOException { -        var need = new Need("Name", 1, 100, Need.GoalType.MONETARY); +        String name = "Test"; +        String location = "Atlantis"; +        int maxGoal = 100; +        GoalType type = Need.GoalType.MONETARY; +        boolean urgent = false; +        String image = ""; +        String description = ""; +        var need = new Need(name, location, image, maxGoal, type, urgent, description);          when(mockCupboardService.getNeed(need.getId())).thenReturn(need);          var res = cupboardController.getNeed(need.getId()); @@ -150,7 +233,14 @@ public class CupboardControllerTest {      @Test      public void getNeedIOException() throws IOException { -        var need = new Need("Name", 1, 100, Need.GoalType.MONETARY); +        String name = "Test"; +        String location = "Atlantis"; +        int maxGoal = 100; +        GoalType type = Need.GoalType.MONETARY; +        boolean urgent = false; +        String image = ""; +        String description = ""; +        var need = new Need(name, location, image, maxGoal, type, urgent, description);          when(mockCupboardService.getNeed(need.getId())).thenThrow(new IOException());          var res = cupboardController.getNeed(need.getId()); @@ -160,7 +250,14 @@ public class CupboardControllerTest {      @Test      public void getNeedFail() throws IOException { -        var need = new Need("Name", 1, 100, Need.GoalType.MONETARY); +        String name = "Test"; +        String location = "Atlantis"; +        int maxGoal = 100; +        GoalType type = Need.GoalType.MONETARY; +        boolean urgent = false; +        String image = ""; +        String description = ""; +        var need = new Need(name, location, image, maxGoal, type, urgent, description);          when(mockCupboardService.getNeed(need.getId())).thenReturn(null);          var res = cupboardController.getNeed(need.getId()); @@ -171,10 +268,17 @@ public class CupboardControllerTest {      @Test      public void updateNeeds() throws IOException { -        var need = new Need("Name", 1, 100, Need.GoalType.MONETARY); +        String name = "Test"; +        String location = "Atlantis"; +        int maxGoal = 100; +        GoalType type = Need.GoalType.MONETARY; +        boolean urgent = false; +        String image = ""; +        String description = ""; +        var need = new Need(name, location, image, maxGoal, type, urgent, description);          when(mockCupboardService.updateNeed(need, 1)).thenReturn(need); -        var res = cupboardController.updateNeed(need, 1); +        var res = cupboardController.updateNeed(need, 1, key);          assertEquals(HttpStatus.OK, res.getStatusCode());          assertEquals(need, res.getBody()); @@ -182,21 +286,86 @@ public class CupboardControllerTest {      @Test      public void updateNeedsIOException() throws IOException { -        var need = new Need("Name", 1, 100, Need.GoalType.MONETARY); +        String name = "Test"; +        String location = "Atlantis"; +        int maxGoal = 100; +        GoalType type = Need.GoalType.MONETARY; +        boolean urgent = false; +        String image = ""; +        String description = ""; +        var need = new Need(name, location, image, maxGoal, type, urgent, description);          when(mockCupboardService.updateNeed(need, 1)).thenThrow(new IOException()); -        var res = cupboardController.updateNeed(need, 1); +        var res = cupboardController.updateNeed(need, 1, key);          assertEquals(HttpStatus.INTERNAL_SERVER_ERROR, res.getStatusCode());      }      @Test +    public void updateNeedMissing() throws IOException { +        String name = "Test"; +        String location = "Atlantis"; +        int maxGoal = 100; +        GoalType type = Need.GoalType.MONETARY; +        boolean urgent = false; +        String image = ""; +        String description = ""; +        var need = new Need(name, location, image, maxGoal, type, urgent, description); +        when(mockCupboardService.updateNeed(need, 1)).thenReturn(null); + +        var res = cupboardController.updateNeed(need, 1, key); + +        assertEquals(HttpStatus.NOT_FOUND, res.getStatusCode()); +    } + +    @Test +    public void updateNeedBadRequest() throws IOException { +        String name = "Test"; +        String location = "Atlantis"; +        int maxGoal = 100; +        GoalType type = Need.GoalType.MONETARY; +        boolean urgent = false; +        String image = ""; +        String description = ""; +        var need = new Need(name, location, image, maxGoal, type, urgent, description); +        when(mockCupboardService.updateNeed(need, 1)).thenThrow(new IllegalArgumentException()); + +        var res = cupboardController.updateNeed(need, 1, key); + +        assertEquals(HttpStatus.BAD_REQUEST, res.getStatusCode()); +    } + +    @Test +    public void updateNeedUnauthorized() throws IOException, IllegalAccessException { +        String name = "Test"; +        String location = "Atlantis"; +        int maxGoal = 100; +        GoalType type = Need.GoalType.MONETARY; +        boolean urgent = false; +        String image = ""; +        String description = ""; +        var need = new Need(name, location, image, maxGoal, type, urgent, description); +        doThrow(new IllegalAccessException()).when(mockAuthService).keyHasAccessToCupboard(key); + +        var res = cupboardController.updateNeed(need, 1, key); + +        assertEquals(HttpStatus.UNAUTHORIZED, res.getStatusCode()); +    } + +    @Test      public void deleteNeed() throws IOException { -        var need = new Need("Name", 1, 100, Need.GoalType.MONETARY); +        String name = "Test"; +        String location = "Atlantis"; +        int maxGoal = 100; +        GoalType type = Need.GoalType.MONETARY; +        boolean urgent = false; +        String image = ""; +        String description = ""; +        var need = new Need(name, location, image, maxGoal, type, urgent, description);          when(mockCupboardService.getNeed(1)).thenReturn(need);          when(mockCupboardService.deleteNeed(1)).thenReturn(true); -        var res = cupboardController.deleteNeed(1); +        var res = cupboardController.deleteNeed(1, key);          assertEquals(HttpStatus.OK, res.getStatusCode());      } @@ -206,18 +375,100 @@ public class CupboardControllerTest {          when(mockCupboardService.getNeed(1)).thenReturn(null);          when(mockCupboardService.deleteNeed(1)).thenReturn(false); -        var res = cupboardController.deleteNeed(1); +        var res = cupboardController.deleteNeed(1, key);          assertEquals(HttpStatus.NOT_FOUND, res.getStatusCode());      }      @Test +    public void deleteNeedUnauthorized() throws IOException, IllegalAccessException { +        String name = "Test"; +        String location = "Atlantis"; +        int maxGoal = 100; +        GoalType type = Need.GoalType.MONETARY; +        boolean urgent = false; +        String image = ""; +        String description = ""; +        var need = new Need(name, location, image, maxGoal, type, urgent, description); +        when(mockCupboardService.getNeed(1)).thenReturn(need); +        doThrow(new IllegalAccessException()).when(mockAuthService).keyHasAccessToCupboard(key); + +        var res = cupboardController.deleteNeed(1, key); + +        assertEquals(HttpStatus.UNAUTHORIZED, res.getStatusCode()); +    } + +    @Test      public void deleteNeedIOException() throws IOException { -        var need = new Need("Name", 1, 100, Need.GoalType.MONETARY); +        String name = "Test"; +        String location = "Atlantis"; +        int maxGoal = 100; +        GoalType type = Need.GoalType.MONETARY; +        boolean urgent = false; +        String image = ""; +        String description = ""; +        var need = new Need(name, location, image, maxGoal, type, urgent, description);          when(mockCupboardService.getNeed(1)).thenReturn(need);          when(mockCupboardService.deleteNeed(1)).thenThrow(new IOException()); -        var res = cupboardController.deleteNeed(1); +        var res = cupboardController.deleteNeed(1, key); + +        assertEquals(HttpStatus.INTERNAL_SERVER_ERROR, res.getStatusCode()); +    } + +    @Test +    public void checkoutNeeds() throws IOException, IllegalAccessException { +        doNothing().when(mockCupboardService).checkoutNeed(0, 20, key); + + +        Map<String, Integer> needMap = Map.ofEntries( +                entry("needID", 0), +                entry("amount", 20) +        ); + +        var res = cupboardController.checkoutNeeds(needMap, key); + +        assertEquals(HttpStatus.OK, res.getStatusCode()); +    } + +    @Test +    public void checkoutNeedsBadRequest() throws IOException, IllegalAccessException { +        doThrow(new IllegalArgumentException()).when(mockCupboardService).checkoutNeed(0, 20, key); + +        Map<String, Integer> needMap = Map.ofEntries( +                entry("needID", 0), +                entry("amount", 20) +        ); + +        var res = cupboardController.checkoutNeeds(needMap, key); + +        assertEquals(HttpStatus.BAD_REQUEST, res.getStatusCode()); +    } + +    @Test +    public void checkoutNeedsUnauthorized() throws IOException, IllegalAccessException { +        doThrow(new IllegalAccessException()).when(mockCupboardService).checkoutNeed(0, 20, key); + +        Map<String, Integer> needMap = Map.ofEntries( +                entry("needID", 0), +                entry("amount", 20) +        ); + +        var res = cupboardController.checkoutNeeds(needMap, key); + +        assertEquals(HttpStatus.UNAUTHORIZED, res.getStatusCode()); +    } + +    @Test +    public void checkoutNeedsInternalError() throws IOException, IllegalAccessException { +        doThrow(new IOException()).when(mockCupboardService).checkoutNeed(0, 20, key); + +        Map<String, Integer> needMap = Map.ofEntries( +                entry("needID", 0), +                entry("amount", 20) +        ); + +        var res = cupboardController.checkoutNeeds(needMap, key);          assertEquals(HttpStatus.INTERNAL_SERVER_ERROR, res.getStatusCode());      } diff --git a/ufund-api/src/test/java/com/ufund/api/ufundapi/controller/UserControllerTest.java b/ufund-api/src/test/java/com/ufund/api/ufundapi/controller/UserControllerTest.java index 5542f49..5870a93 100644 --- a/ufund-api/src/test/java/com/ufund/api/ufundapi/controller/UserControllerTest.java +++ b/ufund-api/src/test/java/com/ufund/api/ufundapi/controller/UserControllerTest.java @@ -50,12 +50,12 @@ public class UserControllerTest {          // Invoke -        ResponseEntity<User> response = userController.getUser(username, key); +        ResponseEntity<Object> response = userController.getUser(username, key);          // Analyze          assertEquals(HttpStatus.OK, response.getStatusCode());          assertNotNull(response.getBody()); -        assertEquals(user.getUsername(), response.getBody().getUsername()); +        assertEquals(user.getUsername(), ((User) response.getBody()).getUsername());      }      @Test @@ -69,7 +69,7 @@ public class UserControllerTest {          // Invoke -        ResponseEntity<User> response = userController.getUser(username, key); +        ResponseEntity<Object> response = userController.getUser(username, key);          // Analyze          assertEquals(HttpStatus.NOT_FOUND, response.getStatusCode()); @@ -82,10 +82,10 @@ public class UserControllerTest {          String key = UserAuth.generate(username).getKey();          // When getUser is called on the Mock User service, throw an IOException          // doThrow(new IllegalAccessException()).when(mockUserService).getUser(username); -        doThrow(new IllegalAccessException()).when(mockAuthService).authenticate(username, key); +        doThrow(new IllegalAccessException()).when(mockAuthService).keyHasAccessToUser(username, key);          // Invoke -        ResponseEntity<User> response = userController.getUser(username, key); +        ResponseEntity<Object> response = userController.getUser(username, key);          // Analyze          assertEquals(HttpStatus.UNAUTHORIZED, response.getStatusCode()); @@ -100,7 +100,7 @@ public class UserControllerTest {          doThrow(new IOException()).when(mockUserService).getUser(username);          // Invoke -        ResponseEntity<User> response = userController.getUser(username, key); +        ResponseEntity<Object> response = userController.getUser(username, key);          // Analyze          assertEquals(HttpStatus.INTERNAL_SERVER_ERROR, response.getStatusCode()); @@ -119,7 +119,7 @@ public class UserControllerTest {          // Invoke -        ResponseEntity<User> response = userController.createUser(userMap); +        ResponseEntity<Object> response = userController.createUser(userMap);          // Analyze          assertEquals(HttpStatus.CREATED, response.getStatusCode()); @@ -138,7 +138,7 @@ public class UserControllerTest {          // Invoke -        ResponseEntity<User> response = userController.createUser(userMap); +        ResponseEntity<Object> response = userController.createUser(userMap);          // Analyze          assertEquals(HttpStatus.CONFLICT, response.getStatusCode()); @@ -154,7 +154,7 @@ public class UserControllerTest {          when(mockUserService.createUser(username, password)).thenThrow(DuplicateKeyException.class);          // Invoke -        ResponseEntity<User> response = userController.createUser(userMap); +        ResponseEntity<Object> response = userController.createUser(userMap);          // Analyze          assertEquals(HttpStatus.CONFLICT, response.getStatusCode()); @@ -172,7 +172,7 @@ public class UserControllerTest {          // Invoke -        ResponseEntity<User> response = userController.createUser(userMap); +        ResponseEntity<Object> response = userController.createUser(userMap);          // Analyze          assertEquals(HttpStatus.INTERNAL_SERVER_ERROR, response.getStatusCode()); @@ -189,7 +189,7 @@ public class UserControllerTest {          when(mockUserService.updateUser(user, username)).thenReturn(user);          // Invoke -        ResponseEntity<User> response = userController.updateUser(user, username, key); +        ResponseEntity<Object> response = userController.updateUser(user, username, key);          // Analyze          assertEquals(HttpStatus.OK, response.getStatusCode()); @@ -207,7 +207,7 @@ public class UserControllerTest {          when(mockUserService.updateUser(user, username)).thenReturn(null);          // Invoke -        ResponseEntity<User> response = userController.updateUser(user, username, key); +        ResponseEntity<Object> response = userController.updateUser(user, username, key);          // Analyze          assertEquals(HttpStatus.NOT_FOUND, response.getStatusCode()); @@ -223,7 +223,7 @@ public class UserControllerTest {          doThrow(new IOException()).when(mockUserService).updateUser(user, username);          // Invoke -        ResponseEntity<User> response = userController.updateUser(user, username, key); +        ResponseEntity<Object> response = userController.updateUser(user, username, key);          // Analyze          assertEquals(HttpStatus.INTERNAL_SERVER_ERROR, response.getStatusCode()); @@ -237,14 +237,14 @@ public class UserControllerTest {          String key = UserAuth.generate(username).getKey();          // When updateUser is called on the Mock User service, throw a Invalid Parameter exception          // exception -        doThrow(new IllegalAccessException()).when(mockAuthService).authenticate(username, key); +        doThrow(new IllegalAccessException()).when(mockAuthService).keyHasAccessToUser(username, key);          // Invoke -        ResponseEntity<User> response = userController.updateUser(user, username, key); +        ResponseEntity<Object> response = userController.updateUser(user, username, key);          // Analyze -        assertEquals(HttpStatus.NOT_FOUND, response.getStatusCode()); +        assertEquals(HttpStatus.UNAUTHORIZED, response.getStatusCode());      }      @Test @@ -256,7 +256,7 @@ public class UserControllerTest {          when(mockUserService.deleteUser(username)).thenReturn(true);          // Invoke -        ResponseEntity<Boolean> response = userController.deleteUser(username, key); +        ResponseEntity<Object> response = userController.deleteUser(username, key);          // Analyze          assertEquals(HttpStatus.OK, response.getStatusCode()); @@ -271,7 +271,7 @@ public class UserControllerTest {          when(mockUserService.deleteUser(username)).thenReturn(false);          // Invoke -        ResponseEntity<Boolean> response = userController.deleteUser(username, key); +        ResponseEntity<Object> response = userController.deleteUser(username, key);          // Analyze          assertEquals(HttpStatus.NOT_FOUND, response.getStatusCode()); @@ -286,7 +286,7 @@ public class UserControllerTest {          doThrow(new IOException()).when(mockUserService).deleteUser(username);          // Invoke -        ResponseEntity<Boolean> response = userController.deleteUser(username, key); +        ResponseEntity<Object> response = userController.deleteUser(username, key);          // Analyze          assertEquals(HttpStatus.INTERNAL_SERVER_ERROR, response.getStatusCode()); @@ -298,10 +298,10 @@ public class UserControllerTest {          String username = "Test";          String key = UserAuth.generate(username).getKey();          // When deleteUser is called on the Mock User service, throw an IOException -        doThrow(new IllegalAccessException()).when(mockAuthService).authenticate(username, key); +        doThrow(new IllegalAccessException()).when(mockAuthService).keyHasAccessToUser(username, key);          // Invoke -        ResponseEntity<Boolean> response = userController.deleteUser(username, key); +        ResponseEntity<Object> response = userController.deleteUser(username, key);          // Analyze          assertEquals(HttpStatus.UNAUTHORIZED, response.getStatusCode()); diff --git a/ufund-api/src/test/java/com/ufund/api/ufundapi/model/NeedTest.java b/ufund-api/src/test/java/com/ufund/api/ufundapi/model/NeedTest.java index 6b4ddfc..67d2b8f 100644 --- a/ufund-api/src/test/java/com/ufund/api/ufundapi/model/NeedTest.java +++ b/ufund-api/src/test/java/com/ufund/api/ufundapi/model/NeedTest.java @@ -14,23 +14,30 @@ public class NeedTest {      public void createNeed() {          String name = "Jellyfish"; -        double maxGoal = 100.00; -        GoalType type = GoalType.MONETARY; -        Need need = new Need(name, type, maxGoal); +        String location = "Atlantis"; +        double maxGoal = 100.0; +        GoalType type = Need.GoalType.MONETARY; +        boolean urgent = false; +        String image = ""; +        String description = ""; +        var need = new Need(name, location, image, maxGoal, type, urgent, description);          assertNotNull(need);      }      @Test      public void testFields() {          String name = "Jellyfish"; -        int id = 0; -        double maxGoal = 100.00; -        GoalType type = GoalType.MONETARY; -        Need need = new Need(name, type, maxGoal); +        String location = "Atlantis"; +        double maxGoal = 100.0; +        GoalType type = Need.GoalType.MONETARY; +        boolean urgent = false; +        String image = ""; +        String description = ""; +        var need = new Need(name, location, image, maxGoal, type, urgent, description);          assertEquals(name, need.getName()); -        assertEquals(id, need.getId()); +        assertEquals(0, need.getId());          assertEquals(maxGoal, need.getMaxGoal());          assertEquals(type, need.getType());      } @@ -38,9 +45,13 @@ public class NeedTest {      @Test      public void testCurrentGoal() {          String name = "Jellyfish"; -        double maxGoal = 100.00; -        GoalType type = GoalType.MONETARY; -        Need need = new Need(name, type, maxGoal); +        String location = "Atlantis"; +        double maxGoal = 100.0; +        GoalType type = Need.GoalType.MONETARY; +        boolean urgent = false; +        String image = ""; +        String description = ""; +        var need = new Need(name, location, image, maxGoal, type, urgent, description);          double current = 0.00;          need.setCurrent(current); @@ -60,9 +71,13 @@ public class NeedTest {      public void testFilterAttributes() {          String name = "Jellyfish"; -        double maxGoal = 100.00; -        GoalType type = GoalType.MONETARY; -        Need need = new Need(name, type, maxGoal); +        String location = "Atlantis"; +        double maxGoal = 100.0; +        GoalType type = Need.GoalType.MONETARY; +        boolean urgent = false; +        String image = ""; +        String description = ""; +        var need = new Need(name, location, image, maxGoal, type, urgent, description);          String[] filterAttributes = {"seaweed", "divers", "pacific", "plankton"}; @@ -75,9 +90,13 @@ public class NeedTest {      public void testSetMaxGoal() {          String name = "Jellyfish"; -        double maxGoal = 100.00; -        GoalType type = GoalType.MONETARY; -        Need need = new Need(name, type, maxGoal); +        String location = "Atlantis"; +        double maxGoal = 100.0; +        GoalType type = Need.GoalType.MONETARY; +        boolean urgent = false; +        String image = ""; +        String description = ""; +        var need = new Need(name, location, image, maxGoal, type, urgent, description);          double newGoal = 200.00;          need.setMaxGoal(newGoal); @@ -90,9 +109,13 @@ public class NeedTest {      public void testSetName() {          String name = "Jellyfish"; -        double maxGoal = 100.00; -        GoalType type = GoalType.MONETARY; -        Need need = new Need(name, type, maxGoal); +        String location = "Atlantis"; +        double maxGoal = 100.0; +        GoalType type = Need.GoalType.MONETARY; +        boolean urgent = false; +        String image = ""; +        String description = ""; +        var need = new Need(name, location, image, maxGoal, type, urgent, description);          String newName = "TESTINGFUN";          need.setName(newName); diff --git a/ufund-api/src/test/java/com/ufund/api/ufundapi/model/UserTest.java b/ufund-api/src/test/java/com/ufund/api/ufundapi/model/UserTest.java index 55b7f07..ed48f54 100644 --- a/ufund-api/src/test/java/com/ufund/api/ufundapi/model/UserTest.java +++ b/ufund-api/src/test/java/com/ufund/api/ufundapi/model/UserTest.java @@ -52,14 +52,14 @@ public class UserTest {          String expectedName = "Bob";          User user = User.create(expectedName, "pass"); -        Need need = new Need("Test", 0, 100, Need.GoalType.MONETARY); +        Need need = new Need("Test", "", "Atlantis", 0, 100, Need.GoalType.MONETARY, false, "");          Need[] needs = { need };          when(cupboardService.getNeed(0)).thenReturn(need);          user.addToBasket(need); -        Need getNeed = cupboardService.getNeed(user.getNeeds()[0]); +        Need getNeed = cupboardService.getNeed(user.getBasket()[0]);          assertEquals(needs[0], getNeed); @@ -71,16 +71,15 @@ public class UserTest {          String expectedName = "Bob";          User user = User.create(expectedName, "pass"); -        Need need = new Need("Test", 0, 100, Need.GoalType.MONETARY); -        Need need2 = new Need("Test2", 0, 100, Need.GoalType.MONETARY); - +        Need need = new Need("Test", "", "Atlantis", 0, 100, Need.GoalType.MONETARY, false, ""); +        Need need2 = new Need("Test2", "", "Atlantis", 0, 100, Need.GoalType.MONETARY, false, "");          when(cupboardService.getNeed(0)).thenReturn(need2);          user.addToBasket(need);          user.removeBasketNeed(need.getId());          user.addToBasket(need2); -        Need getNeed = cupboardService.getNeed(user.getNeeds()[0]); +        Need getNeed = cupboardService.getNeed(user.getBasket()[0]);          assertEquals(need2, getNeed); diff --git a/ufund-api/src/test/java/com/ufund/api/ufundapi/persistence/CupboardFileDAOTest.java b/ufund-api/src/test/java/com/ufund/api/ufundapi/persistence/CupboardFileDAOTest.java index f786a8c..76a8b40 100644 --- a/ufund-api/src/test/java/com/ufund/api/ufundapi/persistence/CupboardFileDAOTest.java +++ b/ufund-api/src/test/java/com/ufund/api/ufundapi/persistence/CupboardFileDAOTest.java @@ -4,6 +4,7 @@ import java.io.File;  import java.io.IOException;  import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse;  import static org.junit.jupiter.api.Assertions.assertNotEquals;  import static org.junit.jupiter.api.Assertions.assertNotNull;  import static org.junit.jupiter.api.Assertions.assertNull; @@ -20,44 +21,40 @@ import com.ufund.api.ufundapi.model.Need.GoalType;  @Tag("Persistence-tier")  public class CupboardFileDAOTest { -    private CupboardFileDAO cupboardFileDao; -    private Need[] testNeeds; -    private ObjectMapper mockObjectMapper; +	private CupboardFileDAO cupboardFileDao; +	private Need[] testNeeds;      @BeforeEach -    public void setupCupboardFileDao() throws IOException { -        mockObjectMapper = mock(ObjectMapper.class); -        testNeeds = new Need[]{ -        	new Need("one", 0, 100, Need.GoalType.MONETARY), -			new Need("two", 1, 100, Need.GoalType.MONETARY), -			new Need("three", 2, 100, Need.GoalType.MONETARY) +	public void setupCupboardFileDao() throws IOException { +        ObjectMapper mockObjectMapper = mock(ObjectMapper.class); +		testNeeds = new Need[] { +				new Need("one", "", "Atlantis", 0, 100, Need.GoalType.MONETARY, false, ""), +				new Need("two", "", "Atlantis", 1, 100, Need.GoalType.MONETARY, false, ""), +				new Need("three", "", "Atlantis", 2, 100, Need.GoalType.MONETARY, false, "")  		}; -        // When the object mapper is supposed to read from the file -        // the mock object mapper will return the hero array above -        when(mockObjectMapper -            .readValue(new File("doesnt_matter.txt"),Need[].class)) -                .thenReturn(testNeeds); -        cupboardFileDao = new CupboardFileDAO("doesnt_matter.txt",mockObjectMapper); -    } - -    @Test -    public void getNeedsTest() { -        Need[] needs = cupboardFileDao.getNeeds(); -        assertEquals(needs.length,testNeeds.length); +		// When the object mapper is supposed to read from the file +		// the mock object mapper will return the hero array above +		when(mockObjectMapper.readValue(new File("doesnt_matter.txt"), Need[].class)).thenReturn(testNeeds); +		cupboardFileDao = new CupboardFileDAO("doesnt_matter.txt", mockObjectMapper); +	} + +	@Test +	public void getNeedsTest() { +		Need[] needs = cupboardFileDao.getNeeds(); +		assertEquals(needs.length, testNeeds.length);  		assertEquals(needs[0].getName(), testNeeds[0].getName()); -    } +	} -    @Test -    public void getNeedTest() { +	@Test +	public void getNeedTest() {  		Need need1 = cupboardFileDao.getNeed(0); -	 +  		assertEquals(testNeeds[0], need1); -    } +	}  	@Test  	public void createNeedTest() throws IOException { -		Need newNeed = new Need("sea urchin hats", 3, 100, GoalType.PHYSICAL); -		 +		Need newNeed = new Need("sea urchin hats", "", "Atlantis", 100, GoalType.PHYSICAL, false, "");  		Need actualNeed = cupboardFileDao.addNeed(newNeed); @@ -79,16 +76,37 @@ public class CupboardFileDAOTest {  	}  	@Test +	public void deleteNeedTestFail() throws IOException { +		Need undeletedNeed = cupboardFileDao.getNeed(0); +		assertNotNull(undeletedNeed); + +		boolean nullNeed = cupboardFileDao.deleteNeed(20); +		assertFalse(nullNeed); +	} + +	@Test  	public void updateNeedTest() throws IOException {  		Need[] needs = cupboardFileDao.getNeeds();  		Need unupdatedNeed = needs[needs.length - 1];  		assertNotNull(unupdatedNeed); -		Need updatedNeed = new Need("sequin sea urchin hats", 2, 100, GoalType.PHYSICAL); +		Need updatedNeed = new Need("sequin sea urchin hats", "", "Atlantis", 100, GoalType.PHYSICAL, false, "");  		Need actualNeed = cupboardFileDao.updateNeed(updatedNeed);  		assertEquals(actualNeed, updatedNeed);  		assertNotEquals(actualNeed, unupdatedNeed);  	} +	@Test +	public void updateNeedTestFail() throws IOException { +		Need[] needs = cupboardFileDao.getNeeds(); +		Need unupdatedNeed = needs[needs.length - 1]; +		assertNotNull(unupdatedNeed); + +		Need updatedNeed = new Need("sequin sea urchin hats", "", "Atlantis", 5, 100, GoalType.PHYSICAL, false, ""); + +		Need actualNeed = cupboardFileDao.updateNeed(updatedNeed); +		assertNull(actualNeed); +	} +  } diff --git a/ufund-api/src/test/java/com/ufund/api/ufundapi/persistence/UserAuthFileDAOTest.java b/ufund-api/src/test/java/com/ufund/api/ufundapi/persistence/UserAuthFileDAOTest.java index f7db747..a4842c5 100644 --- a/ufund-api/src/test/java/com/ufund/api/ufundapi/persistence/UserAuthFileDAOTest.java +++ b/ufund-api/src/test/java/com/ufund/api/ufundapi/persistence/UserAuthFileDAOTest.java @@ -2,6 +2,7 @@ package com.ufund.api.ufundapi.persistence;  import java.io.File;  import java.io.IOException; +import java.time.LocalDateTime;  import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;  import static org.junit.jupiter.api.Assertions.assertEquals; @@ -18,22 +19,21 @@ import com.ufund.api.ufundapi.model.UserAuth;  public class UserAuthFileDAOTest {      private UserAuthFIleDAO userAuthFIleDAO; -    private ObjectMapper mockObjectMapper;      private UserAuth[] userAuths;      @BeforeEach      public void setupUserAuthFileDAO() throws IOException { -        mockObjectMapper = mock(ObjectMapper.class); +        ObjectMapper mockObjectMapper = mock(ObjectMapper.class);          userAuths = new UserAuth[]{ -        	new UserAuth("123", "Phil", null), -            new UserAuth("456", "Bob", null), -            new UserAuth("789", "Steve", null) +        	new UserAuth("123", "Phil", LocalDateTime.MAX), +            new UserAuth("456", "Bob", LocalDateTime.MAX), +            new UserAuth("789", "Steve", LocalDateTime.MAX)  		};          // When the object mapper is supposed to read from the file          // the mock object mapper will return the hero array above          when(mockObjectMapper -            .readValue(new File("doesnt_matter.txt"),UserAuth[].class)) +                .readValue(new File("doesnt_matter.txt"),UserAuth[].class))                  .thenReturn(userAuths);          userAuthFIleDAO = new UserAuthFIleDAO(mockObjectMapper, "doesnt_matter.txt");      } @@ -43,18 +43,18 @@ public class UserAuthFileDAOTest {          String key = "123";          UserAuth auth = userAuthFIleDAO.getUserAuth(key); -        assertEquals(auth, userAuths[0]); +        assertEquals(userAuths[0], auth);      }      @Test -    public void addUserAuthTest() throws IOException { +    public void addUserAuthTest() {          UserAuth auth = new UserAuth("999", "Fish", null);          assertDoesNotThrow(() -> userAuthFIleDAO.addUserAuth(auth));      }      @Test -    public void removeUserAuthTest() throws IOException { +    public void removeUserAuthTest() {          String key = "123";          assertDoesNotThrow(() -> userAuthFIleDAO.removeUserAuth(key)); diff --git a/ufund-api/src/test/java/com/ufund/api/ufundapi/persistence/UserFileDAOTest.java b/ufund-api/src/test/java/com/ufund/api/ufundapi/persistence/UserFileDAOTest.java index 9361188..2ee0fc0 100644 --- a/ufund-api/src/test/java/com/ufund/api/ufundapi/persistence/UserFileDAOTest.java +++ b/ufund-api/src/test/java/com/ufund/api/ufundapi/persistence/UserFileDAOTest.java @@ -39,6 +39,24 @@ public class UserFileDAOTest {          userFileDAO = new UserFileDAO("doesnt_matter.txt",mockObjectMapper);      } +	@Test +	public void addUsersTest() throws IOException { +		User user = User.create("Name", "Pass"); + +		User addedUser = userFileDAO.addUser(user); + +		assertEquals(addedUser, user); +	} + +	@Test +	public void addUsersTestFail() throws IOException { +		User user = User.create("bob", "test"); + +		User existingUser = userFileDAO.addUser(user); + +		assertEquals(existingUser, testUsers[0]); +	} +      @Test      public void getUsersTest() {          User[] users = userFileDAO.getUsers(); diff --git a/ufund-api/src/test/java/com/ufund/api/ufundapi/service/AuthServiceTest.java b/ufund-api/src/test/java/com/ufund/api/ufundapi/service/AuthServiceTest.java index 55cf7a9..4f58b12 100644 --- a/ufund-api/src/test/java/com/ufund/api/ufundapi/service/AuthServiceTest.java +++ b/ufund-api/src/test/java/com/ufund/api/ufundapi/service/AuthServiceTest.java @@ -11,7 +11,6 @@ import org.junit.jupiter.api.BeforeEach;  import org.junit.jupiter.api.Tag;  import org.junit.jupiter.api.Test; -import com.ufund.api.ufundapi.DuplicateKeyException;  import com.ufund.api.ufundapi.model.User;  import com.ufund.api.ufundapi.model.UserAuth;  import com.ufund.api.ufundapi.persistence.UserAuthDAO; @@ -41,39 +40,39 @@ public class AuthServiceTest {      }      @Test -    public void testAuthenticate() throws IOException { +    public void testKeyIsValid() throws IOException {          // Mock          when(mockAuthDAO.getUserAuth(key)).thenReturn(new UserAuth(key, username, null));          when(mockUserService.getUser(username)).thenReturn(user);          // Analyze -        assertDoesNotThrow(() -> authService.authenticate(username, key)); +        assertDoesNotThrow(() -> authService.keyHasAccessToUser(username, key));      } -//    @Test -//    public void testAuthenticateMismatchName() throws IOException { -//        // Mock -//        when(mockAuthDAO.getUserAuth(key)).thenReturn(new UserAuth(key, "EvilFish", null)); -//        when(mockUserService.getUser("EvilFish")).thenReturn(user); -// -//        // Analyze -//        assertThrows(IllegalAccessException.class, () -> authService.authenticate(username, key)); -// -//    } +    @Test +    public void testKeyIsValidMismatchName() throws IOException { +        // Mock +        when(mockAuthDAO.getUserAuth(key)).thenReturn(new UserAuth(key, "EvilFish", null)); +        when(mockUserService.getUser("EvilFish")).thenReturn(user); + +        // Analyze +        assertThrows(IllegalAccessException.class, () -> authService.keyHasAccessToUser(username, key)); + +    }      @Test -    public void testAuthenticateMissingUserAuth() throws IOException { +    public void testKeyIsValidMissingUserAuth() throws IOException {          // Mock          when(mockAuthDAO.getUserAuth(key)).thenReturn(null);          // Analyze -        assertThrows(IllegalAccessException.class, () -> authService.authenticate(username, key)); +        assertThrows(IllegalAccessException.class, () -> authService.keyHasAccessToUser(username, key));      }      @Test -    public void testLogin() throws IOException, DuplicateKeyException, IllegalAccessException { +    public void testLogin() throws IOException {          // Mock          when(mockUserService.getUser(username)).thenReturn(user); @@ -83,7 +82,7 @@ public class AuthServiceTest {      }      @Test -    public void testLoginNullUser() throws IOException, DuplicateKeyException, IllegalAccessException { +    public void testLoginNullUser() throws IOException {          // Mock          when(mockUserService.getUser(username)).thenReturn(null); @@ -92,7 +91,7 @@ public class AuthServiceTest {      }      @Test -    public void testLoginMismatchPasswords() throws IOException, DuplicateKeyException, IllegalAccessException { +    public void testLoginMismatchPasswords() throws IOException {          // Mock          when(mockUserService.getUser(username)).thenReturn(User.create(username, "fries")); @@ -101,7 +100,7 @@ public class AuthServiceTest {      }      @Test -    public void testLogout() throws IOException, DuplicateKeyException, IllegalAccessException { +    public void testLogout() {          // Analyze          assertDoesNotThrow(() -> authService.logout(key)); diff --git a/ufund-api/src/test/java/com/ufund/api/ufundapi/service/CupboardServiceTest.java b/ufund-api/src/test/java/com/ufund/api/ufundapi/service/CupboardServiceTest.java index 99ca23c..2a3c8ee 100644 --- a/ufund-api/src/test/java/com/ufund/api/ufundapi/service/CupboardServiceTest.java +++ b/ufund-api/src/test/java/com/ufund/api/ufundapi/service/CupboardServiceTest.java @@ -27,7 +27,8 @@ public class CupboardServiceTest {      @BeforeEach      public void setupCupboardService() {          mockCupboardDAO = mock(CupboardDAO.class); -        cupboardService = new CupboardService(mockCupboardDAO); +        AuthService mockAuthService = mock(AuthService.class); +        cupboardService = new CupboardService(mockAuthService, mockCupboardDAO);      } @@ -35,16 +36,20 @@ public class CupboardServiceTest {      public void testCreateNeed() throws IOException, DuplicateKeyException {          // Setup          String name = "Jellyfish"; -        double maxGoal = 100.00; -        GoalType type = GoalType.MONETARY; -        Need need = new Need(name, type, maxGoal); +        String location = "Atlantis"; +        double maxGoal = 100; +        GoalType type = Need.GoalType.MONETARY; +        boolean urgent = false; +        String image = ""; +        String description = ""; +        var need = new Need(name, image, location, maxGoal, type, urgent, description);          // When the same id is passed in, our mock User DAO will return the User object          when(mockCupboardDAO.addNeed(any())).thenReturn(need);          when(mockCupboardDAO.getNeeds()).thenReturn(new Need[0]);          // Invoke -        Need response = cupboardService.createNeed(name, maxGoal, type); +        Need response = cupboardService.createNeed(name, location, image, maxGoal, type, urgent, description);          // Analyze          assertNotNull(response); @@ -52,12 +57,16 @@ public class CupboardServiceTest {      }      @Test -    public void testCreateNeedBadGoal() throws IOException, DuplicateKeyException { +    public void testCreateNeedBadGoal() throws IOException {          // Setup          String name = "Jellyfish"; -        double maxGoal = -100.00; -        GoalType type = GoalType.MONETARY; -        Need need = new Need(name, type, maxGoal); +        String location = "Atlantis"; +        double maxGoal = -100.0; +        GoalType type = Need.GoalType.MONETARY; +        boolean urgent = false; +        String image = ""; +        String description = ""; +        var need = new Need(name, image, location, maxGoal, type, urgent, description);          // When the same id is passed in, our mock User DAO will return the User object          when(mockCupboardDAO.addNeed(any())).thenReturn(need); @@ -67,18 +76,21 @@ public class CupboardServiceTest {          // Need response = cupboardService.createNeed(name, maxGoal, type);          // Analyze -        assertThrows(IllegalArgumentException.class, () -> { -            cupboardService.createNeed(name, maxGoal, type); -        }); +        assertThrows(IllegalArgumentException.class, () -> +                cupboardService.createNeed(name, location, image, maxGoal, type, urgent, description));      }      @Test -    public void testCreateNeedDuplicate() throws IOException, DuplicateKeyException { +    public void testCreateNeedDuplicate() throws IOException {          // Setup          String name = "Jellyfish"; -        double maxGoal = 100.00; -        GoalType type = GoalType.MONETARY; -        Need need = new Need(name, type, maxGoal); +        String location = "Atlantis"; +        double maxGoal = 100.0; +        GoalType type = Need.GoalType.MONETARY; +        boolean urgent = false; +        String image = ""; +        String description = ""; +        var need = new Need(name, image, location, maxGoal, type, urgent, description);          Need[] needs = { need };          // When the same id is passed in, our mock User DAO will return the User object @@ -89,18 +101,21 @@ public class CupboardServiceTest {          // Need response = cupboardService.createNeed(name, maxGoal, type);          // Analyze -        assertThrows(DuplicateKeyException.class, () -> { -            cupboardService.createNeed(name, maxGoal, type); -        }); +        assertThrows(DuplicateKeyException.class, () -> +                cupboardService.createNeed(name, location, image, maxGoal, type, urgent, description));      }      @Test -    public void testSearchNeeds() throws IOException, DuplicateKeyException { +    public void testSearchNeeds() throws IOException {          // Setup          String name = "Jellyfish"; -        double maxGoal = 100.00; -        GoalType type = GoalType.MONETARY; -        Need need = new Need(name, type, maxGoal); +        String location = "Atlantis"; +        double maxGoal = 100.0; +        GoalType type = Need.GoalType.MONETARY; +        boolean urgent = false; +        String image = ""; +        String description = ""; +        var need = new Need(name, image, location, maxGoal, type, urgent, description);          Need[] needs = { need };          // When the same id is passed in, our mock User DAO will return the User object @@ -115,12 +130,16 @@ public class CupboardServiceTest {      }      @Test -    public void testSearchNeedsFail() throws IOException, DuplicateKeyException { +    public void testSearchNeedsFail() throws IOException {          // Setup          String name = "Jellyfish"; -        double maxGoal = 100.00; -        GoalType type = GoalType.MONETARY; -        Need need = new Need(name, type, maxGoal); +        String location = "Atlantis"; +        double maxGoal = 100.0; +        GoalType type = Need.GoalType.MONETARY; +        boolean urgent = false; +        String image = ""; +        String description = ""; +        var need = new Need(name, image, location, maxGoal, type, urgent, description);          Need[] needs = { need };          // When the same id is passed in, our mock User DAO will return the User object @@ -134,59 +153,68 @@ public class CupboardServiceTest {      }      @Test -    public void testGetNeed() throws IOException, DuplicateKeyException { +    public void testGetNeed() throws IOException {          // Setup          String name = "Jellyfish"; -        double maxGoal = 100.00; -        int id = 0; -        GoalType type = GoalType.MONETARY; -        Need need = new Need(name, type, maxGoal); +        String location = "Atlantis"; +        double maxGoal = 100.0; +        GoalType type = Need.GoalType.MONETARY; +        boolean urgent = false; +        String image = ""; +        String description = ""; +        var need = new Need(name, image, location, maxGoal, type, urgent, description);          // When the same id is passed in, our mock User DAO will return the User object -        when(mockCupboardDAO.getNeed(id)).thenReturn(need); +        when(mockCupboardDAO.getNeed(0)).thenReturn(need);          // Invoke -        Need response = cupboardService.getNeed(id); +        Need response = cupboardService.getNeed(need.getId());          // Analyze          assertEquals(need, response);      }      @Test -    public void testUpdateNeed() throws IOException, DuplicateKeyException { +    public void testUpdateNeed() throws IOException {          // Setup          String name = "Jellyfish"; -        double maxGoal = 100.00; -        int id = 0; -        GoalType type = GoalType.MONETARY; -        Need need = new Need(name, type, maxGoal); -        Need newNeed = new Need("Octopus", type, maxGoal); +        String location = "Atlantis"; +        double maxGoal = 100.0; +        GoalType type = Need.GoalType.MONETARY; +        boolean urgent = false; +        String image = ""; +        String description = ""; +        var need = new Need(name, image, location, maxGoal, type, urgent, description); +        Need newNeed = new Need("Octopus", image, location, maxGoal, type, urgent, description);          // When the same id is passed in, our mock User DAO will return the User object          when(mockCupboardDAO.updateNeed(any())).thenReturn(newNeed);          // Invoke -        Need response = cupboardService.updateNeed(newNeed, id); +        Need response = cupboardService.updateNeed(newNeed, need.getId());          // Analyze          assertEquals(newNeed, response);      }      @Test -    public void testDeleteNeed() throws IOException, DuplicateKeyException { +    public void testDeleteNeed() throws IOException {          // Setup          String name = "Jellyfish"; -        double maxGoal = 100.00; -        int id = 0; -        GoalType type = GoalType.MONETARY; -        Need need = new Need(name, type, maxGoal); +        String location = "Atlantis"; +        double maxGoal = 100.0; +        GoalType type = Need.GoalType.MONETARY; +        boolean urgent = false; +        String image = ""; +        String description = ""; +        var need = new Need(name, image, location, maxGoal, type, urgent, description);          // When the same id is passed in, our mock User DAO will return the User object -        when(mockCupboardDAO.deleteNeed(id)).thenReturn(true); +        when(mockCupboardDAO.deleteNeed(0)).thenReturn(true);          when(mockCupboardDAO.getNeeds()).thenReturn(new Need[0]);          // Invoke -        boolean response = cupboardService.deleteNeed(id); +        boolean response = cupboardService.deleteNeed(need.getId());          Need[] responseNeeds = cupboardService.getNeeds();          // Analyze diff --git a/ufund-api/src/test/java/com/ufund/api/ufundapi/service/UserServiceTest.java b/ufund-api/src/test/java/com/ufund/api/ufundapi/service/UserServiceTest.java index e57c5a3..5adabf1 100644 --- a/ufund-api/src/test/java/com/ufund/api/ufundapi/service/UserServiceTest.java +++ b/ufund-api/src/test/java/com/ufund/api/ufundapi/service/UserServiceTest.java @@ -19,13 +19,12 @@ public class UserServiceTest {      private UserService userService;      private UserDAO mockUserDAO; -    private CupboardService mockCupboardService;      @BeforeEach      public void setupUserService() {          mockUserDAO = mock(UserDAO.class); -        mockCupboardService = mock(CupboardService.class); +        CupboardService mockCupboardService = mock(CupboardService.class);          userService = new UserService(mockUserDAO, mockCupboardService);      } @@ -47,7 +46,7 @@ public class UserServiceTest {      }      @Test -    public void testCreateUserDuplicate() throws IOException, DuplicateKeyException { +    public void testCreateUserDuplicate() throws IOException {          // Setup          String username = "Jelly";          String password = "Fish"; @@ -62,7 +61,7 @@ public class UserServiceTest {      }      @Test -    public void testGetUser() throws IOException, DuplicateKeyException { +    public void testGetUser() throws IOException {          // Setup          String username = "Jelly";          String password = "Fish"; @@ -76,7 +75,7 @@ public class UserServiceTest {      }      @Test -    public void testUpdateUser() throws IOException, DuplicateKeyException { +    public void testUpdateUser() throws IOException {          // Setup          String username = "Jelly";          String password = "Fish"; @@ -94,7 +93,7 @@ public class UserServiceTest {      }      @Test -    public void testUpdateUserDifferentUsernames() throws IOException, DuplicateKeyException { +    public void testUpdateUserDifferentUsernames() throws IOException {          // Setup          String username = "Jelly";          String password = "Fish"; @@ -112,7 +111,7 @@ public class UserServiceTest {      }      @Test -    public void testDeleteUser() throws IOException, DuplicateKeyException { +    public void testDeleteUser() throws IOException {          // Setup          String username = "Jelly";          String password = "Fish";  | 
