Skip to content
Open
Show file tree
Hide file tree
Changes from 24 commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
042f210
SSCSFT-88 Update decision notices
alibaseit Feb 20, 2026
be89628
SSCSFT-88 Update decision notices
alibaseit Feb 20, 2026
5211a77
SSCSFT-88 Update final decision sentences
alibaseit Feb 23, 2026
1d131ef
SSCSFT-88 Include other parties in the body of Notice
alibaseit Feb 24, 2026
eb812fd
SSCSFT-88 Add other part details to body of the notice
alibaseit Feb 25, 2026
1f9efd4
SSCSFT-88 Add other part details to body of the notice
alibaseit Feb 25, 2026
f5534f2
SSCSFT-88 Add other part details to body of the notice
alibaseit Feb 25, 2026
34e0cf5
SSCSFT-88 Add other part details to body of the notice
alibaseit Feb 25, 2026
ba1abe7
SSCSFT-88 Add other part details to body of the notice
alibaseit Feb 27, 2026
4a72b0e
SSCSFT-88 Add other part details to body of the notice
alibaseit Feb 27, 2026
c992f88
SSCSFT-88 Add other part details to body of the notice
alibaseit Feb 27, 2026
8e55517
SSCSFT-88 Add other part details to body of the notice
alibaseit Mar 2, 2026
d2bb5fd
SSCSFT-88 Add other part details to body of the notice
alibaseit Mar 2, 2026
00cd2fe
SSCSFT-88 Add other part details to body of the notice
alibaseit Mar 2, 2026
77215c5
SSCSFT-88 Add other part details to body of the notice
alibaseit Mar 3, 2026
67d910f
SSCSFT-88 Add other part details to body of the notice
alibaseit Mar 3, 2026
eae99f7
SSCSFT-88 Add other part details to body of the notice
alibaseit Mar 3, 2026
8ca19b8
SSCSFT-88 Add other part details to body of the notice
alibaseit Mar 3, 2026
4463c13
SSCSFT-88 Add other part details to body of the notice
alibaseit Mar 3, 2026
c5fd7e1
Merge branch 'master' into SSCSFT-88
alibaseit Mar 3, 2026
076d6a1
Trigger Build
alibaseit Mar 3, 2026
f8cd3e0
Trigger Build
alibaseit Mar 3, 2026
35f1717
Trigger Build
alibaseit Mar 4, 2026
19bd67f
Merge branch 'master' into SSCSFT-88
alibaseit Mar 5, 2026
b4178a2
SSCSFT-88 Address comments
alibaseit Mar 6, 2026
59d3a75
SSCSFT-88 Address comments
alibaseit Mar 9, 2026
7c2cac3
SSCSFT-88 Address comments
alibaseit Mar 9, 2026
9a1128d
SSCSFT-88 Address comments
alibaseit Mar 9, 2026
3468d7a
SSCSFT-88 Address comments
alibaseit Mar 9, 2026
fd558a7
SSCSFT-88 Address comments
alibaseit Mar 9, 2026
999945f
Merge branch 'master' into SSCSFT-88
alibaseit Mar 10, 2026
4b15c8b
SSCSFT-88 Address comments
alibaseit Mar 10, 2026
15cc87b
SSCSFT-88 Address comments
alibaseit Mar 10, 2026
9603570
SSCSFT-88 Address comments
alibaseit Mar 10, 2026
6e7dba4
SSCSFT-88 Address comments
alibaseit Mar 10, 2026
14c4a59
Merge branch 'master' into SSCSFT-88
alibaseit Mar 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package uk.gov.hmcts.reform.sscs.callback;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoInteractions;
Expand Down Expand Up @@ -117,7 +119,7 @@ public void callToMidEventPreviewFinalDecisionCallback_willPreviewTheDocumentFor
+ "\n"
+ "Something else.\n"
+ "\n"
+ "This has been an oral (face to face) hearing. AN Test the appellant attended the hearing today and the Tribunal considered the appeal bundle to page A1. First Tier Agency representative attended on behalf of the Respondent.\n"
+ "This has been an oral (face to face) hearing. The following people attended: AN Test the appellant and a representative from the First Tier Agency. The Tribunal considered the appeal bundle to page A1.\n"
+ "\n", parentPayload.getWriteFinalDecisionTemplateContent().toString());
}

