Loading src/test/java/it/inaf/oats/vospace/persistence/DataSourceConfig.java +9 −5 Original line number Diff line number Diff line Loading @@ -10,10 +10,10 @@ import java.nio.file.Files; import java.nio.file.Path; import java.sql.Connection; import java.util.Arrays; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.sql.DataSource; import static org.junit.jupiter.api.Assertions.assertTrue; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.test.context.TestConfiguration; import org.springframework.context.annotation.Bean; Loading Loading @@ -72,12 +72,16 @@ public class DataSourceConfig { try ( Connection conn = dataSource.getConnection()) { File currentDir = new File(DataSourceConfig.class.getClassLoader().getResource(".").getFile()); Path scriptDir = currentDir.toPath().resolve(scriptPath); File scriptDir = currentDir.toPath().resolve(scriptPath).toFile().getCanonicalFile(); List<String> scripts = Arrays.asList("00-init.sql", "01-pgsql_path.sql", "02-indexes.sql", "03-os_path_view.sql", "05-data.sql"); assertTrue(scriptDir.exists(), "DAO tests require " + scriptDir.getAbsolutePath() + " to exists.\n" + "Please clone the repository from https://www.ict.inaf.it/gitlab/ia2/vospace-file-catalog.git"); for (String script : scripts) { ByteArrayResource scriptResource = replaceDollarQuoting(scriptDir.resolve(script)); File[] scripts = scriptDir.listFiles(f -> f.getName().endsWith(".sql")); Arrays.sort(scripts); // sort alphabetically for (File script : scripts) { ByteArrayResource scriptResource = replaceDollarQuoting(script.toPath()); ScriptUtils.executeSqlScript(conn, scriptResource); } } Loading src/test/java/it/inaf/oats/vospace/persistence/JobDAOTest.java 0 → 100644 +57 −0 Original line number Diff line number Diff line package it.inaf.oats.vospace.persistence; import javax.sql.DataSource; import net.ivoa.xml.uws.v1.ExecutionPhase; import net.ivoa.xml.uws.v1.JobSummary; import net.ivoa.xml.vospace.v2.ContainerNode; import net.ivoa.xml.vospace.v2.Transfer; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit.jupiter.SpringExtension; @ExtendWith(SpringExtension.class) @ContextConfiguration(classes = {DataSourceConfig.class}) @TestPropertySource(locations = "classpath:test.properties") public class JobDAOTest { @Autowired private DataSource dataSource; private JobDAO dao; @BeforeEach public void init() { dao = new JobDAO(dataSource); } @Test public void testJob() { Transfer transfer = new Transfer(); transfer.setDirection("pushToVoSpace"); transfer.setTarget("vos://example.com!vospace/mynode"); JobSummary job = new JobSummary(); job.setJobId("123"); job.setOwnerId("owner"); job.setPhase(ExecutionPhase.PENDING); JobSummary.JobInfo jobInfo = new JobSummary.JobInfo(); jobInfo.getAny().add(transfer); job.setJobInfo(jobInfo); dao.createJob(job); assertTrue(dao.getJob("123").isPresent()); assertEquals(ExecutionPhase.PENDING, dao.getJob("123").get().getPhase()); job.setPhase(ExecutionPhase.EXECUTING); dao.updateJob(job); assertEquals(ExecutionPhase.EXECUTING, dao.getJob("123").get().getPhase()); } } src/test/resources/test.properties +1 −1 Original line number Diff line number Diff line init_database_scripts_path=../../../vospace-transfer-service/file_catalog init_database_scripts_path=../../../vospace-file-catalog Loading
src/test/java/it/inaf/oats/vospace/persistence/DataSourceConfig.java +9 −5 Original line number Diff line number Diff line Loading @@ -10,10 +10,10 @@ import java.nio.file.Files; import java.nio.file.Path; import java.sql.Connection; import java.util.Arrays; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.sql.DataSource; import static org.junit.jupiter.api.Assertions.assertTrue; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.test.context.TestConfiguration; import org.springframework.context.annotation.Bean; Loading Loading @@ -72,12 +72,16 @@ public class DataSourceConfig { try ( Connection conn = dataSource.getConnection()) { File currentDir = new File(DataSourceConfig.class.getClassLoader().getResource(".").getFile()); Path scriptDir = currentDir.toPath().resolve(scriptPath); File scriptDir = currentDir.toPath().resolve(scriptPath).toFile().getCanonicalFile(); List<String> scripts = Arrays.asList("00-init.sql", "01-pgsql_path.sql", "02-indexes.sql", "03-os_path_view.sql", "05-data.sql"); assertTrue(scriptDir.exists(), "DAO tests require " + scriptDir.getAbsolutePath() + " to exists.\n" + "Please clone the repository from https://www.ict.inaf.it/gitlab/ia2/vospace-file-catalog.git"); for (String script : scripts) { ByteArrayResource scriptResource = replaceDollarQuoting(scriptDir.resolve(script)); File[] scripts = scriptDir.listFiles(f -> f.getName().endsWith(".sql")); Arrays.sort(scripts); // sort alphabetically for (File script : scripts) { ByteArrayResource scriptResource = replaceDollarQuoting(script.toPath()); ScriptUtils.executeSqlScript(conn, scriptResource); } } Loading
src/test/java/it/inaf/oats/vospace/persistence/JobDAOTest.java 0 → 100644 +57 −0 Original line number Diff line number Diff line package it.inaf.oats.vospace.persistence; import javax.sql.DataSource; import net.ivoa.xml.uws.v1.ExecutionPhase; import net.ivoa.xml.uws.v1.JobSummary; import net.ivoa.xml.vospace.v2.ContainerNode; import net.ivoa.xml.vospace.v2.Transfer; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit.jupiter.SpringExtension; @ExtendWith(SpringExtension.class) @ContextConfiguration(classes = {DataSourceConfig.class}) @TestPropertySource(locations = "classpath:test.properties") public class JobDAOTest { @Autowired private DataSource dataSource; private JobDAO dao; @BeforeEach public void init() { dao = new JobDAO(dataSource); } @Test public void testJob() { Transfer transfer = new Transfer(); transfer.setDirection("pushToVoSpace"); transfer.setTarget("vos://example.com!vospace/mynode"); JobSummary job = new JobSummary(); job.setJobId("123"); job.setOwnerId("owner"); job.setPhase(ExecutionPhase.PENDING); JobSummary.JobInfo jobInfo = new JobSummary.JobInfo(); jobInfo.getAny().add(transfer); job.setJobInfo(jobInfo); dao.createJob(job); assertTrue(dao.getJob("123").isPresent()); assertEquals(ExecutionPhase.PENDING, dao.getJob("123").get().getPhase()); job.setPhase(ExecutionPhase.EXECUTING); dao.updateJob(job); assertEquals(ExecutionPhase.EXECUTING, dao.getJob("123").get().getPhase()); } }
src/test/resources/test.properties +1 −1 Original line number Diff line number Diff line init_database_scripts_path=../../../vospace-transfer-service/file_catalog init_database_scripts_path=../../../vospace-file-catalog