From 16806f5fc7091a990b7f5d0ca4f529f7f9723777 Mon Sep 17 00:00:00 2001 From: Nicola Fulvio Calabria <nicola.calabria@inaf.it> Date: Sat, 17 Apr 2021 12:49:05 +0200 Subject: [PATCH] Added missing lines to getJob for error summary retrieval and extended tests. --- .../inaf/oats/vospace/persistence/JobDAO.java | 19 ++++++++------ .../oats/vospace/persistence/JobDAOTest.java | 25 +++++++++++++------ 2 files changed, 29 insertions(+), 15 deletions(-) diff --git a/src/main/java/it/inaf/oats/vospace/persistence/JobDAO.java b/src/main/java/it/inaf/oats/vospace/persistence/JobDAO.java index 31d443d..5f2e6ec 100644 --- a/src/main/java/it/inaf/oats/vospace/persistence/JobDAO.java +++ b/src/main/java/it/inaf/oats/vospace/persistence/JobDAO.java @@ -48,8 +48,8 @@ public class JobDAO { String sql = "INSERT INTO job(job_id, owner_id, job_type, phase, job_info," - + " error_message, error_type, error_has_detail) " - + "VALUES (?, ?, ?, ?, ?, ? ,? ,?)"; + + " error_message, error_type, error_has_detail, error_detail) " + + "VALUES (?, ?, ?, ?, ?, ? ,? ,? ,?)"; jdbcTemplate.update(sql, ps -> { int i = 0; @@ -63,11 +63,13 @@ public class JobDAO { if(errorSummary != null) { ps.setString(++i, errorSummary.getMessage()); ps.setObject(++i, errorSummary.getType().value(), Types.OTHER); - ps.setBoolean(++i, errorSummary.isHasDetail()); + ps.setBoolean(++i, errorSummary.isHasDetail()); + ps.setString(++i, errorSummary.getDetailMessage()); } else { ps.setNull(++i, Types.VARCHAR); ps.setNull(++i, Types.OTHER); - ps.setNull(++i, Types.BOOLEAN); + ps.setNull(++i, Types.BOOLEAN); + ps.setNull(++i, Types.VARCHAR); } }); } @@ -127,8 +129,10 @@ public class JobDAO { errorSummary.setType(ErrorType.fromValue(rs.getString("error_type"))); } errorSummary.setHasDetail(rs.getBoolean("error_has_detail")); + errorSummary.setDetailMessage(rs.getString("error_detail")); + jobSummary.setErrorSummary(errorSummary); - + return jobSummary; } @@ -258,14 +262,14 @@ public class JobDAO { ErrorSummary errorSummary = job.getErrorSummary(); if(errorSummary != null) { - sql += ", error_message, error_type, error_has_detail"; + sql += ", error_message, error_type, error_has_detail, error_detail"; } sql += ") = (?, ?"; if(errorSummary != null) { - sql += ", ?, ?, ?"; + sql += ", ?, ?, ?, ?"; } sql += ") WHERE job_id = ?"; @@ -279,6 +283,7 @@ public class JobDAO { ps.setString(++i, errorSummary.getMessage()); ps.setObject(++i, errorSummary.getType().value(), Types.OTHER); ps.setBoolean(++i, errorSummary.isHasDetail()); + ps.setString(++i, errorSummary.getDetailMessage()); } ps.setString(++i, job.getJobId()); }); diff --git a/src/test/java/it/inaf/oats/vospace/persistence/JobDAOTest.java b/src/test/java/it/inaf/oats/vospace/persistence/JobDAOTest.java index eb04e14..a3a26c0 100644 --- a/src/test/java/it/inaf/oats/vospace/persistence/JobDAOTest.java +++ b/src/test/java/it/inaf/oats/vospace/persistence/JobDAOTest.java @@ -22,7 +22,7 @@ import java.time.Month; import net.ivoa.xml.uws.v1.ErrorSummary; import net.ivoa.xml.uws.v1.Jobs; import it.inaf.oats.vospace.exception.ErrorSummaryFactory; -import it.inaf.oats.vospace.exception.VOSpaceFaultEnum; +import it.inaf.oats.vospace.exception.PermissionDeniedException; @ExtendWith(SpringExtension.class) @ContextConfiguration(classes = {DataSourceConfig.class}) @@ -55,10 +55,11 @@ public class JobDAOTest { } // don't want to override equals method just for testing without a use case - private boolean areEqual(ErrorSummary a, ErrorSummary b) { + private boolean areEqual(ErrorSummary a, ErrorSummary b) { return (a.getMessage().equals(b.getMessage()) && a.getType().equals(b.getType()) - && a.isHasDetail() == b.isHasDetail()); + && a.isHasDetail() == b.isHasDetail() + && a.getDetailMessage().equals(b.getDetailMessage())); } @Test @@ -83,10 +84,14 @@ public class JobDAOTest { job.setPhase(ExecutionPhase.ERROR); - // A generic picked randomly + // Generate it from exception ErrorSummary errorSummary = ErrorSummaryFactory.newErrorSummary( - VOSpaceFaultEnum.PERMISSION_DENIED); + new PermissionDeniedException("/pippo1/pippo2")); + + // Check if properly generated + assertTrue(errorSummary.isHasDetail()); + assertEquals("PermissionDenied. Path: /pippo1/pippo2", errorSummary.getDetailMessage()); job.setErrorSummary(errorSummary); @@ -109,11 +114,15 @@ public class JobDAOTest { dao.createJob(job); job.setPhase(ExecutionPhase.ERROR); - // A generic picked randomly + // Generate it from exception ErrorSummary errorSummary = ErrorSummaryFactory.newErrorSummary( - VOSpaceFaultEnum.PERMISSION_DENIED); - + new PermissionDeniedException("/pippo1/pippo2")); + + // Check if properly generated + assertTrue(errorSummary.isHasDetail()); + assertEquals("PermissionDenied. Path: /pippo1/pippo2", errorSummary.getDetailMessage()); + job.setErrorSummary(errorSummary); dao.updateJob(job); -- GitLab