Expand Down Expand Up @@ -1411,14 +1413,14 @@ public void callToMidEventPreviewFinalDecisionCallback_willPreviewTheDocumentFor
assertEquals(LocalDate.parse("2017-07-17"), payload.getHeldOn());
assertEquals("Chester Magistrate's Court", payload.getHeldAt());
assertEquals("Tribunal Judge Full Name, Panel Member 1 and Panel Member 2", payload.getHeldBefore());
assertEquals(false, payload.isAllowed());
assertEquals(false, payload.isSetAside());
assertFalse(payload.isAllowed());
assertFalse(payload.isSetAside());
assertEquals("2018-09-01", payload.getDateOfDecision());
assertEquals(AN_Test, payload.getAppellantName());
assertEquals("2018-10-10", payload.getStartDate());
assertEquals("2018-11-10", payload.getEndDate());
assertEquals(false, payload.isIndefinite());
assertEquals(false, payload.isEsaIsEntited());
assertFalse(payload.isIndefinite());
assertFalse(payload.isEsaIsEntited());
assertNull(payload.getEsaAwardRate());
Assert.assertNull(payload.getEsaSchedule2Descriptors());
Assert.assertNull(payload.getEsaNumberOfPoints());
Expand All @@ -1428,18 +1430,20 @@ public void callToMidEventPreviewFinalDecisionCallback_willPreviewTheDocumentFor
assertEquals("Something else.", payload.getAnythingElse());
assertNotNull(parentPayload.getWriteFinalDecisionTemplateContent());
assertNotNull(parentPayload.getWriteFinalDecisionTemplateContent());
assertEquals("The appeal is refused.\n"
+ "\n"
+ "The decision made by the Secretary of State on 01/09/2018 is confirmed.\n"
+ "\n"
+ "This is my summary.\n"
+ "\n"
+ "My reasons for decision\n"
+ "\n"
+ "Something else.\n"
+ "\n"
+ "This has been an oral (face to face) hearing. AN Test the appellant attended the hearing today and the Tribunal considered the appeal bundle to page A1. First Tier Agency representative attended on behalf of the Respondent.\n"
+ "\n", parentPayload.getWriteFinalDecisionTemplateContent().toString());
assertEquals("""
The appeal is refused.

The decision made by the Secretary of State on 01/09/2018 is confirmed.

This is my summary.

My reasons for decision

Something else.

This has been an oral (face to face) hearing. The following people attended: AN Test the appellant and a representative from the First Tier Agency. The Tribunal considered the appeal bundle to page A1.

""", parentPayload.getWriteFinalDecisionTemplateContent().toString());
EsaTemplateContent esaTemplateContent = (EsaTemplateContent) parentPayload.getWriteFinalDecisionTemplateContent();
Assert.assertEquals(EsaScenario.SCENARIO_10, esaTemplateContent.getScenario());
}
Expand Down Expand Up @@ -1505,7 +1509,7 @@ public void callToMidEventPreviewFinalDecisionCallback_willPreviewTheDocumentFor
+ "\n"
+ "Something else.\n"
+ "\n"
+ "This has been an oral (face to face) hearing. AN Test the appellant attended the hearing today and the Tribunal considered the appeal bundle to page A1. First Tier Agency representative attended on behalf of the Respondent.\n"
+ "This has been an oral (face to face) hearing. The following people attended: AN Test the appellant and a representative from the First Tier Agency. The Tribunal considered the appeal bundle to page A1.\n"
+ "\n", parentPayload.getWriteFinalDecisionTemplateContent().toString());
EsaTemplateContent esaTemplateContent = (EsaTemplateContent) parentPayload.getWriteFinalDecisionTemplateContent();
Assert.assertEquals(EsaScenario.SCENARIO_10, esaTemplateContent.getScenario());
Expand Down Expand Up @@ -1546,35 +1550,37 @@ public void callToMidEventPreviewFinalDecisionCallback_willPreviewTheDocumentFor
assertEquals(LocalDate.parse("2017-07-17"), payload.getHeldOn());
assertEquals("Chester Magistrate's Court", payload.getHeldAt());
assertEquals("Tribunal Judge Full Name, Panel Member 1 and Panel Member 2", payload.getHeldBefore());
assertEquals(true, payload.isAllowed());
assertEquals(true, payload.isSetAside());
assertTrue(payload.isAllowed());
assertTrue(payload.isSetAside());
assertEquals("2018-09-01", payload.getDateOfDecision());
assertEquals(AN_Test, payload.getAppellantName());
assertEquals("2018-10-10", payload.getStartDate());
assertEquals("2018-11-10", payload.getEndDate());
assertEquals(false, payload.isIndefinite());
assertEquals(false, payload.isEsaIsEntited());
assertFalse(payload.isIndefinite());
assertFalse(payload.isEsaIsEntited());
assertNull(payload.getEsaAwardRate());
Assert.assertNull(payload.getEsaSchedule2Descriptors());
Assert.assertNull(payload.getEsaNumberOfPoints());
assertNotNull(payload.getReasonsForDecision());
assertEquals(1, payload.getReasonsForDecision().size());
Assert.assertEquals("My reasons for decision", payload.getReasonsForDecision().get(0));
Assert.assertEquals("My reasons for decision", payload.getReasonsForDecision().getFirst());
assertEquals("Something else.", payload.getAnythingElse());
assertNotNull(parentPayload.getWriteFinalDecisionTemplateContent());
assertNotNull(parentPayload.getWriteFinalDecisionTemplateContent());
assertEquals("The appeal is allowed.\n"
+ "\n"
+ "The decision made by the Secretary of State on 01/09/2018 is set aside.\n"
+ "\n"
+ "This is my summary.\n"
+ "\n"
+ "My reasons for decision\n"
+ "\n"
+ "Something else.\n"
+ "\n"
+ "This has been an oral (face to face) hearing. AN Test the appellant attended the hearing today and the Tribunal considered the appeal bundle to page A1. First Tier Agency representative attended on behalf of the Respondent.\n"
+ "\n", parentPayload.getWriteFinalDecisionTemplateContent().toString());
assertEquals("""
The appeal is allowed.

The decision made by the Secretary of State on 01/09/2018 is set aside.

This is my summary.

My reasons for decision

Something else.

This has been an oral (face to face) hearing. The following people attended: AN Test the appellant and a representative from the First Tier Agency. The Tribunal considered the appeal bundle to page A1.

""", parentPayload.getWriteFinalDecisionTemplateContent().toString());
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -335,7 +335,7 @@ public void nonDescriptorFlow_shouldGeneratePdfWithExpectedText(boolean allowed)
assertIsParagraphWithText(components, 5, "Reasons for decision 2");
assertIsParagraphWithText(components, 6, "Anything else.");
assertIsParagraphWithText(components, 7,
"This has been a remote hearing in the form of a video hearing. Joe Bloggs the appellant attended and the Tribunal considered the appeal bundle to page B7. First Tier Agency representative attended on behalf of the Respondent.");
"This has been a remote hearing in the form of a video hearing. The following people attended: Joe Bloggs the appellant and a representative from the First Tier Agency. The Tribunal considered the appeal bundle to page B7.");
Assert.assertEquals(7, components.size());
}

