From 37780544520ce5febbdca8a667b5223d7bec4a30 Mon Sep 17 00:00:00 2001 From: Erol Kureli <> Date: Fri, 31 Jul 2026 14:57:42 +0100 Subject: [PATCH] CIMD-3915 : merge to main --- .../DismissDecisionResultAggregator.java | 8 ++++++++ .../DismissDecisionResultAggregatorTest.java | 20 +++++++++++++++++-- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/sjp-event/sjp-event-processor/src/main/java/uk/gov/moj/cpp/sjp/event/processor/results/converter/judicialresult/aggregator/DismissDecisionResultAggregator.java b/sjp-event/sjp-event-processor/src/main/java/uk/gov/moj/cpp/sjp/event/processor/results/converter/judicialresult/aggregator/DismissDecisionResultAggregator.java index e8ace4c81f..22b7286f51 100644 --- a/sjp-event/sjp-event-processor/src/main/java/uk/gov/moj/cpp/sjp/event/processor/results/converter/judicialresult/aggregator/DismissDecisionResultAggregator.java +++ b/sjp-event/sjp-event-processor/src/main/java/uk/gov/moj/cpp/sjp/event/processor/results/converter/judicialresult/aggregator/DismissDecisionResultAggregator.java @@ -8,6 +8,7 @@ import uk.gov.justice.services.messaging.JsonEnvelope; import uk.gov.moj.cpp.sjp.domain.decision.Dismiss; import uk.gov.moj.cpp.sjp.domain.decision.OffenceDecision; +import uk.gov.moj.cpp.sjp.event.processor.results.converter.ConvictionInfo; import uk.gov.moj.cpp.sjp.event.processor.results.converter.judicialresult.JCachedReferenceData; import uk.gov.moj.cpp.sjp.event.processor.results.converter.judicialresult.DecisionAggregate; @@ -49,6 +50,13 @@ public void aggregate(final OffenceDecision offenceDecision, setFinalOffence(decisionAggregate, offenceId, judicialResults); + // conviction information - a dismissal carries the FOUND_NOT_GUILTY verdict dated on the + // resulting date but has no convicting court + decisionAggregate.putConvictionInfo(offenceId, + new ConvictionInfo(offenceId, + dismissOffenceDecision.getOffenceDecisionInformation().getVerdict(), + resultedOn.toLocalDate(), + null)); } } diff --git a/sjp-event/sjp-event-processor/src/test/java/uk/gov/moj/cpp/sjp/event/processor/results/converter/judicialresult/aggregator/DismissDecisionResultAggregatorTest.java b/sjp-event/sjp-event-processor/src/test/java/uk/gov/moj/cpp/sjp/event/processor/results/converter/judicialresult/aggregator/DismissDecisionResultAggregatorTest.java index 5758a2ff8f..b028eed2aa 100644 --- a/sjp-event/sjp-event-processor/src/test/java/uk/gov/moj/cpp/sjp/event/processor/results/converter/judicialresult/aggregator/DismissDecisionResultAggregatorTest.java +++ b/sjp-event/sjp-event-processor/src/test/java/uk/gov/moj/cpp/sjp/event/processor/results/converter/judicialresult/aggregator/DismissDecisionResultAggregatorTest.java @@ -8,10 +8,11 @@ import static org.hamcrest.Matchers.hasProperty; import static org.hamcrest.MatcherAssert.assertThat; import static uk.gov.moj.cpp.sjp.domain.decision.OffenceDecisionInformation.createOffenceDecisionInformation; -import static uk.gov.moj.cpp.sjp.domain.verdict.VerdictType.FOUND_GUILTY; +import static uk.gov.moj.cpp.sjp.domain.verdict.VerdictType.FOUND_NOT_GUILTY; import static uk.gov.moj.cpp.sjp.event.processor.results.converter.judicialresult.JCaseResultsConstants.DATE_FORMAT; import uk.gov.moj.cpp.sjp.domain.decision.Dismiss; +import uk.gov.moj.cpp.sjp.event.processor.results.converter.ConvictionInfo; import uk.gov.moj.cpp.sjp.event.processor.results.converter.judicialresult.DecisionAggregate; import org.hamcrest.Matchers; @@ -37,7 +38,7 @@ public void setUp() { @Test public void shouldPopulateResultWithRightPrompts() { final Dismiss offenceDecision - = new Dismiss(null, createOffenceDecisionInformation(offence1Id, FOUND_GUILTY)); + = new Dismiss(null, createOffenceDecisionInformation(offence1Id, FOUND_NOT_GUILTY)); aggregator.aggregate(offenceDecision, sjpSessionEnvelope, resultsAggregate, resultedOn); @@ -49,4 +50,19 @@ public void shouldPopulateResultWithRightPrompts() { hasProperty("judicialResultPrompts", is(nullValue())))))); assertThat(resultsAggregate.getFinalOffence(offenceDecision.getOffenceIds().get(0)),Matchers.is(true)); } + + @Test + public void shouldPopulateConvictionInfoWithFoundNotGuiltyVerdict() { + final Dismiss offenceDecision + = new Dismiss(null, createOffenceDecisionInformation(offence1Id, FOUND_NOT_GUILTY)); + + aggregator.aggregate(offenceDecision, sjpSessionEnvelope, resultsAggregate, resultedOn); + + final ConvictionInfo convictionInfo = resultsAggregate.getConvictionInfo(offence1Id); + assertThat(convictionInfo, is(Matchers.notNullValue())); + assertThat(convictionInfo.getOffenceId(), Matchers.is(offence1Id)); + assertThat(convictionInfo.getVerdictType(), Matchers.is(FOUND_NOT_GUILTY)); + assertThat(convictionInfo.getConvictionDate(), is(resultedOn.toLocalDate())); + assertThat(convictionInfo.getConvictingCourt(), is(nullValue())); + } }