diff --git a/src/test/java/it/inaf/oats/vospace/persistence/DataSourceConfig.java b/src/test/java/it/inaf/oats/vospace/persistence/DataSourceConfig.java index d533bf8918095ed3e1fc259be440f2e0273214b1..9ba7203d9eba1decfd7b1875d1fd23f7af4ab95b 100644 --- a/src/test/java/it/inaf/oats/vospace/persistence/DataSourceConfig.java +++ b/src/test/java/it/inaf/oats/vospace/persistence/DataSourceConfig.java @@ -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; @@ -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); } } diff --git a/src/test/java/it/inaf/oats/vospace/persistence/JobDAOTest.java b/src/test/java/it/inaf/oats/vospace/persistence/JobDAOTest.java new file mode 100644 index 0000000000000000000000000000000000000000..4134c206bde4c8658e6dc21fb36e3619bb38a5ea --- /dev/null +++ b/src/test/java/it/inaf/oats/vospace/persistence/JobDAOTest.java @@ -0,0 +1,57 @@ +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()); + } +} diff --git a/src/test/resources/test.properties b/src/test/resources/test.properties index c633d739745a86c8eee86db5c5528799e3480dd4..0662056805c5f0ee2c47560b2dd2bb7d9f050886 100644 --- a/src/test/resources/test.properties +++ b/src/test/resources/test.properties @@ -1 +1 @@ -init_database_scripts_path=../../../vospace-transfer-service/file_catalog +init_database_scripts_path=../../../vospace-file-catalog