package org.berzerkula.builddb; import org.berzerkula.builddb.models.AppUser; import org.berzerkula.builddb.repositories.TestH2AppUserRepository; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import java.util.Date; import java.util.List; import static org.junit.jupiter.api.Assertions.*; @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) class BuilddbApplicationAppUserTests { private String firstName = "John"; private String lastName = "Doe"; private String email = "john.doe@example.com"; private String phone = "870-555-5555"; private String address = "612 Wolf Avenue"; private String password = "johndoesecret"; private String role = BuilddbConstants.ROLE_CLIENT; private Date createdAt = new Date(); @Autowired private TestH2AppUserRepository h2Repository; private AppUser testUser = new AppUser(); @BeforeEach public void setUp() { h2Repository.deleteAll(); testUser = setUserDetails(firstName, lastName, email, phone, address, password, role, createdAt); h2Repository.save(testUser); } @Test void testAddAppUser() { testUser.setEmail("john.doe2@example.com"); h2Repository.save(testUser); List responsePkgs = h2Repository.findAll(); assertNotNull(responsePkgs); assertEquals("john.doe2@example.com", responsePkgs.get(0).getEmail()); } @Test void testGetAppUser() { h2Repository.save(testUser); assertEquals(1, h2Repository.findAll().size()); } @Test void testUpdateAppUser() { List users = h2Repository.findAll(); testUser = users.get(0); testUser.setFirstName("Jack"); h2Repository.save(testUser); users = h2Repository.findAll(); assertEquals(1, users.size()); assertNotEquals(0, testUser.getId()); assertEquals("Jack", testUser.getFirstName()); } @Test void tsetDeleteAppUser() { List users = h2Repository.findAll(); testUser = users.get(0); h2Repository.delete(testUser); users = h2Repository.findAll(); assertEquals(0, users.size()); } private AppUser setUserDetails(String firstName, String lastName, String email, String phone, String address, String password, String role, Date createdAt) { testUser.setFirstName(firstName); testUser.setLastName(lastName); testUser.setEmail(email); testUser.setPhone(phone); testUser.setAddress(address); testUser.setPassword(password); testUser.setRole(role); testUser.setCreatedAt(createdAt); return testUser; } }