/* package NTNU.IDATT1002.repository; import NTNU.IDATT1002.models.Login; import NTNU.IDATT1002.models.User; import NTNU.IDATT1002.utils.Authentication; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Optional; import static org.junit.jupiter.api.Assertions.*; */ /** * Tests for {@link LoginRepository} * * @author madslun * @version 1.0 17.03.20 *//* class LoginRepositoryTest { private LoginRepository loginRepository; private String username1; private String username2; private String password; private String newPassword; private Date date; private User user1; private User user2; private Login login1; private Login login2; */ /** * Sets up some testdata for thorough testing * So much information has been added for making sure every part works as intended *//* @BeforeEach public void setUp() { EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("ImageApplicationTest"); EntityManager entityManager = entityManagerFactory.createEntityManager(); loginRepository = new LoginRepository(entityManager); username1 = "test1"; username2 = "test2"; password = "Test123"; newPassword = "Test321"; date = new Date(System.currentTimeMillis()); user1 = new User(username1,"email","firstName", "lastName", "test" , "test", date); user2 = new User(username2, "email2" , "firstName2", "lastName2", "test2", "test2", date); login1 = new Login(user1, "test", "test"); login2 = new Login(user2, "test2", "test2"); } */ /** * Test that saving an entity returns the saved instance *//* @Test void testSaveReturnsInstance() { Optional<Login> optionalLogin = loginRepository.save(login1); assertTrue(optionalLogin.isPresent()); } */ /** * Test that finding all entities returns all entities *//* @Test void testSaveReturnsAllSavedEntities() { loginRepository.save(login1); loginRepository.save(login2); List<?> foundLogins = loginRepository.findAll(); assertEquals(2, foundLogins.size()); } */ /** * Test that saving invalid entity will fail and return empty optional *//* @Test void testSaveInvalidEntityReturnsEmptyOptional() { Optional<Login> savedLogin = loginRepository.save(null); assertTrue(savedLogin.isEmpty()); } */ /** * Test that finding entity by id returns optional with the correct id *//* @Test void testFindByIdReturnsOptionalWithEntityWithId() { loginRepository.save(login1); Optional<Login> foundLogins = loginRepository.findById(username1); assertTrue(foundLogins.isPresent()); assertEquals(username1, foundLogins.get().getUser().getUsername()); } */ /** * Test that deleting by id removes the given entity and returns empty optional *//* @Test void testDeleteById() { loginRepository.save(login1); Optional<Login> foundLogins = loginRepository.findById(username1); foundLogins.ifPresent(Login -> loginRepository.deleteById(username1)); Optional<Login> deletedLogin = loginRepository.findById(username1); assertTrue(deletedLogin.isEmpty()); } */ /** * Test that count returns correct amount of enities *//* @Test void testCountReturnsAmountOfSavedEntities() { loginRepository.save(login1); loginRepository.save(login2); long loginCount = loginRepository.count(); assertEquals(2, loginCount); } */ /** * Test that a created user can log in *//* @Test void testLogin() { ArrayList<String> credentials = Authentication.setPassword(password); String salt = credentials.get(0); String hash = credentials.get(1); Login login3 = new Login(user1, salt, hash); loginRepository.save(login3); assertTrue(loginRepository.logIn(username1, password)); } */ /** * Test that a created user can change the password *//* @Test void testChangePassword() { ArrayList<String> credentials = Authentication.setPassword(password); String salt = credentials.get(0); String hash = credentials.get(1); Login login3 = new Login(user1, salt, hash); loginRepository.save(login3); assertTrue(loginRepository.changePassword(username1, password, newPassword)); } */ /** * Test that a user can log in, change password then log in again *//* @Test void testLoginWithNewPassword() { ArrayList<String> credentials = Authentication.setPassword(password); String salt = credentials.get(0); String hash = credentials.get(1); Login login3 = new Login(user1, salt, hash); loginRepository.save(login3); assertTrue(loginRepository.logIn(username1, password)); assertTrue(loginRepository.changePassword(username1, password, newPassword)); assertTrue(loginRepository.logIn(username1, newPassword)); } */ /** * Test that trying to login with wrong password returns false *//* @Test void testWrongPasswordDoesNotLogIn() { ArrayList<String> credentials = Authentication.setPassword(password); String salt = credentials.get(0); String hash = credentials.get(1); Login login3 = new Login(user1, salt, hash); loginRepository.save(login3); assertFalse(loginRepository.logIn(username1, newPassword)); } */ /** * Test that trying to change password with wrong password returns false *//* @Test void testWrongPasswordDoesNotChangePassword() { ArrayList<String> credentials = Authentication.setPassword(password); String salt = credentials.get(0); String hash = credentials.get(1); Login login3 = new Login(user1, salt, hash); loginRepository.save(login3); assertFalse(loginRepository.changePassword(username1, newPassword, password)); assertTrue(loginRepository.logIn(username1, password)); } */ /** * Test that trying to login with null returns false *//* @Test void testLoginWithNullReturnsFalse() { ArrayList<String> credentials = Authentication.setPassword(password); String salt = credentials.get(0); String hash = credentials.get(1); Login login3 = new Login(user1, salt, hash); loginRepository.save(login3); assertFalse(loginRepository.logIn(username1, null)); } */ /** * Test that trying to login with null returns false *//* @Test void testChangeWithNullReturnsFalse() { ArrayList<String> credentials = Authentication.setPassword(password); String salt = credentials.get(0); String hash = credentials.get(1); Login login3 = new Login(user1, salt, hash); loginRepository.save(login3); assertFalse(loginRepository.changePassword(username1, null, newPassword)); } }*/