From 36f26adf85e42049f8df5b42267348469249f611 Mon Sep 17 00:00:00 2001 From: Sonia Zorba <sonia.zorba@inaf.it> Date: Mon, 9 Aug 2021 15:15:14 +0200 Subject: [PATCH] Added test on JobService --- .../java/it/inaf/oats/vospace/JobService.java | 2 +- .../it/inaf/oats/vospace/JobServiceTest.java | 43 +++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/src/main/java/it/inaf/oats/vospace/JobService.java b/src/main/java/it/inaf/oats/vospace/JobService.java index 938fbee..852b05f 100644 --- a/src/main/java/it/inaf/oats/vospace/JobService.java +++ b/src/main/java/it/inaf/oats/vospace/JobService.java @@ -203,7 +203,7 @@ public class JobService { List<String> sourceAndDestination = copyService.processCopyNodes(transfer, jobId, user); // Call file service and command copy try{ - fileServiceClient.startFileCopyJob(sourceAndDestination.get(0), sourceAndDestination.get(1), jobId, user); + fileServiceClient.startFileCopyJob(sourceAndDestination.get(0), sourceAndDestination.get(1), jobId, user); } catch (Exception e) { // We decided not to purge metadata in case of failure // just release busy nodes setting job_id = null diff --git a/src/test/java/it/inaf/oats/vospace/JobServiceTest.java b/src/test/java/it/inaf/oats/vospace/JobServiceTest.java index ee017ed..7c824f3 100644 --- a/src/test/java/it/inaf/oats/vospace/JobServiceTest.java +++ b/src/test/java/it/inaf/oats/vospace/JobServiceTest.java @@ -55,6 +55,12 @@ public class JobServiceTest { @Mock private MoveService moveService; + + @Mock + private CopyService copyService; + + @Mock + private FileServiceClient fileServiceClient; @InjectMocks private JobService jobService; @@ -217,6 +223,43 @@ public class JobServiceTest { assertEquals(ExecutionPhase.COMPLETED, phases.get(2)); } + @Test + public void testStartJobCopyNode() { + + Transfer copyNode = new Transfer(); + copyNode.setDirection("vos://example.com!vospace/myfile"); + copyNode.setKeepBytes(true); + + JobSummary job = new JobSummary(); + setJobInfo(job, copyNode); + + when(uriService.getTransfer(any())).thenReturn(copyNode); + + List<ExecutionPhase> phases = new ArrayList<>(); + doAnswer(invocation -> { + JobSummary j = invocation.getArgument(0); + phases.add(j.getPhase()); + return null; + }).when(jobDAO).updateJob(any(), any()); + + when(copyService.processCopyNodes(any(), any(), any())).thenReturn(List.of("source", "dest")); + + jobService.setJobPhase(job, "RUN"); + + verify(fileServiceClient, timeout(1000).times(1)).startFileCopyJob(eq("source"), eq("dest"), any(), any()); + + verify(jobDAO, timeout(1000).times(3)).updateJob(any(), any()); + + try { + Thread.sleep(500); + } catch (InterruptedException ex) { + } + + assertEquals(ExecutionPhase.EXECUTING, phases.get(0)); + assertEquals(ExecutionPhase.EXECUTING, phases.get(1)); + assertEquals(ExecutionPhase.EXECUTING, phases.get(2)); + } + private Transfer getPullFromVoSpaceHttpTransfer() { Transfer transfer = new Transfer(); transfer.setTarget("vos://example.com!vospace/myfile"); -- GitLab