Skip to content

Commit 4eff36e

Browse files
committed
DIAC-1115 Supporting bail number validation when marking appeal as detained
1 parent 47f02b5 commit 4eff36e

File tree

3 files changed

+17
-9
lines changed

3 files changed

+17
-9
lines changed

src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/handlers/presubmit/BailApplicationNumberHandler.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import static uk.gov.hmcts.reform.iacaseapi.domain.entities.AsylumCaseFieldDefinition.*;
55

66
import java.util.Optional;
7+
import java.util.Set;
78
import org.springframework.stereotype.Service;
89
import uk.gov.hmcts.reform.iacaseapi.domain.entities.AsylumCase;
910
import uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.Event;
@@ -17,6 +18,9 @@
1718
@Service
1819
public class BailApplicationNumberHandler implements PreSubmitCallbackHandler<AsylumCase> {
1920

21+
private static final Set<String> DETENTION_FACILITY_PAGE_IDS = Set.of(
22+
"hasPendingBailApplications", "markAppealAsDetained_appellantBailApplication");
23+
2024
@Override
2125
public DispatchPriority getDispatchPriority() {
2226
return DispatchPriority.EARLIEST;
@@ -34,7 +38,7 @@ public boolean canHandle(
3438
|| callback.getEvent() == Event.EDIT_APPEAL
3539
|| callback.getEvent() == Event.EDIT_APPEAL_AFTER_SUBMIT
3640
|| callback.getEvent() == Event.MARK_APPEAL_AS_DETAINED)
37-
&& callback.getPageId().equals(HAS_PENDING_BAIL_APPLICATIONS.value());
41+
&& DETENTION_FACILITY_PAGE_IDS.contains(callback.getPageId());
3842
}
3943

4044
public PreSubmitCallbackResponse<AsylumCase> handle(

src/main/java/uk/gov/hmcts/reform/iacaseapi/domain/handlers/presubmit/DetentionStatusHandler.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ public boolean canHandle(
2828
requireNonNull(callback, "callback must not be null");
2929

3030
return callbackStage == PreSubmitCallbackStage.ABOUT_TO_SUBMIT
31-
&& (callback.getEvent() == Event.START_APPEAL
32-
|| callback.getEvent() == Event.EDIT_APPEAL
33-
|| callback.getEvent() == Event.MARK_APPEAL_AS_DETAINED);
31+
&& (callback.getEvent() == Event.START_APPEAL
32+
|| callback.getEvent() == Event.EDIT_APPEAL
33+
|| callback.getEvent() == Event.MARK_APPEAL_AS_DETAINED);
3434
}
3535

3636
@Override
@@ -60,7 +60,8 @@ public PreSubmitCallbackResponse<AsylumCase> handle(
6060
}
6161
}
6262

63-
if (callback.getEvent().equals(Event.MARK_APPEAL_AS_DETAINED)) {
63+
Optional<YesOrNo> isAcceleratedDetainedAppeal = asylumCase.read(IS_ACCELERATED_DETAINED_APPEAL, YesOrNo.class);
64+
if (callback.getEvent().equals(Event.MARK_APPEAL_AS_DETAINED) && isAcceleratedDetainedAppeal.isPresent()) {
6465
asylumCase.write(DETENTION_STATUS, DetentionStatus.DETAINED);
6566
}
6667

src/test/java/uk/gov/hmcts/reform/iacaseapi/domain/handlers/presubmit/DetentionStatusHandlerTest.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import static org.mockito.Mockito.times;
77
import static org.mockito.Mockito.verify;
88
import static org.mockito.Mockito.when;
9+
import static uk.gov.hmcts.reform.iacaseapi.domain.entities.AsylumCaseFieldDefinition.IS_ACCELERATED_DETAINED_APPEAL;
10+
import static uk.gov.hmcts.reform.iacaseapi.domain.entities.ccd.field.YesOrNo.*;
911

1012
import java.util.Optional;
1113
import org.junit.jupiter.api.Test;
@@ -42,8 +44,8 @@ void should_write_detention_status_to_accelerated() {
4244
when(callback.getCaseDetails()).thenReturn(caseDetails);
4345
when(caseDetails.getCaseData()).thenReturn(asylumCase);
4446
when(callback.getEvent()).thenReturn(Event.START_APPEAL);
45-
when(asylumCase.read(AsylumCaseFieldDefinition.APPELLANT_IN_DETENTION, YesOrNo.class)).thenReturn(Optional.of(YesOrNo.YES));
46-
when(asylumCase.read(AsylumCaseFieldDefinition.IS_ACCELERATED_DETAINED_APPEAL, YesOrNo.class)).thenReturn(Optional.of(YesOrNo.YES));
47+
when(asylumCase.read(AsylumCaseFieldDefinition.APPELLANT_IN_DETENTION, YesOrNo.class)).thenReturn(Optional.of(YES));
48+
when(asylumCase.read(AsylumCaseFieldDefinition.IS_ACCELERATED_DETAINED_APPEAL, YesOrNo.class)).thenReturn(Optional.of(YES));
4749

4850
detentionStatusHandler.handle(PreSubmitCallbackStage.ABOUT_TO_SUBMIT, callback);
4951

@@ -57,8 +59,8 @@ void should_write_detention_status_to_detained() {
5759
when(callback.getCaseDetails()).thenReturn(caseDetails);
5860
when(caseDetails.getCaseData()).thenReturn(asylumCase);
5961
when(callback.getEvent()).thenReturn(Event.START_APPEAL);
60-
when(asylumCase.read(AsylumCaseFieldDefinition.APPELLANT_IN_DETENTION, YesOrNo.class)).thenReturn(Optional.of(YesOrNo.YES));
61-
when(asylumCase.read(AsylumCaseFieldDefinition.IS_ACCELERATED_DETAINED_APPEAL, YesOrNo.class)).thenReturn(Optional.of(YesOrNo.NO));
62+
when(asylumCase.read(AsylumCaseFieldDefinition.APPELLANT_IN_DETENTION, YesOrNo.class)).thenReturn(Optional.of(YES));
63+
when(asylumCase.read(AsylumCaseFieldDefinition.IS_ACCELERATED_DETAINED_APPEAL, YesOrNo.class)).thenReturn(Optional.of(NO));
6264

6365
detentionStatusHandler.handle(PreSubmitCallbackStage.ABOUT_TO_SUBMIT, callback);
6466

@@ -72,6 +74,7 @@ void should_mark_appeal_as_detained() {
7274
when(callback.getCaseDetails()).thenReturn(caseDetails);
7375
when(caseDetails.getCaseData()).thenReturn(asylumCase);
7476
when(callback.getEvent()).thenReturn(Event.MARK_APPEAL_AS_DETAINED);
77+
when(asylumCase.read(IS_ACCELERATED_DETAINED_APPEAL, YesOrNo.class)).thenReturn(Optional.of(YES));
7578

7679
detentionStatusHandler.handle(PreSubmitCallbackStage.ABOUT_TO_SUBMIT, callback);
7780

0 commit comments

Comments
 (0)