package com.ufund.api.ufundapi.model; 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.assertNotNull; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import com.ufund.api.ufundapi.service.CupboardService; @Tag("Model-tier") public class UserTest { private CupboardService cupboardService; @BeforeEach public void setup() { cupboardService = mock(CupboardService.class); } @Test public void createUser() { String name = "Bob"; User user = User.create(name, "pass"); assertNotNull(user); } @Test public void testUsername() { String expectedName = "Bob"; String password = "password"; User user = User.create(expectedName, password); assertEquals(expectedName, user.getUsername()); } @Test public void addNeedToBasket() throws IOException { String expectedName = "Bob"; User user = User.create(expectedName, "pass"); Need need = new Need("Test", 0, 100, Need.GoalType.MONETARY); Need[] needs = { need }; when(cupboardService.getNeed(0)).thenReturn(need); user.addToBasket(need); Need getNeed = cupboardService.getNeed(user.getBasket()[0]); assertEquals(needs[0], getNeed); } @Test public void testRemoveBasketNeed() throws IOException { 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); when(cupboardService.getNeed(0)).thenReturn(need2); user.addToBasket(need); user.removeBasketNeed(need.getId()); user.addToBasket(need2); Need getNeed = cupboardService.getNeed(user.getBasket()[0]); assertEquals(need2, getNeed); } @Test public void testVerifyPassword() { String expectedName = "Bob"; User user = User.create(expectedName, "pass"); assertFalse(user.verifyPassword(expectedName)); } }