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 { 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 void testAddPkg() { testPkg = setPkgDetails(pkgSeq, pkgName, pkgVersion, pkgConfigure, pkgBuild, pkgInstall, pkgSetup, pkgNotes, pkgUrl); h2Repository.save(testPkg); List 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 void testGetPkgs() { h2Repository.save(testPkg); List pkgs = h2Repository.findAll(); assertEquals(1, pkgs.size()); assertEquals(1, h2Repository.findAll().size()); } @Test void testUpdatePkg() { List 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 void tsetDeletePkg() { List 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; } }