diff options
Diffstat (limited to 'src/test/java/org/berzerkula')
12 files changed, 700 insertions, 0 deletions
diff --git a/src/test/java/org/berzerkula/builddb/BuilddbApplicationAppUserTests.java b/src/test/java/org/berzerkula/builddb/BuilddbApplicationAppUserTests.java new file mode 100644 index 0000000..0cf02d1 --- /dev/null +++ b/src/test/java/org/berzerkula/builddb/BuilddbApplicationAppUserTests.java @@ -0,0 +1,111 @@ +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 { + + /*@LocalServerPort + private int port; + + private String baseUrl = "http://localhost:" + port + "/"; + private String basePkgUrl = "http://localhost:" + port + "/pkgs";*/ + + 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 = "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 + public void testAddAppUser() { + testUser = setUserDetails(firstName, lastName, "john.doe2@example.com", phone, address, password, role, createdAt); + h2Repository.save(testUser); + List<AppUser> responsePkgs = h2Repository.findAll(); + assertNotNull(responsePkgs); + assertEquals(2, responsePkgs.size()); + assertEquals(firstName, responsePkgs.get(1).getFirstName()); + assertEquals(lastName, responsePkgs.get(1).getLastName()); + assertEquals("john.doe2@example.com", responsePkgs.get(1).getEmail()); + assertEquals(phone, responsePkgs.get(1).getPhone()); + assertEquals(address, responsePkgs.get(1).getAddress()); + assertEquals(password, responsePkgs.get(1).getPassword()); + assertEquals(role, responsePkgs.get(1).getRole()); + } + + @Test + public void testGetAppUser() { + h2Repository.save(testUser); + List<AppUser> users = h2Repository.findAll(); + assertEquals(1, users.size()); + assertEquals(1, h2Repository.findAll().size()); + assertEquals(createdAt, users.get(0).getCreatedAt()); + } + + @Test + public void testUpdateAppUser() { + List<AppUser> 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 + public void tsetDeleteAppUser() { + List<AppUser> 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) { + AppUser testUser = new AppUser(); + 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; + } + + @Test + void contextLoads() { + } + +} diff --git a/src/test/java/org/berzerkula/builddb/BuilddbApplicationPkgTests.java b/src/test/java/org/berzerkula/builddb/BuilddbApplicationPkgTests.java new file mode 100644 index 0000000..98272f6 --- /dev/null +++ b/src/test/java/org/berzerkula/builddb/BuilddbApplicationPkgTests.java @@ -0,0 +1,113 @@ +package org.berzerkula.builddb; + +import org.berzerkula.builddb.models.Pkg; +import org.berzerkula.builddb.repositories.TestH2PkgRepository; +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.List; + +import static org.junit.jupiter.api.Assertions.*; + +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +class BuilddbApplicationPkgTests { + + /*@LocalServerPort + private int port; + + private String baseUrl = "http://localhost:" + port + "/"; + private String basePkgUrl = "http://localhost:" + port + "/pkgs";*/ + + private Integer pkgSeq = 123; + private String pkgName = "test"; + private String pkgVersion = "1.2.3-test"; + private String pkgConfigure = "./configure --prefix=/opt/test"; + private String pkgBuild = "make test"; + private String pkgInstall = "make install-test"; + private String pkgSetup = "test setup."; + private String pkgNotes = "test notes."; + private String pkgUrl = "http://localhost/test-1.2.3-test.tar.gz"; + + @Autowired + private TestH2PkgRepository h2Repository; + + private Pkg testPkg = new Pkg(); + + @BeforeEach + public void setUp() { + h2Repository.deleteAll(); + testPkg = setPkgDetails(pkgSeq, pkgName, pkgVersion, pkgConfigure, pkgBuild, pkgInstall, pkgSetup, pkgNotes, pkgUrl); + h2Repository.save(testPkg); + } + + @Test + public void testAddPkg() { + testPkg = setPkgDetails(pkgSeq, pkgName, pkgVersion, pkgConfigure, pkgBuild, pkgInstall, pkgSetup, pkgNotes, pkgUrl); + h2Repository.save(testPkg); + List<Pkg> responsePkgs = h2Repository.findAll(); + assertNotNull(responsePkgs); + assertEquals(2, responsePkgs.size()); + assertEquals(pkgSeq, responsePkgs.get(1).getSequence()); + assertEquals(pkgName, responsePkgs.get(1).getName()); + assertEquals(pkgVersion, responsePkgs.get(1).getVersion()); + assertEquals(pkgConfigure, responsePkgs.get(1).getConfigure()); + assertEquals(pkgBuild, responsePkgs.get(1).getBuild()); + assertEquals(pkgInstall, responsePkgs.get(1).getInstall()); + assertEquals(pkgSetup, responsePkgs.get(1).getSetup()); + assertEquals(pkgNotes, responsePkgs.get(1).getNotes()); + assertEquals(pkgUrl, responsePkgs.get(1).getUrl()); + } + + @Test + public void testGetPkgs() { + h2Repository.save(testPkg); + List<Pkg> pkgs = h2Repository.findAll(); + assertEquals(1, pkgs.size()); + assertEquals(1, h2Repository.findAll().size()); + } + + @Test + public void testUpdatePkg() { + List<Pkg> pkgs = h2Repository.findAll(); + testPkg = pkgs.get(0); + testPkg.setSequence(987); + h2Repository.save(testPkg); + + pkgs = h2Repository.findAll(); + assertEquals(1, pkgs.size()); + assertNotEquals(0, testPkg.getId()); + assertEquals(987, testPkg.getSequence()); + } + + @Test + public void tsetDeletePkg() { + List<Pkg> pkgs = h2Repository.findAll(); + testPkg = pkgs.get(0); + h2Repository.delete(testPkg); + pkgs = h2Repository.findAll(); + + assertEquals(0, pkgs.size()); + } + + private Pkg setPkgDetails(Integer seq, String name, String version, String configure, String build, + String install, String setup, String notes, String url) { + Pkg pkg = new Pkg(); + pkg.setSequence(seq); + pkg.setName(name); + pkg.setVersion(version); + pkg.setConfigure(configure); + pkg.setBuild(build); + pkg.setInstall(install); + pkg.setSetup(setup); + pkg.setNotes(notes); + pkg.setUrl(url); + return pkg; + } + + @Test + void contextLoads() { + } + +} diff --git a/src/test/java/org/berzerkula/builddb/BuilddbApplicationTest.java b/src/test/java/org/berzerkula/builddb/BuilddbApplicationTest.java new file mode 100644 index 0000000..57604be --- /dev/null +++ b/src/test/java/org/berzerkula/builddb/BuilddbApplicationTest.java @@ -0,0 +1,24 @@ +package org.berzerkula.builddb; + +import org.assertj.core.api.Assertions; +import org.berzerkula.builddb.services.AppUserService; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class BuilddbApplicationTest { + + @Autowired + AppUserService appUserService; + + @Test + public void contextLoads() { + Assertions.assertThat(appUserService).isNotNull(); + } + + @Test + public void main() { + BuilddbApplication.main(new String[] {}); + } +}
\ No newline at end of file diff --git a/src/test/java/org/berzerkula/builddb/controllers/BuilddbTestAccountController.java b/src/test/java/org/berzerkula/builddb/controllers/BuilddbTestAccountController.java new file mode 100644 index 0000000..50548fd --- /dev/null +++ b/src/test/java/org/berzerkula/builddb/controllers/BuilddbTestAccountController.java @@ -0,0 +1,137 @@ +package org.berzerkula.builddb.controllers; + +import org.berzerkula.builddb.config.SecurityConfig; +import org.berzerkula.builddb.models.AppUser; +import org.berzerkula.builddb.repositories.AppUserRepository; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Import; +import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.test.web.servlet.MockMvc; + +import java.util.Date; + +import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.csrf; +import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.user; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.view; + +@Import(SecurityConfig.class) +@AutoConfigureMockMvc +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) + +public class BuilddbTestAccountController { + + @Autowired + private AppUserRepository appUserRepository; + + @Autowired + private MockMvc mockMvc; + + @Test + public void shouldReturnIndexOk() throws Exception { + mockMvc.perform(get("/")) + .andExpect(status().isOk()) + .andExpect(view().name("index")) + .andDo(print()); + } + + @Test + public void shouldReturnLoginOk() throws Exception { + mockMvc.perform(get("/login")) + .andExpect(status().isOk()) + .andExpect(view().name("login")) + .andDo(print()); + } + + @Test + public void shouldProfileRedirectToLogin() throws Exception { + mockMvc.perform(get("/profile")) + .andExpect(status().is3xxRedirection()) + .andDo(print()); + } + + @WithMockUser(roles="client") + @Test + public void shouldReturnProfileView() throws Exception { + + AppUser appUser = new AppUser(); + appUser.setFirstName("John"); + appUser.setLastName("Doe"); + appUser.setEmail("test@berzerkula.org"); + appUser.setPhone("555-555-5555"); + appUser.setAddress("612 Wolf Avenue"); + appUser.setRole("client"); + appUser.setPassword("password"); + appUser.setCreatedAt(new Date()); + appUserRepository.save(appUser); + + this.mockMvc.perform(get("/profile") + .with(user("test@berzerkula.org"))) + .andExpect(status().isOk()) + .andExpect(view().name("profile")) + .andDo(print()); + } + + @Test + public void shouldReturnRegisterOk() throws Exception { + mockMvc.perform(get("/register")) + .andExpect(status().isOk()) + .andExpect(view().name("register")) + .andDo(print()); + } + + @Test + public void shouldRegisterRequiredValidationError() throws Exception { + mockMvc.perform(post("/register") + .with(csrf()) + .formField("firstName", "") + .formField("lastName", "") + .formField("email", "") + .formField("phone", "") + .formField("address", "") + .formField("password", "") + .formField("confirmPassword", "")) + .andExpect(status().isOk()) + .andExpect(view().name("register")) + .andDo(print()); + } + + @Test + public void shouldRegisterPasswordValidationError() throws Exception { + mockMvc.perform(post("/register") + .with(csrf()) + .formField("firstName", "John") + .formField("lastName", "Doe") + .formField("email", "test@berzerkula.org") + .formField("phone", "") + .formField("address", "") + .formField("password", "password") + .formField("confirmPassword", "passwrd")) + .andExpect(status().isOk()) + .andExpect(view().name("register")) + .andDo(print()); + } + + @Test + public void shouldRegisterSuccess() throws Exception { + mockMvc.perform(post("/register") + .with(csrf()) + .formField("firstName", "John") + .formField("lastName", "Doe") + .formField("email", "test@berzerkula.org") + .formField("phone", "555-555-5555") + .formField("address", "612 Wolf Avenue") + .formField("password", "password") + .formField("confirmPassword", "password")) + .andExpect(status().isOk()) + .andExpect(view().name("register")) + .andDo(print()); + } + +} diff --git a/src/test/java/org/berzerkula/builddb/controllers/BuilddbTestDashboardController.java b/src/test/java/org/berzerkula/builddb/controllers/BuilddbTestDashboardController.java new file mode 100644 index 0000000..27944ce --- /dev/null +++ b/src/test/java/org/berzerkula/builddb/controllers/BuilddbTestDashboardController.java @@ -0,0 +1,62 @@ +package org.berzerkula.builddb.controllers; + +import org.berzerkula.builddb.config.SecurityConfig; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Import; +import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.test.web.servlet.MockMvc; + +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.view; + +@Import(SecurityConfig.class) +@AutoConfigureMockMvc +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) + +public class BuilddbTestDashboardController { + + @Autowired + private MockMvc mockMvc; + + @Test + @WithMockUser + public void shouldReturnActuatorDashboardView() throws Exception { + this.mockMvc.perform(get("/actuatorDashboard")) + .andExpect(status().isOk()) + .andExpect(view().name("actuatorDashboard")) + .andDo(print()); + } + + @Test + @WithMockUser + public void shouldReturnAdminView() throws Exception { + this.mockMvc.perform(get("/admin")) + .andExpect(status().isOk()) + .andExpect(view().name("admin")) + .andDo(print()); + } + + @Test + @WithMockUser + public void shouldReturnClientView() throws Exception { + this.mockMvc.perform(get("/client")) + .andExpect(status().isOk()) + .andExpect(view().name("client")) + .andDo(print()); + } + + @Test + @WithMockUser + public void shouldReturnUserView() throws Exception { + this.mockMvc.perform(get("/user")) + .andExpect(status().isOk()) + .andExpect(view().name("user")) + .andDo(print()); + } + +} diff --git a/src/test/java/org/berzerkula/builddb/controllers/BuilddbTestHomeController.java b/src/test/java/org/berzerkula/builddb/controllers/BuilddbTestHomeController.java new file mode 100644 index 0000000..94ae655 --- /dev/null +++ b/src/test/java/org/berzerkula/builddb/controllers/BuilddbTestHomeController.java @@ -0,0 +1,33 @@ +package org.berzerkula.builddb.controllers; + +import org.berzerkula.builddb.config.SecurityConfig; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Import; +import org.springframework.test.web.servlet.MockMvc; + +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.view; + +@Import(SecurityConfig.class) +@AutoConfigureMockMvc +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) + +public class BuilddbTestHomeController { + + @Autowired + private MockMvc mockMvc; + + @Test + void shouldReturnContactOk() throws Exception { + mockMvc.perform(get("/contact")) + .andExpect(status().isOk()) + .andExpect(view().name("contact")) + .andDo(print()); + } + +} diff --git a/src/test/java/org/berzerkula/builddb/controllers/BuilddbTestPkgController.java b/src/test/java/org/berzerkula/builddb/controllers/BuilddbTestPkgController.java new file mode 100644 index 0000000..6043aa1 --- /dev/null +++ b/src/test/java/org/berzerkula/builddb/controllers/BuilddbTestPkgController.java @@ -0,0 +1,89 @@ +package org.berzerkula.builddb.controllers; + +import org.berzerkula.builddb.config.SecurityConfig; +import org.berzerkula.builddb.models.Pkg; +import org.berzerkula.builddb.repositories.TestH2PkgRepository; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Import; +import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.test.web.servlet.MockMvc; + +import java.util.List; + +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.view; + +@Import(SecurityConfig.class) +@AutoConfigureMockMvc +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) + +public class BuilddbTestPkgController { + + @Autowired + private TestH2PkgRepository pkgRepository; + + @Autowired + private MockMvc mockMvc; + + @Test + @WithMockUser(roles="client") + public void shouldReturnEmptyPackageListView() throws Exception { + this.mockMvc.perform(get("/pkgs")) + .andExpect(status().isOk()) + .andExpect(view().name("pkgs/index")) + .andDo(print()); + } + + @Test + @WithMockUser(roles="client") + public void shouldReturnAddPackageView() throws Exception { + + this.mockMvc.perform(get("/pkgs/add")) + .andExpect(status().isOk()) + .andExpect(view().name("pkgs/add")) + .andDo(print()); + } + + @Test + @WithMockUser(roles="client") + public void shouldReturnEditPackageView() throws Exception { + + Pkg pkg = new Pkg(); + pkg.setSequence(1); + pkg.setName("test"); + pkg.setVersion("1.2.3"); + pkgRepository.save(pkg); + List<Pkg> pkgs = pkgRepository.findAll(); + pkg = pkgs.get(0); + Integer id = pkg.getId(); + + this.mockMvc.perform(get("/pkgs/edit?id=" + id)) + .andExpect(status().isOk()) + .andExpect(view().name("pkgs/edit")) + .andDo(print()); + } + + @Test + @WithMockUser(roles="client") + public void shouldGetPopupWhenDeletePackage() throws Exception { + + Pkg pkg = new Pkg(); + pkg.setSequence(1); + pkg.setName("test"); + pkg.setVersion("1.2.3"); + pkgRepository.save(pkg); + List<Pkg> pkgs = pkgRepository.findAll(); + pkg = pkgs.get(0); + Integer id = pkg.getId(); + + this.mockMvc.perform(get("/pkgs/delete?id=" + id)) + .andExpect(status().is3xxRedirection()) + .andExpect(view().name("redirect:/pkgs/")) + .andDo(print()); + } +} diff --git a/src/test/java/org/berzerkula/builddb/repositories/AppUserRepositoryTest.java b/src/test/java/org/berzerkula/builddb/repositories/AppUserRepositoryTest.java new file mode 100644 index 0000000..58ca267 --- /dev/null +++ b/src/test/java/org/berzerkula/builddb/repositories/AppUserRepositoryTest.java @@ -0,0 +1,31 @@ +package org.berzerkula.builddb.repositories; + +import org.assertj.core.api.Assertions; +import org.berzerkula.builddb.models.AppUser; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; +import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; + +@DataJpaTest +@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) +class AppUserRepositoryTest { + + @Autowired AppUserRepository appUserRepository; + + @Test + public void testCreateReadDelete() { + + AppUser appUser = new AppUser("John", "Doe", "john.doe@test.com", "", "", + "password","client"); + + appUserRepository.save(appUser); + + Iterable<AppUser> appUsers = appUserRepository.findAll(); + Assertions.assertThat(appUsers).extracting(AppUser::getFirstName).containsOnly("John"); + + appUserRepository.deleteAll(); + Assertions.assertThat(appUserRepository.findAll().isEmpty()); + } + +}
\ No newline at end of file diff --git a/src/test/java/org/berzerkula/builddb/repositories/PkgRepositoryTest.java b/src/test/java/org/berzerkula/builddb/repositories/PkgRepositoryTest.java new file mode 100644 index 0000000..0203fb0 --- /dev/null +++ b/src/test/java/org/berzerkula/builddb/repositories/PkgRepositoryTest.java @@ -0,0 +1,32 @@ +package org.berzerkula.builddb.repositories; + +import org.assertj.core.api.Assertions; +import org.berzerkula.builddb.models.Pkg; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; +import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; + +@DataJpaTest +@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) +class PkgRepositoryTest { + + @Autowired + PkgRepository pkgRepository; + + @Test + public void testCreateReadDelete() { + + Pkg pkg = new Pkg(123, "Test", "1.2.3", "", + "", "", "", "", ""); + + pkgRepository.save(pkg); + + Iterable<Pkg> pkgs = pkgRepository.findAll(); + Assertions.assertThat(pkgs).extracting(Pkg::getSequence).containsOnly(123); + + pkgRepository.deleteAll(); + Assertions.assertThat(pkgRepository.findAll().isEmpty()); + } + +}
\ No newline at end of file diff --git a/src/test/java/org/berzerkula/builddb/repositories/TestH2AppUserRepository.java b/src/test/java/org/berzerkula/builddb/repositories/TestH2AppUserRepository.java new file mode 100644 index 0000000..7473119 --- /dev/null +++ b/src/test/java/org/berzerkula/builddb/repositories/TestH2AppUserRepository.java @@ -0,0 +1,7 @@ +package org.berzerkula.builddb.repositories; + +import org.berzerkula.builddb.models.AppUser; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface TestH2AppUserRepository extends JpaRepository<AppUser, Integer> { +} diff --git a/src/test/java/org/berzerkula/builddb/repositories/TestH2PkgRepository.java b/src/test/java/org/berzerkula/builddb/repositories/TestH2PkgRepository.java new file mode 100644 index 0000000..5916ff2 --- /dev/null +++ b/src/test/java/org/berzerkula/builddb/repositories/TestH2PkgRepository.java @@ -0,0 +1,7 @@ +package org.berzerkula.builddb.repositories; + +import org.berzerkula.builddb.models.Pkg; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface TestH2PkgRepository extends JpaRepository<Pkg, Integer> { +} diff --git a/src/test/java/org/berzerkula/builddb/services/AppUserServiceTest.java b/src/test/java/org/berzerkula/builddb/services/AppUserServiceTest.java new file mode 100644 index 0000000..d3b19f7 --- /dev/null +++ b/src/test/java/org/berzerkula/builddb/services/AppUserServiceTest.java @@ -0,0 +1,54 @@ +package org.berzerkula.builddb.services; + +import org.berzerkula.builddb.models.AppUser; +import org.berzerkula.builddb.repositories.AppUserRepository; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.mockito.junit.jupiter.MockitoExtension; +import org.springframework.security.core.userdetails.UserDetails; + +import java.util.ArrayList; +import java.util.List; + +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.when; + +@ExtendWith(MockitoExtension.class) +class AppUserServiceTest { + + @InjectMocks + private AppUserService appUserService; + + @Mock + AppUserRepository appUserRepository; + + @BeforeEach + public void init() { + MockitoAnnotations.initMocks(this); + } + + @Test + void testFindByEmailAndNullOrNotNull() { + + List<AppUser> appUsers = new ArrayList<AppUser>(); + AppUser one = new AppUser("John", "Doe", "john.doe@test.com", "", "", "password", "client"); + AppUser two = new AppUser("John2", "Doe2", "john.doe2@test.com", "", "", "password", "client"); + AppUser three = new AppUser("John3", "Doe3", "john.doe3@test.com", "", "", "password", "client"); + + appUsers.add(one); + appUsers.add(two); + appUsers.add(three); + + when(appUserRepository.findByEmail("john.doe2@test.com")).thenReturn(two); + + UserDetails userDetails = appUserService.loadUserByUsername("john.doe2@test.com"); + assertNotNull(userDetails); + userDetails = appUserService.loadUserByUsername(""); + assertNull(userDetails); + + } +}
\ No newline at end of file |