Expand All @@ -344,7 +344,7 @@ public void nonDescriptorFlow_shouldGeneratePdfWithExpectedText(boolean allowed)
public void nonDescriptorFlowHmrc_shouldGeneratePdfWithExpectedText(boolean allowed) throws Exception {
setup();
String json = getJsonCallbackForTestAndReplace("callback/hmrcScenarioCallbackNonDescriptorFlow.json", Arrays.asList("ALLOWED_OR_REFUSED"),
Arrays.asList(allowed ? "allowed" : "refused"));
List.of(allowed ? "allowed" : "refused"));

String documentUrl = "document.url";
when(generateFile.assemble(any())).thenReturn(documentUrl);
Expand Down Expand Up @@ -379,7 +379,7 @@ public void nonDescriptorFlowHmrc_shouldGeneratePdfWithExpectedText(boolean allo
assertIsParagraphWithText(components, 5, "Reasons for decision 2");
assertIsParagraphWithText(components, 6, "Anything else.");
assertIsParagraphWithText(components, 7,
"This has been a remote hearing in the form of a video hearing. Joe Bloggs the appellant attended and the Tribunal considered the appeal bundle to page B7. First Tier Agency representative attended on behalf of the Respondent.");
"This has been a remote hearing in the form of a video hearing. The following people attended: Joe Bloggs the appellant and a representative from the First Tier Agency. The Tribunal considered the appeal bundle to page B7.");
Assert.assertEquals(7, components.size());
}

