aboutsummaryrefslogtreecommitdiffstats
path: root/src/test/java/org/berzerkula/builddb
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/org/berzerkula/builddb')
-rw-r--r--src/test/java/org/berzerkula/builddb/BuilddbApplicationAppUserTests.java111
-rw-r--r--src/test/java/org/berzerkula/builddb/BuilddbApplicationPkgTests.java113
-rw-r--r--src/test/java/org/berzerkula/builddb/BuilddbApplicationTest.java24
-rw-r--r--src/test/java/org/berzerkula/builddb/controllers/BuilddbTestAccountController.java137
-rw-r--r--src/test/java/org/berzerkula/builddb/controllers/BuilddbTestDashboardController.java62
-rw-r--r--src/test/java/org/berzerkula/builddb/controllers/BuilddbTestHomeController.java33
-rw-r--r--src/test/java/org/berzerkula/builddb/controllers/BuilddbTestPkgController.java89
-rw-r--r--src/test/java/org/berzerkula/builddb/repositories/AppUserRepositoryTest.java31
-rw-r--r--src/test/java/org/berzerkula/builddb/repositories/PkgRepositoryTest.java32
-rw-r--r--src/test/java/org/berzerkula/builddb/repositories/TestH2AppUserRepository.java7
-rw-r--r--src/test/java/org/berzerkula/builddb/repositories/TestH2PkgRepository.java7
-rw-r--r--src/test/java/org/berzerkula/builddb/services/AppUserServiceTest.java54
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