From 8447974821ca32031594525ac2ace6e15e41f03a Mon Sep 17 00:00:00 2001 From: nkumar2 Date: Tue, 30 Apr 2024 13:46:42 +0100 Subject: [PATCH] fix AccessionWriterTest --- .../listeners/ListenersConfiguration.java | 20 ------------- .../SubsnpAccessionJobExecutionListener.java | 30 +++++++++++++++++++ .../batch/io/AccessionWriterTest.java | 12 +++++++- .../pipeline/test/BatchTestConfiguration.java | 3 +- 4 files changed, 43 insertions(+), 22 deletions(-) create mode 100644 eva-accession-pipeline/src/main/java/uk/ac/ebi/eva/accession/pipeline/configuration/batch/listeners/SubsnpAccessionJobExecutionListener.java diff --git a/eva-accession-pipeline/src/main/java/uk/ac/ebi/eva/accession/pipeline/configuration/batch/listeners/ListenersConfiguration.java b/eva-accession-pipeline/src/main/java/uk/ac/ebi/eva/accession/pipeline/configuration/batch/listeners/ListenersConfiguration.java index 67d47589d..bb183662d 100644 --- a/eva-accession-pipeline/src/main/java/uk/ac/ebi/eva/accession/pipeline/configuration/batch/listeners/ListenersConfiguration.java +++ b/eva-accession-pipeline/src/main/java/uk/ac/ebi/eva/accession/pipeline/configuration/batch/listeners/ListenersConfiguration.java @@ -1,13 +1,10 @@ package uk.ac.ebi.eva.accession.pipeline.configuration.batch.listeners; -import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.JobExecutionListener; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.web.client.RestTemplate; -import uk.ac.ebi.eva.accession.pipeline.batch.io.AccessionWriter; import uk.ac.ebi.eva.accession.pipeline.batch.listeners.SubsnpAccessionsStepListener; import uk.ac.ebi.eva.accession.pipeline.metric.AccessioningMetricCompute; import uk.ac.ebi.eva.accession.pipeline.parameters.InputParameters; @@ -15,8 +12,6 @@ import uk.ac.ebi.eva.metrics.count.CountServiceParameters; import uk.ac.ebi.eva.metrics.metric.MetricCompute; -import static uk.ac.ebi.eva.accession.pipeline.configuration.BeanNames.ACCESSION_WRITER; -import static uk.ac.ebi.eva.accession.pipeline.configuration.BeanNames.SUBSNP_ACCESSION_JOB_LISTENER; import static uk.ac.ebi.eva.accession.pipeline.configuration.BeanNames.SUBSNP_ACCESSION_STEP_LISTENER; @Configuration @@ -34,19 +29,4 @@ public MetricCompute getClusteringMetricCompute(CountServiceParameters countServ return new AccessioningMetricCompute(countServiceParameters, restTemplate, inputParameters.getAssemblyAccession(), inputParameters.getProjectAccession()); } - - @Bean(SUBSNP_ACCESSION_JOB_LISTENER) - public JobExecutionListener jobExecutionListener(@Qualifier(ACCESSION_WRITER) AccessionWriter accessionWriter) { - return new JobExecutionListener() { - @Override - public void beforeJob(JobExecution jobExecution) { - accessionWriter.setJobExecution(jobExecution); - } - - @Override - public void afterJob(JobExecution jobExecution) { - // Do nothing - } - }; - } } diff --git a/eva-accession-pipeline/src/main/java/uk/ac/ebi/eva/accession/pipeline/configuration/batch/listeners/SubsnpAccessionJobExecutionListener.java b/eva-accession-pipeline/src/main/java/uk/ac/ebi/eva/accession/pipeline/configuration/batch/listeners/SubsnpAccessionJobExecutionListener.java new file mode 100644 index 000000000..b4e2a53e0 --- /dev/null +++ b/eva-accession-pipeline/src/main/java/uk/ac/ebi/eva/accession/pipeline/configuration/batch/listeners/SubsnpAccessionJobExecutionListener.java @@ -0,0 +1,30 @@ +package uk.ac.ebi.eva.accession.pipeline.configuration.batch.listeners; + +import org.springframework.batch.core.JobExecution; +import org.springframework.batch.core.JobExecutionListener; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import uk.ac.ebi.eva.accession.pipeline.batch.io.AccessionWriter; + +import static uk.ac.ebi.eva.accession.pipeline.configuration.BeanNames.ACCESSION_WRITER; +import static uk.ac.ebi.eva.accession.pipeline.configuration.BeanNames.SUBSNP_ACCESSION_JOB_LISTENER; + +@Configuration +public class SubsnpAccessionJobExecutionListener { + + @Bean(SUBSNP_ACCESSION_JOB_LISTENER) + public JobExecutionListener jobExecutionListener(@Qualifier(ACCESSION_WRITER) AccessionWriter accessionWriter) { + return new JobExecutionListener() { + @Override + public void beforeJob(JobExecution jobExecution) { + accessionWriter.setJobExecution(jobExecution); + } + + @Override + public void afterJob(JobExecution jobExecution) { + // Do nothing + } + }; + } +} diff --git a/eva-accession-pipeline/src/test/java/uk/ac/ebi/eva/accession/pipeline/batch/io/AccessionWriterTest.java b/eva-accession-pipeline/src/test/java/uk/ac/ebi/eva/accession/pipeline/batch/io/AccessionWriterTest.java index 3176dbdd8..250f73764 100644 --- a/eva-accession-pipeline/src/test/java/uk/ac/ebi/eva/accession/pipeline/batch/io/AccessionWriterTest.java +++ b/eva-accession-pipeline/src/test/java/uk/ac/ebi/eva/accession/pipeline/batch/io/AccessionWriterTest.java @@ -23,10 +23,12 @@ import org.junit.rules.ExpectedException; import org.junit.rules.TemporaryFolder; import org.junit.runner.RunWith; +import org.mockito.Mockito; import org.springframework.batch.core.JobExecution; import org.springframework.batch.item.ExecutionContext; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.ContextConfiguration; @@ -46,7 +48,9 @@ import uk.ac.ebi.eva.accession.core.model.eva.SubmittedVariantEntity; import uk.ac.ebi.eva.accession.pipeline.batch.processors.VariantConverter; import uk.ac.ebi.eva.accession.pipeline.configuration.InputParametersConfiguration; +import uk.ac.ebi.eva.accession.pipeline.configuration.batch.io.AccessionWriterConfiguration; import uk.ac.ebi.eva.accession.pipeline.configuration.batch.listeners.ListenersConfiguration; +import uk.ac.ebi.eva.accession.pipeline.configuration.batch.listeners.SubsnpAccessionJobExecutionListener; import uk.ac.ebi.eva.accession.pipeline.metric.AccessioningMetric; import uk.ac.ebi.eva.commons.core.models.pipeline.Variant; import uk.ac.ebi.eva.commons.core.models.pipeline.VariantSourceEntry; @@ -76,7 +80,8 @@ @RunWith(SpringRunner.class) @EnableAutoConfiguration -@ContextConfiguration(classes = {SubmittedVariantAccessioningConfiguration.class, ListenersConfiguration.class, InputParametersConfiguration.class}) +@ContextConfiguration(classes = {SubmittedVariantAccessioningConfiguration.class, ListenersConfiguration.class, + InputParametersConfiguration.class}) @TestPropertySource("classpath:accession-pipeline-test.properties") public class AccessionWriterTest { @@ -135,6 +140,9 @@ public class AccessionWriterTest { private ContigMapping contigMapping; + @MockBean + private JobExecution jobExecution; + @Rule public TemporaryFolder temporaryFolderRule = new TemporaryFolder(); @@ -165,6 +173,8 @@ public void setUp() throws Exception { accessionWriter = new AccessionWriter(service, accessionReportWriter, variantConverter, metricCompute); accessionReportWriter.open(new ExecutionContext()); mongoTemplate.dropCollection(SubmittedVariantEntity.class); + Mockito.when(jobExecution.getJobId()).thenReturn(1L); + accessionWriter.setJobExecution(jobExecution); } @After diff --git a/eva-accession-pipeline/src/test/java/uk/ac/ebi/eva/accession/pipeline/test/BatchTestConfiguration.java b/eva-accession-pipeline/src/test/java/uk/ac/ebi/eva/accession/pipeline/test/BatchTestConfiguration.java index 571932e82..a34916748 100644 --- a/eva-accession-pipeline/src/test/java/uk/ac/ebi/eva/accession/pipeline/test/BatchTestConfiguration.java +++ b/eva-accession-pipeline/src/test/java/uk/ac/ebi/eva/accession/pipeline/test/BatchTestConfiguration.java @@ -27,6 +27,7 @@ import org.springframework.transaction.PlatformTransactionManager; import uk.ac.ebi.eva.accession.pipeline.configuration.batch.io.AccessionWriterConfiguration; +import uk.ac.ebi.eva.accession.pipeline.configuration.batch.listeners.SubsnpAccessionJobExecutionListener; import uk.ac.ebi.eva.accession.pipeline.configuration.batch.policies.ChunkSizeCompletionPolicyConfiguration; import uk.ac.ebi.eva.accession.pipeline.configuration.batch.policies.InvalidVariantSkipPolicyConfiguration; import uk.ac.ebi.eva.accession.pipeline.configuration.batch.processors.VariantProcessorConfiguration; @@ -49,7 +50,7 @@ VcfReaderConfiguration.class, VariantProcessorConfiguration.class, AccessionWriterConfiguration.class, BuildReportStepConfiguration.class, AccessioningShutdownStepConfiguration.class, ChunkSizeCompletionPolicyConfiguration.class, InvalidVariantSkipPolicyConfiguration.class, - EvaAccessionJobLauncherCommandLineRunner.class}) + EvaAccessionJobLauncherCommandLineRunner.class, SubsnpAccessionJobExecutionListener.class}) public class BatchTestConfiguration { @Autowired