Expand Down Expand Up @@ -447,13 +447,13 @@ public void notConsideredNoAward_shouldGeneratePdfWithExpectedTextForHearingType
if ("video".equals(hearingType)) {
if (appellantAttended && presentingOfficerAttended) {
assertIsParagraphWithText(components, 8,
"This has been a remote hearing in the form of a video hearing. Joe Bloggs the appellant attended and the Tribunal considered the appeal bundle to page B7. First Tier Agency representative attended on behalf of the Respondent.");
"This has been a remote hearing in the form of a video hearing. The following people attended: Joe Bloggs the appellant and a representative from the First Tier Agency. The Tribunal considered the appeal bundle to page B7.");
} else if (appellantAttended && !presentingOfficerAttended) {
assertIsParagraphWithText(components, 8,
"This has been a remote hearing in the form of a video hearing. Joe Bloggs the appellant attended and the Tribunal considered the appeal bundle to page B7. First Tier Agency representative did not attend.");
"This has been a remote hearing in the form of a video hearing. The following people attended: Joe Bloggs the appellant. A representative from the First Tier Agency did not attend. The Tribunal considered the appeal bundle to page B7.");
} else if (!appellantAttended && presentingOfficerAttended) {
assertIsParagraphWithText(components, 8,
"This has been a remote hearing in the form of a video hearing. Joe Bloggs did not attend the hearing today. A Presenting Officer attended on behalf of the Respondent.");
"This has been a remote hearing in the form of a video hearing. The following people attended: Joe Bloggs the appellant and a representative from the First Tier Agency. The Tribunal considered the appeal bundle to page B7.");
assertIsParagraphWithText(components, 9,
"Having considered the appeal bundle to page B7 and the requirements of rules 2 and 31 of The Tribunal Procedure (First-tier Tribunal)(Social Entitlement Chamber) Rules 2008 the Tribunal is satisfied that reasonable steps were taken to notify Joe Bloggs of the hearing and that it is in the interests of justice to proceed today. ");
additionalParagraph = true;
Expand All @@ -467,10 +467,10 @@ public void notConsideredNoAward_shouldGeneratePdfWithExpectedTextForHearingType
} else if ("telephone".equals(hearingType)) {
if (appellantAttended && presentingOfficerAttended) {
assertIsParagraphWithText(components, 8,
"This has been a remote hearing in the form of a telephone hearing. Joe Bloggs the appellant attended and the Tribunal considered the appeal bundle to page B7. First Tier Agency representative attended on behalf of the Respondent.");
"This has been a remote hearing in the form of a telephone hearing. The following people attended: Joe Bloggs the appellant and a representative from the First Tier Agency. The Tribunal considered the appeal bundle to page B7.");
} else if (appellantAttended && !presentingOfficerAttended) {
assertIsParagraphWithText(components, 8,
"This has been a remote hearing in the form of a telephone hearing. Joe Bloggs the appellant attended and the Tribunal considered the appeal bundle to page B7. First Tier Agency representative did not attend.");
"This has been a remote hearing in the form of a telephone hearing. The following people attended: Joe Bloggs the appellant. A representative from the First Tier Agency did not attend. The Tribunal considered the appeal bundle to page B7.");
} else if (!appellantAttended && presentingOfficerAttended) {
assertIsParagraphWithText(components, 8,
"This has been a remote hearing in the form of a telephone hearing. Joe Bloggs did not attend the hearing today. A Presenting Officer attended on behalf of the Respondent.");
Expand All @@ -479,7 +479,7 @@ public void notConsideredNoAward_shouldGeneratePdfWithExpectedTextForHearingType
additionalParagraph = true;
} else if (!appellantAttended && !presentingOfficerAttended) {
assertIsParagraphWithText(components, 8,
"This has been a remote hearing in the form of a telephone hearing. Joe Bloggs did not attend the hearing today. First Tier Agency representative did not attend.");
"This has been a remote hearing in the form of a telephone hearing. The following people attended: Joe Bloggs the appellant. A representative from the First Tier Agency did not attend. The Tribunal considered the appeal bundle to page B7.");
assertIsParagraphWithText(components, 9,
"Having considered the appeal bundle to page B7 and the requirements of rules 2 and 31 of The Tribunal Procedure (First-tier Tribunal)(Social Entitlement Chamber) Rules 2008 the Tribunal is satisfied that reasonable steps were taken to notify Joe Bloggs of the hearing and that it is in the interests of justice to proceed today. ");
additionalParagraph = true;
Expand All @@ -492,10 +492,10 @@ public void notConsideredNoAward_shouldGeneratePdfWithExpectedTextForHearingType
} else if ("faceToFace".equals(hearingType)) {
if (appellantAttended && presentingOfficerAttended) {
assertIsParagraphWithText(components, 8,
"This has been an oral (face to face) hearing. Joe Bloggs the appellant attended the hearing today and the Tribunal considered the appeal bundle to page B7. First Tier Agency representative attended on behalf of the Respondent.");
"This has been an oral (face to face) hearing. The following people attended: Joe Bloggs the appellant and a representative from the First Tier Agency. The Tribunal considered the appeal bundle to page B7.");
} else if (appellantAttended && !presentingOfficerAttended) {
assertIsParagraphWithText(components, 8,
"This has been an oral (face to face) hearing. Joe Bloggs the appellant attended the hearing today and the Tribunal considered the appeal bundle to page B7. First Tier Agency representative did not attend.");
"This has been an oral (face to face) hearing. The following people attended: Joe Bloggs the appellant. A representative from the First Tier Agency did not attend. The Tribunal considered the appeal bundle to page B7.");
} else if (!appellantAttended && presentingOfficerAttended) {
assertIsParagraphWithText(components, 8,
"Joe Bloggs requested an oral hearing but did not attend today. A Presenting Officer attended on behalf of the Respondent.");
Expand Down
Loading
Loading