diff --git a/src/main/java/uk/gov/dvsa/enums/CertificateTypes.java b/src/main/java/uk/gov/dvsa/enums/CertificateTypes.java index 54407460..242193d3 100644 --- a/src/main/java/uk/gov/dvsa/enums/CertificateTypes.java +++ b/src/main/java/uk/gov/dvsa/enums/CertificateTypes.java @@ -30,6 +30,7 @@ public enum CertificateTypes { CVS_FAIL_WELSH("CVS/VTP30W"), CVS_FAIL_BILINGUAL("CVS/VTP30_BILINGUAL"), CVS_PSV_PRS("CVS/PSV_PRS"), + CVS_PSV_PRS_BILINGUAL("CVS/PSV_PRS_BILINGUAL"), CVS_HGV_PASS("CVS/VTG5"), CVS_HGV_PASS_WELSH("CVS/VTG5W"), @@ -41,7 +42,9 @@ public enum CertificateTypes { CVS_HGV_TRL_FAIL_WELSH("CVS/VTG30W"), CVS_HGV_TRL_FAIL_BILINGUAL("CVS/VTG30_BILINGUAL"), CVS_HGV_PRS("CVS/HGV_PRS"), + CVS_HGV_PRS_BILINGUAL("CVS/HGV_PRS_BILINGUAL"), CVS_TRL_PRS("CVS/TRL_PRS"), + CVS_TRL_PRS_BILINGUAL("CVS/TRL_PRS_BILINGUAL"), RWT_DATA("CVS/RWT"), ADR_PASS("CVS/ADR_PASS"), VTG6_VTG7("CVS/VTG6_VTG7"), diff --git a/src/main/java/uk/gov/dvsa/enums/DocumentsConfig.java b/src/main/java/uk/gov/dvsa/enums/DocumentsConfig.java index 5912c46f..03e44fc5 100644 --- a/src/main/java/uk/gov/dvsa/enums/DocumentsConfig.java +++ b/src/main/java/uk/gov/dvsa/enums/DocumentsConfig.java @@ -44,6 +44,9 @@ public enum DocumentsConfig { CVS_PSV_PRS(CertificateTypes.CVS_PSV_PRS.getCertificateType(), CvsPsvPRS.class, new String[]{CertificateTemplates.VTP20.getCertificateTemplateName(), CertificateTemplates.VTP30.getCertificateTemplateName()}), + CVS_PSV_PRS_BILINGUAL(CertificateTypes.CVS_PSV_PRS_BILINGUAL.getCertificateType(), CvsPsvPRSBilingual.class, + new String[]{CertificateTemplates.VTP20.getCertificateTemplateName(), CertificateTemplates.VTP30.getCertificateTemplateName(), + CertificateTemplates.VTP20W.getCertificateTemplateName(), CertificateTemplates.VTP30W.getCertificateTemplateName()}), VTP20(CertificateTypes.CVS_PASS.getCertificateType(), uk.gov.dvsa.model.cvs.VTP20.class, new String[]{CertificateTemplates.VTP20.getCertificateTemplateName()}), VTP20W(CertificateTypes.CVS_PASS_WELSH.getCertificateType(), uk.gov.dvsa.model.cvs.VTP20W.class, @@ -80,6 +83,9 @@ public enum DocumentsConfig { new String[]{CertificateTemplates.RWT_DATA.getCertificateTemplateName()}), CVS_HGV_PRS(CertificateTypes.CVS_HGV_PRS.getCertificateType(), uk.gov.dvsa.model.cvs.CvsHgvPRS.class, new String[]{CertificateTemplates.VTG5.getCertificateTemplateName(), CertificateTemplates.VTG30.getCertificateTemplateName()}), + CVS_HGV_PRS_BILINGUAL(CertificateTypes.CVS_HGV_PRS_BILINGUAL.getCertificateType(), uk.gov.dvsa.model.cvs.CvsHgvPRSBilingual.class, + new String[]{CertificateTemplates.VTG5.getCertificateTemplateName(), CertificateTemplates.VTG30.getCertificateTemplateName(), + CertificateTemplates.VTG5W.getCertificateTemplateName(), CertificateTemplates.VTG30W.getCertificateTemplateName()}), CVS_PASS_BILINGUAL(CertificateTypes.CVS_PASS_BILINGUAL.getCertificateType(), uk.gov.dvsa.model.cvs.CvsPsvPassBilingual.class, new String[]{CertificateTemplates.VTP20.getCertificateTemplateName(), CertificateTemplates.VTP20W.getCertificateTemplateName()}), CVS_HGV_PASS_BILINGUAL(CertificateTypes.CVS_HGV_PASS_BILINGUAL.getCertificateType(), uk.gov.dvsa.model.cvs.CvsHgvPassBilingual.class, @@ -91,6 +97,10 @@ public enum DocumentsConfig { CVS_TRL_PRS(CertificateTypes.CVS_TRL_PRS.getCertificateType(), uk.gov.dvsa.model.cvs.CvsTrlPRS.class, new String[]{CertificateTemplates.VTG5A.getCertificateTemplateName(), CertificateTemplates.VTG30.getCertificateTemplateName()}), + CVS_TRL_PRS_BILINGUAL(CertificateTypes.CVS_TRL_PRS_BILINGUAL.getCertificateType(), uk.gov.dvsa.model.cvs.CvsTrlPRSBilingual.class, + new String[]{CertificateTemplates.VTG5A.getCertificateTemplateName(), CertificateTemplates.VTG30.getCertificateTemplateName(), + CertificateTemplates.VTG5AW.getCertificateTemplateName(), CertificateTemplates.VTG30W.getCertificateTemplateName()}), + INSPECTION_CHECKLIST(CertificateTypes.INSPECTION_CHECKLIST.getCertificateType(), InspectionChecklist.class, new String[]{CertificateTemplates.INSPECTION_CHECKLIST.getCertificateTemplateName()}), diff --git a/src/main/java/uk/gov/dvsa/model/cvs/CvsHgvPRSBilingual.java b/src/main/java/uk/gov/dvsa/model/cvs/CvsHgvPRSBilingual.java new file mode 100644 index 00000000..d0d9e1c5 --- /dev/null +++ b/src/main/java/uk/gov/dvsa/model/cvs/CvsHgvPRSBilingual.java @@ -0,0 +1,32 @@ +package uk.gov.dvsa.model.cvs; + +import uk.gov.dvsa.model.Document; +import uk.gov.dvsa.model.cvs.certificateData.CvsMotCertificateDataWelsh; + +public class CvsHgvPRSBilingual extends CvsHgvTrlFailBilingual { + + public String getTestType() { + return "HGV"; + } + + public String getPresentedDocumentNamePass() { + return "VTG5"; + } + + public String getPresentedDocumentNamePassWelsh() { + return "VTG5W"; + } + + public String getVersionNumberPass() { + return "1.0"; + } + + public String getVersionNumberPassWelsh() { + return "1.0"; + } + + public Document setData(CvsMotCertificateDataWelsh data) { + this.data = data; + return this; + } +} \ No newline at end of file diff --git a/src/main/java/uk/gov/dvsa/model/cvs/CvsPsvPRSBilingual.java b/src/main/java/uk/gov/dvsa/model/cvs/CvsPsvPRSBilingual.java new file mode 100644 index 00000000..dc63a758 --- /dev/null +++ b/src/main/java/uk/gov/dvsa/model/cvs/CvsPsvPRSBilingual.java @@ -0,0 +1,27 @@ +package uk.gov.dvsa.model.cvs; + +import uk.gov.dvsa.model.Document; +import uk.gov.dvsa.model.cvs.certificateData.CvsMotCertificateDataWelsh; + +public class CvsPsvPRSBilingual extends VTP30Bilingual { + public String getPresentedDocumentNamePass() { + return "VTP20"; + } + + public String getPresentedDocumentNamePassWelsh() { + return "VTP20W"; + } + + public String getVersionNumberPass() { + return "1.0"; + } + + public String getVersionNumberPassWelsh() { + return "1.0"; + } + + public Document setData(CvsMotCertificateDataWelsh data) { + this.data = data; + return this; + } +} diff --git a/src/main/java/uk/gov/dvsa/model/cvs/CvsTrlPRSBilingual.java b/src/main/java/uk/gov/dvsa/model/cvs/CvsTrlPRSBilingual.java new file mode 100644 index 00000000..50045362 --- /dev/null +++ b/src/main/java/uk/gov/dvsa/model/cvs/CvsTrlPRSBilingual.java @@ -0,0 +1,31 @@ +package uk.gov.dvsa.model.cvs; + +import uk.gov.dvsa.model.Document; +import uk.gov.dvsa.model.cvs.certificateData.CvsMotCertificateDataWelsh; + +public class CvsTrlPRSBilingual extends CvsHgvTrlFailBilingual { + public String getTestType() { + return "TRL"; + } + + public String getPresentedDocumentNamePass() { + return "VTG5A"; + } + + public String getPresentedDocumentNamePassWelsh() { + return "VTG5AW"; + } + + public String getVersionNumberPass() { + return "1.0"; + } + + public String getVersionNumberPassWelsh() { + return "1.0"; + } + + public Document setData(CvsMotCertificateDataWelsh data) { + this.data = data; + return this; + } +} diff --git a/src/main/resources/views/CommercialVehicles/ADR_PASS.hbs b/src/main/resources/views/CommercialVehicles/ADR_PASS.hbs index 2f27e0b5..f53fd235 100644 --- a/src/main/resources/views/CommercialVehicles/ADR_PASS.hbs +++ b/src/main/resources/views/CommercialVehicles/ADR_PASS.hbs @@ -21,11 +21,16 @@ {{#if adrData.isApplicantDetailsNull}}
{{else}} -

{{#if adrData.applicantDetails.name}}{{adrData.applicantDetails.name}}{{/if}}

-

{{#if adrData.applicantDetails.address1}}{{adrData.applicantDetails.address1}}, {{/if}} - {{#if adrData.applicantDetails.address2}}{{adrData.applicantDetails.address2}}, {{/if}} - {{#if adrData.applicantDetails.city}}{{adrData.applicantDetails.city}}, {{/if}} - {{#if adrData.applicantDetails.postCode}}{{adrData.applicantDetails.postCode}}{{/if}}

+

{{#if adrData.applicantDetails.name}} + {{adrData.applicantDetails.name}}{{/if}}

+

{{#if adrData.applicantDetails.address1}} + {{adrData.applicantDetails.address1}}, {{/if}} + {{#if adrData.applicantDetails.postTown}} + {{adrData.applicantDetails.postTown}}, {{/if}} + {{#if adrData.applicantDetails.address2}} + {{adrData.applicantDetails.address2}}, {{/if}} + {{#if adrData.applicantDetails.postCode}} + {{adrData.applicantDetails.postCode}}{{/if}}

{{/if}}
diff --git a/src/main/resources/views/CommercialVehicles/IVA30.hbs b/src/main/resources/views/CommercialVehicles/IVA30.hbs index d02c491b..955e2e00 100644 --- a/src/main/resources/views/CommercialVehicles/IVA30.hbs +++ b/src/main/resources/views/CommercialVehicles/IVA30.hbs @@ -34,7 +34,7 @@
@@ -112,7 +112,7 @@ signature - Reapplication required by: {{ivaData.reapplicationDate}} + Reapplication required by: Date: {{ivaData.date}} @@ -171,7 +171,7 @@

This notification indicates the items of non-compliance being the reason(s) why an Individual Approval Certificate (IAC) has not been issued. An application - for re-examination can be made up to 6 calendar months following the issue date + for re-examination must be made no later than 6 months following the issue date of the first "Notification of Refusal" in respect of the original application. In any other case, a new application and a full fee must be submitted.

When modification/rectification has been completed, or additional evidence of diff --git a/src/main/resources/views/CommercialVehicles/MSVA30.hbs b/src/main/resources/views/CommercialVehicles/MSVA30.hbs index d262d539..9163519d 100644 --- a/src/main/resources/views/CommercialVehicles/MSVA30.hbs +++ b/src/main/resources/views/CommercialVehicles/MSVA30.hbs @@ -34,7 +34,7 @@

@@ -107,7 +107,7 @@ signature - Retest required by: {{msvaData.retestDate}} + Reapplication required by: Date: {{msvaData.date}} @@ -166,7 +166,7 @@

This notification indicates the items of non-compliance being the reason(s) why a Minister's Approval Certificate (MAC) has not been issued. An application - for re-examination can be made up to 6 calendar months following the issue date + for re-examination must be made no later than 6 months following the issue date of the first "Notification of Refusal" in respect of the original application. In any other case, a new application and a full fee must be submitted.

When modification/rectification, etc. has been completed an application for a re-examination (verbally or in writing) diff --git a/src/test/java/htmlverification/framework/component/DefectSummaryComponent.java b/src/test/java/htmlverification/framework/component/DefectSummaryComponent.java index 8c52c83a..082fdbff 100644 --- a/src/test/java/htmlverification/framework/component/DefectSummaryComponent.java +++ b/src/test/java/htmlverification/framework/component/DefectSummaryComponent.java @@ -19,9 +19,8 @@ public class DefectSummaryComponent { public static final String MAJOR_DEFECTS_HEADER_TEXT_WELSH_CVS = "Atgyweirio ar unwaith (diffygion mawr)"; public static final String DANGEROUS_DEFECTS_HEADER_PARTIAL_TEXT_WELSH = "Peidiwch â gyrru nes iddo gael ei drwsio (diffygion peryglus)"; public static final String DANGEROUS_DEFECTS_HEADER_PARTIAL_TEXT_WELSH_CVS = "Peidiwch â gyrru nes ei fod wedi cael ei atgyweirio (diffygion peryglus)"; - public static final String DANGEROUS_DEFECTS_HEADER_TEXT_WELSH_CVS = "Peidiwch â gyrru nes ei fod wedi cael ei atgyweirio"; - + public static final String PRS_DEFECTS_HEADER_TEXT_WELSH_CVS = "Diffygion wedi'u cywiro ar adeg y prawf"; //CVS only public static final String PRS_DEFECTS_HEADER_TEXT = "Monitor and repair if necessary (advisories)"; diff --git a/src/test/java/htmlverification/service/CvsCertificateTestDataProvider.java b/src/test/java/htmlverification/service/CvsCertificateTestDataProvider.java index 23028c5a..f163eb4e 100644 --- a/src/test/java/htmlverification/service/CvsCertificateTestDataProvider.java +++ b/src/test/java/htmlverification/service/CvsCertificateTestDataProvider.java @@ -281,7 +281,9 @@ public static VTP30W getVtp30w() { .setDangerousDefectsWelsh(generateRFRs(DANGEROUS_RFR_TEXT, 1)) .setMajorDefectsHeader(DefectSummaryComponent.MAJOR_DEFECTS_HEADER_TEXT_WELSH) .setDangerousDefectsHeader(DefectSummaryComponent.DANGEROUS_DEFECTS_HEADER_PARTIAL_TEXT_WELSH_CVS) - .setPrsDefects(generateRFRs(PRS_RFR_TEXT, 1)); + .setPrsDefects(generateRFRs(PRS_RFR_TEXT, 1)) + .setMajorDefects(generateRFRs(MAJOR_RFR_TEXT, 1)) + .setDangerousDefects(generateRFRs(DANGEROUS_RFR_TEXT, 1)); vtp30.setFailData(vtp30Data); @@ -626,6 +628,84 @@ public static CvsTrlPassBilingual getCvsTrlPassBilingual() { return trlPassBilingual; } + public static CvsTrlPRSBilingual getCvsTrlPrsBilingual() { + CvsTrlPRSBilingual trlPrsBilingual = new CvsTrlPRSBilingual(); + trlPrsBilingual.setDocumentName(CertificateTypes.CVS_TRL_PRS_BILINGUAL.getCertificateType()); + CvsMotFailCertificateDataWelsh failData = new CvsMotFailCertificateDataWelsh(); + CvsMotCertificateDataWelsh passData = new CvsMotCertificateDataWelsh(); + + passData + .setMinorDefectsWelsh(generateRFRs(MINOR_RFR_TEXT, 1)) + .setAdvisoryDefectsWelsh(generateRFRs(ADVISORY_RFR_TEXT, 1)) + .setMinorDefectsHeader(DefectSummaryComponent.MINOR_DEFECTS_HEADER_TEXT_WELSH_CVS) + .setAdvisoryDefectsHeader(DefectSummaryComponent.ADVISORIES_HEADER_TEXT_WELSH_CVS) + .setMinorDefects(generateRFRs(MINOR_RFR_TEXT, 1)) + .setAdvisoryDefects(generateRFRs(ADVISORY_RFR_TEXT, 1)) + .setCurrentOdometer( + new CvsOdometerReading("22341", "mi", "01.02.2019") + ) + .setOdometerHistoryList(Arrays.asList( + new CvsOdometerReading("120", "km", "01.02.2016"), + new CvsOdometerReading("330", "km", "30.01.2017") + )) + .setCountryOfRegistrationCode("GB") + .setRawVin(VIN) + .setDateOfTheTest("12.11.2018") + .setExpiryDate("12.10.2018") + .setTestStationPNumber("P12345") + .setTestStationName("TEST STATION NAME") + .setMake("Aston Martin") + .setModel("DB11") + .setIssuersName("R.DREWNO") + .setTestStationName("POPULAR GARAGES") + .setTestNumber("1806 8140 0628") + .setEarliestDateOfTheNextTest("13.10.2018") + .setTrn("ABC1234") + .setIsTrailer(true); + + failData + .setPrsDefectsHeaderWelsh(DefectSummaryComponent.PRS_DEFECTS_HEADER_TEXT_WELSH_CVS) + .setPrsDefectsWelsh(generateRFRs(PRS_RFR_TEXT, 1)) + .setPrsDefects(generateRFRs(PRS_RFR_TEXT, 1)) + .setSeatBeltNumber("10") + .setSeatBeltPreviousCheckDate("12.11.2018") + .setSeatBeltTested("Yes") + .setCountryOfRegistrationCode("GB") + .setRawVin(VIN) + .setDateOfTheTest("12.11.2018") + .setExpiryDate("12.10.2018") + .setMake("MERCEDES") + .setModel("Z WAGON") + .setVehicleEuClassification("M1") + .setRawVrm("KA1SAPH") + .setCurrentOdometer( + new CvsOdometerReading("20000", "mi", "22.08.2023") + ) + .setOdometerHistoryList(Arrays.asList( + new CvsOdometerReading("12000", "mi", "13.08.2022"), + new CvsOdometerReading("7000", "mi", "02.08.2021") + )) + .setIssuersName("TESTER NAME") + .setTestStationName("TEST STATION NAME") + .setTestStationPNumber("P12345") + .setTestNumber("X01X00001") + .setEarliestDateOfTheNextTest("01.07.2024") + .setTrn("ABC1234") + .setIsTrailer(true); + trlPrsBilingual.setFailData(failData); + + Signature signature = new Signature(); + signature + .setImageData("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==") + .setImageType("png"); + + trlPrsBilingual.setSignature(signature); + trlPrsBilingual.setData(passData); + trlPrsBilingual.setData(passData); + + return trlPrsBilingual; + } + public static CvsHgvTrlFailBilingual getCvsHgvTrlFailBilingual() { CvsHgvTrlFailBilingual hgvFailBilingual = new CvsHgvTrlFailBilingual(); hgvFailBilingual.setDocumentName(CertificateTypes.CVS_HGV_TRL_FAIL_BILINGUAL.getCertificateType()); @@ -679,7 +759,81 @@ public static CvsHgvTrlFailBilingual getCvsHgvTrlFailBilingual() { hgvFailBilingual.setSignature(signature); return hgvFailBilingual; - }; + } + + public static CvsHgvPRSBilingual getCvsHgvPRSBilingual() { + CvsHgvPRSBilingual hgvPRSBilingual = new CvsHgvPRSBilingual(); + hgvPRSBilingual.setDocumentName(CertificateTypes.CVS_HGV_PRS_BILINGUAL.getCertificateType()); + + CvsMotFailCertificateDataWelsh bilingualFailData = new CvsMotFailCertificateDataWelsh(); + bilingualFailData + .setPrsDefectsHeaderWelsh(DefectSummaryComponent.PRS_DEFECTS_HEADER_TEXT_WELSH_CVS) + .setPrsDefectsWelsh(generateRFRs(PRS_RFR_TEXT, 1)) + .setPrsDefects(generateRFRs(PRS_RFR_TEXT, 1)) + .setSeatBeltNumber("10") + .setSeatBeltPreviousCheckDate("12.11.2018") + .setSeatBeltTested("Yes") + .setCountryOfRegistrationCode("GB") + .setRawVin(VIN) + .setDateOfTheTest("22.08.2023") + .setExpiryDate("31.08.2024") + .setTestStationPNumber("P12345") + .setTestStationName("TEST STATION NAME") + .setMake("Aston Martin") + .setModel("DB11") + .setVehicleEuClassification("M1") + .setRawVrm("KA1SAPH") + .setCurrentOdometer( + new CvsOdometerReading("20000", "km", "22.08.2023") + ) + .setOdometerHistoryList(Arrays.asList( + new CvsOdometerReading("12000", "km", "13.08.2022"), + new CvsOdometerReading("7000", "km", "02.08.2021") + ) + ) + .setIssuersName("TESTER NAME") + .setTestStationName("TEST STATION NAME") + .setTestNumber("X01X00001") + .setEarliestDateOfTheNextTest("01.07.2024") + .setTrn(null) + .setIsTrailer(false); + + CvsMotCertificateDataWelsh bilingualData = new CvsMotCertificateDataWelsh(); + bilingualData + .setMinorDefectsWelsh(generateRFRs(MINOR_RFR_TEXT, 1)) + .setAdvisoryDefectsWelsh(generateRFRs(ADVISORY_RFR_TEXT, 1)) + .setMinorDefectsHeader(DefectSummaryComponent.MINOR_DEFECTS_HEADER_TEXT_WELSH_CVS) + .setAdvisoryDefectsHeader(DefectSummaryComponent.ADVISORIES_HEADER_TEXT_WELSH_CVS) + .setMinorDefects(generateRFRs(MINOR_RFR_TEXT, 1)) + .setAdvisoryDefects(generateRFRs(ADVISORY_RFR_TEXT, 1)) + .setCountryOfRegistrationCode("GB") + .setRawVin(VIN) + .setDateOfTheTest("22.08.2023") + .setExpiryDate("31.08.2024") + .setTestStationPNumber("P12345") + .setTestStationName("TEST STATION NAME") + .setMake("Aston Martin") + .setModel("DB11") + .setVehicleEuClassification("M1") + .setRawVrm("KA15APH") + .setCurrentOdometer( + new CvsOdometerReading("20000", "km", "22.08.2023") + ) + .setOdometerHistoryList(Arrays.asList( + new CvsOdometerReading("12000", "km", "13.08.2022"), + new CvsOdometerReading("7000", "km", "02.08.2021") + ) + ) + .setIssuersName("TESTER NAME") + .setTestStationName("TEST STATION NAME") + .setTestNumber("X01X00001") + .setEarliestDateOfTheNextTest("01.07.2024"); + + hgvPRSBilingual.setFailData(bilingualFailData); + hgvPRSBilingual.setData(bilingualData); + + return hgvPRSBilingual; + } public static VTP30Bilingual getVtp30Bilingual() { VTP30Bilingual hgvFailBilingual = new VTP30Bilingual(); @@ -965,6 +1119,15 @@ public static VTG30W getVTG30WHavingInvalidXMLCharacter() { return document; } + public static CvsHgvPRSBilingual getCvsHgvPRSBilingualHavingInvalidXMLCharacter() { + CvsHgvPRSBilingual document = getCvsHgvPRSBilingual(); + + CvsMotFailCertificateData data = document.getFailData(); + data.setPrsDefects(generateRFRs(INVALID_XML_RFR_TEXT, 3)); + + return document; + } + private static List generateRFRs(String rfrName, int numberOfRfrs) { List reasonsForRejection = new ArrayList<>(); @@ -972,4 +1135,23 @@ private static List generateRFRs(String rfrName, int numberOfRfrs) { reasonsForRejection.add(rfrName + " #" + i); } return reasonsForRejection; } + + public static CvsPsvPRSBilingual getCvsPsvPRSBilingual() { + CvsPsvPRSBilingual cvsPsvPRSBilingual = new CvsPsvPRSBilingual(); + cvsPsvPRSBilingual.setDocumentName(CertificateTypes.CVS_PSV_PRS_BILINGUAL.getCertificateType()); + + cvsPsvPRSBilingual.setData(getVtp20W().getData()); + cvsPsvPRSBilingual.setFailData(getVtp30w().getFailData()); + + return cvsPsvPRSBilingual; + } + + public static CvsMotCertificate getCvsPsvPRSBilingualHavingInvalidXMLCharacter() { + CvsPsvPRSBilingual document = getCvsPsvPRSBilingual(); + + CvsMotFailCertificateData data = document.getFailData(); + data.setPrsDefects(generateRFRs(INVALID_XML_RFR_TEXT, 3)); + + return document; + } } diff --git a/src/test/java/htmlverification/tests/CvsHgvPRSBilingualTest.java b/src/test/java/htmlverification/tests/CvsHgvPRSBilingualTest.java new file mode 100644 index 00000000..31365c7c --- /dev/null +++ b/src/test/java/htmlverification/tests/CvsHgvPRSBilingualTest.java @@ -0,0 +1,247 @@ +package htmlverification.tests; + +import com.github.jknack.handlebars.Handlebars; +import htmlverification.framework.page_object.CertificatePageObject; +import htmlverification.service.CvsCertificateTestDataProvider; +import org.junit.Before; +import org.junit.Test; +import uk.gov.dvsa.model.cvs.CvsHgvPRSBilingual; +import uk.gov.dvsa.service.HtmlGenerator; + +import java.io.IOException; +import java.util.List; + +import static org.junit.Assert.assertEquals; +import static uk.gov.dvsa.model.cvs.certificateData.CvsMotCertificateData.PASS_SUMMARY_HEADER; +import static uk.gov.dvsa.model.cvs.certificateData.CvsMotCertificateData.PASS_WITH_DEFECTS_HEADER; +import static uk.gov.dvsa.model.cvs.certificateData.CvsMotCertificateDataWelsh.PASS_SUMMARY_HEADER_WELSH; +import static uk.gov.dvsa.model.cvs.certificateData.CvsMotCertificateDataWelsh.PASS_WITH_DEFECTS_HEADER_WELSH; +import static uk.gov.dvsa.model.cvs.certificateData.CvsMotFailCertificateData.FAILED_SUMMARY_HEADER; +import static uk.gov.dvsa.model.cvs.certificateData.CvsMotFailCertificateDataWelsh.FAILED_SUMMARY_HEADER_WELSH; +import static uk.gov.dvsa.model.mot.results.Summary.EU_NUMBER_SUMMARY_HEADER; + +public class CvsHgvPRSBilingualTest { + + protected HtmlGenerator htmlGenerator; + protected CvsHgvPRSBilingual testCertificate; + protected CertificatePageObject certificatePageObjectVTG5; + protected CertificatePageObject certificatePageObjectVTG30; + + protected CertificatePageObject certificatePageObjectVTG5W; + protected CertificatePageObject certificatePageObjectVTG30W; + + public CvsHgvPRSBilingualTest() { + this.htmlGenerator = new HtmlGenerator(new Handlebars()); + } + + @Before + public void setup() throws IOException { + testCertificate = CvsCertificateTestDataProvider.getCvsHgvPRSBilingual(); + + String certHtmlVTG5 = htmlGenerator.generate(testCertificate).get(0); + String certHtmlVTG30 = htmlGenerator.generate(testCertificate).get(1); + String certHtmlVTV5W = htmlGenerator.generate(testCertificate).get(2); + String certHtmlVTG30W = htmlGenerator.generate(testCertificate).get(3); + + certificatePageObjectVTG5 = new CertificatePageObject(certHtmlVTG5); + certificatePageObjectVTG30 = new CertificatePageObject(certHtmlVTG30); + certificatePageObjectVTG5W = new CertificatePageObject(certHtmlVTV5W); + certificatePageObjectVTG30W = new CertificatePageObject(certHtmlVTG30W); + } + + @Test + public void verifyResultSummaries() { + String resultName = certificatePageObjectVTG5.getDefectSummaryComponent().getResultNameItem().text(); + String resultNameFail = certificatePageObjectVTG30.getDefectSummaryComponent().getResultNameItem().text(); + String resultNameWelsh = certificatePageObjectVTG5W.getDefectSummaryComponent().getResultNameItem().text(); + String resultNameFailWelsh = certificatePageObjectVTG30W.getDefectSummaryComponent().getResultNameItem().text(); + + assertEquals( + String.format("%s%s%s %s", "(", EU_NUMBER_SUMMARY_HEADER, ")", PASS_WITH_DEFECTS_HEADER), + resultName + ); + assertEquals( + String.format("%s%s%s %s", "(", EU_NUMBER_SUMMARY_HEADER, ")", FAILED_SUMMARY_HEADER), + resultNameFail + ); + assertEquals( + String.format("%s%s%s %s", "(", EU_NUMBER_SUMMARY_HEADER, ")", PASS_WITH_DEFECTS_HEADER_WELSH), + resultNameWelsh + ); + assertEquals( + String.format("%s%s%s %s", "(", EU_NUMBER_SUMMARY_HEADER, ")", FAILED_SUMMARY_HEADER_WELSH), + resultNameFailWelsh + ); + } + + @Test + public void verifyVin() { + String vin = certificatePageObjectVTG5.getVin(); + String vinFail = certificatePageObjectVTG30.getVin(); + String vinWelsh = certificatePageObjectVTG5W.getVin(); + String vinFailWelsh = certificatePageObjectVTG30W.getVin(); + + assertEquals(testCertificate.getData().getRawVin(), vin); + assertEquals(testCertificate.getFailData().getRawVin(), vinFail); + assertEquals(testCertificate.getData().getRawVin(), vinWelsh); + assertEquals(testCertificate.getFailData().getRawVin(), vinFailWelsh); + } + + @Test + public void verifyCountryOfRegistration() { + String country = certificatePageObjectVTG5.getCountryOfRegistration(); + String countryFail = certificatePageObjectVTG30.getCountryOfRegistration(); + String countryWelsh = certificatePageObjectVTG5W.getCountryOfRegistration(); + String countryFailWelsh = certificatePageObjectVTG30W.getCountryOfRegistration(); + + assertEquals(testCertificate.getData().getCountryOfRegistrationCode(), country); + assertEquals(testCertificate.getFailData().getCountryOfRegistrationCode(), countryFail); + assertEquals(testCertificate.getData().getCountryOfRegistrationCode(), countryWelsh); + assertEquals(testCertificate.getFailData().getCountryOfRegistrationCode(), countryFailWelsh); + } + + @Test + public void verifyMakeAndModel() { + String makeAndModel = certificatePageObjectVTG5.getMakeAndModel(); + String makeAndModelFail = certificatePageObjectVTG30.getMakeAndModel(); + String makeAndModelWelsh = certificatePageObjectVTG5W.getMakeAndModel(); + String makeAndModelFailWelsh = certificatePageObjectVTG30W.getMakeAndModel(); + + assertEquals( + String.format("%s%s %s", testCertificate.getData().getMake(), ",", testCertificate.getData().getModel()), + makeAndModel + ); + assertEquals( + String.format("%s%s %s", testCertificate.getFailData().getMake(), ",", testCertificate.getFailData().getModel()), + makeAndModelFail + ); + assertEquals( + String.format("%s%s %s", testCertificate.getData().getMake(), ",", testCertificate.getData().getModel()), + makeAndModelWelsh + ); + assertEquals( + String.format("%s%s %s", testCertificate.getFailData().getMake(), ",", testCertificate.getFailData().getModel()), + makeAndModelFailWelsh + ); + } + + @Test + public void verifyVehicleCategory() { + String vehicleCategory = certificatePageObjectVTG5.getVehicleCategory(); + String vehicleCategoryFail = certificatePageObjectVTG30.getVehicleCategory(); + String vehicleCategoryWelsh = certificatePageObjectVTG5W.getVehicleCategory(); + String vehicleCategoryFailWelsh = certificatePageObjectVTG30W.getVehicleCategory(); + + assertEquals(testCertificate.getData().getVehicleEuClassification(), vehicleCategory); + assertEquals(testCertificate.getFailData().getVehicleEuClassification(), vehicleCategoryFail); + assertEquals(testCertificate.getData().getVehicleEuClassification(), vehicleCategoryWelsh); + assertEquals(testCertificate.getFailData().getVehicleEuClassification(), vehicleCategoryFailWelsh); + } + + @Test + public void verifyMileage() { + String mileage = certificatePageObjectVTG5.getMileage(); + String mileageFail = certificatePageObjectVTG30.getMileage(); + String mileageWelsh = certificatePageObjectVTG5W.getMileage(); + String mileageFailWelsh = certificatePageObjectVTG30W.getMileage(); + + assertEquals(testCertificate.getData().getFormattedCurrentOdometer(), mileage); + assertEquals(testCertificate.getFailData().getFormattedCurrentOdometer(), mileageFail); + assertEquals("20,000 cilometrau", mileageWelsh); + assertEquals("20,000 cilometrau", mileageFailWelsh); + } + + @Test + public void verifyPrsDefects() { + List prsDefects = certificatePageObjectVTG5.getDefectSummaryComponent().getPrsDefects().eachText(); + } + + @Test + public void verifyAdvisoryDefects() { + List advisoryDefects = certificatePageObjectVTG5.getDefectSummaryComponent().getAdvisories().eachText(); + assertEquals(1, advisoryDefects.size()); + } + + @Test + public void verifyAdvisoryDefectsWelsh() { + List advisoryDefects = certificatePageObjectVTG5W.getDefectSummaryComponent().getAdvisoriesWelshCVS().eachText(); + assertEquals(1, advisoryDefects.size()); + } + + @Test + public void verifyMinorDefects() { + List minorDefects = certificatePageObjectVTG5.getDefectSummaryComponent().getMinorDefects().eachText(); + assertEquals(1, minorDefects.size()); + } + + @Test + public void verifyMinorDefectsWelsh() { + List minorDefects = certificatePageObjectVTG5W.getDefectSummaryComponent().getMinorDefectsWelshCVS().eachText(); + assertEquals(1, minorDefects.size()); + } + + @Test + public void verifyDateOfTheTest() { + String dateOfTheTest = certificatePageObjectVTG5.getDateOfTheTest(); + String dateOfTheTestFail = certificatePageObjectVTG30.getDateOfTheTest(); + String dateOfTheTestWelsh = certificatePageObjectVTG5W.getDateOfTheTest(); + String dateOfTheTestFailWelsh = certificatePageObjectVTG30W.getDateOfTheTest(); + + assertEquals(testCertificate.getData().getDateOfTheTest(), dateOfTheTest); + assertEquals(testCertificate.getFailData().getDateOfTheTest(), dateOfTheTestFail); + assertEquals(testCertificate.getData().getDateOfTheTest(), dateOfTheTestWelsh); + assertEquals(testCertificate.getFailData().getDateOfTheTest(), dateOfTheTestFailWelsh); + } + + @Test + public void verifyLocationOfTheTest() { + String locationOfTheTest = certificatePageObjectVTG5.getLocationOfTheTest(); + String locationOfTheTestFail = certificatePageObjectVTG30.getLocationOfTheTest(); + String locationOfTheTestWelsh = certificatePageObjectVTG5W.getLocationOfTheTest(); + String locationOfTheTestFailWelsh = certificatePageObjectVTG30W.getLocationOfTheTest(); + + String pNumber = testCertificate.getData().getTestStationPNumber(); + String testStationName = testCertificate.getData().getTestStationName(); + + String pNumberFail = testCertificate.getFailData().getTestStationPNumber(); + String testStationNameFail = testCertificate.getFailData().getTestStationName(); + + assertEquals(pNumber + ", " + testStationName, locationOfTheTest); + assertEquals(pNumberFail + ", " + testStationNameFail, locationOfTheTestFail); + assertEquals(pNumber + ", " + testStationName, locationOfTheTestWelsh); + assertEquals(pNumberFail + ", " + testStationNameFail, locationOfTheTestFailWelsh); + } + + @Test + public void verifyTestingOrganisationAndInspectorName() { + String orgName = certificatePageObjectVTG5.getTestingOrganisationAndInspectorsName(); + String orgNameFail = certificatePageObjectVTG30.getTestingOrganisationAndInspectorsName(); + String orgNameWelsh = certificatePageObjectVTG5W.getTestingOrganisationAndInspectorsName(); + String orgNameFailWelsh = certificatePageObjectVTG30W.getTestingOrganisationAndInspectorsName(); + + String organisation = testCertificate.getData().getTestingOrganisation(); + String organisationFail = testCertificate.getFailData().getTestingOrganisation(); + String organisationWelsh = testCertificate.getFailData().getTestingOrganisationWelsh(); + + String testerName = testCertificate.getData().getIssuersName(); + String testerNameFail = testCertificate.getFailData().getIssuersName(); + + assertEquals(organisation + " " + testerName, orgName); + assertEquals(organisationFail + " " + testerNameFail, orgNameFail); + assertEquals(organisationWelsh + " " + testerName, orgNameWelsh); + assertEquals(organisationWelsh + " " + testerNameFail, orgNameFailWelsh); + } + + @Test + public void verifyMotTestNumber() { + String testNumber = certificatePageObjectVTG5.getTestNumber(); + String testNumberFail = certificatePageObjectVTG30.getTestNumber(); + String testNumberWelsh = certificatePageObjectVTG5W.getTestNumber(); + String testNumberFailWelsh = certificatePageObjectVTG30W.getTestNumber(); + + assertEquals(testCertificate.getData().getTestNumber(), testNumber); + assertEquals(testCertificate.getFailData().getTestNumber(), testNumberFail); + assertEquals(testCertificate.getData().getTestNumber(), testNumberWelsh); + assertEquals(testCertificate.getFailData().getTestNumber(), testNumberFailWelsh); + } +} diff --git a/src/test/java/htmlverification/tests/CvsPsvPrsBilingualTest.java b/src/test/java/htmlverification/tests/CvsPsvPrsBilingualTest.java new file mode 100644 index 00000000..fb124163 --- /dev/null +++ b/src/test/java/htmlverification/tests/CvsPsvPrsBilingualTest.java @@ -0,0 +1,204 @@ +package htmlverification.tests; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.github.jknack.handlebars.Handlebars; +import htmlverification.framework.page_object.CertificatePageObject; +import htmlverification.service.CvsCertificateTestDataProvider; +import org.junit.Before; +import org.junit.Test; +import uk.gov.dvsa.model.cvs.CvsPsvPRSBilingual; +import uk.gov.dvsa.service.HtmlGenerator; + +import java.io.IOException; +import java.util.List; + +import static org.junit.Assert.assertEquals; +import static uk.gov.dvsa.model.cvs.certificateData.CvsMotCertificateData.PASS_WITH_DEFECTS_HEADER; +import static uk.gov.dvsa.model.cvs.certificateData.CvsMotCertificateDataWelsh.PASS_WITH_DEFECTS_HEADER_WELSH; +import static uk.gov.dvsa.model.mot.results.Summary.EU_NUMBER_SUMMARY_HEADER; + +public class CvsPsvPrsBilingualTest { + protected HtmlGenerator htmlGenerator; + protected CvsPsvPRSBilingual testCertificate; + protected CertificatePageObject certificatePageObjectVTP20; + protected CertificatePageObject certificatePageObjectVTP30; + protected CertificatePageObject certificatePageObjectVTP20Welsh; + protected CertificatePageObject certificatePageObjectVTP30Welsh; + + public CvsPsvPrsBilingualTest() { + this.htmlGenerator = new HtmlGenerator(new Handlebars()); + } + + @Before + public void setup() throws IOException { + testCertificate = CvsCertificateTestDataProvider.getCvsPsvPRSBilingual(); + String certHtmlVTP20 = htmlGenerator.generate(testCertificate).get(0); + String certHtmlVTP30 = htmlGenerator.generate(testCertificate).get(1); + String certHtmlVTP20Welsh = htmlGenerator.generate(testCertificate).get(2); + String certHtmlVTP30Welsh = htmlGenerator.generate(testCertificate).get(3); + + certificatePageObjectVTP20 = new CertificatePageObject(certHtmlVTP20); + certificatePageObjectVTP30 = new CertificatePageObject(certHtmlVTP30); + certificatePageObjectVTP20Welsh = new CertificatePageObject(certHtmlVTP20Welsh); + certificatePageObjectVTP30Welsh = new CertificatePageObject(certHtmlVTP30Welsh); + } + + @Test + public void verifyResultSummaries() { + String resultName = certificatePageObjectVTP20.getDefectSummaryComponent().getResultNameItem().text(); + String resultNameWelsh = certificatePageObjectVTP20Welsh.getDefectSummaryComponent().getResultNameItem().text(); + + assertEquals( + String.format("%s%s%s %s", "(", EU_NUMBER_SUMMARY_HEADER, ")", PASS_WITH_DEFECTS_HEADER), + resultName); + assertEquals( + String.format("%s%s%s %s", "(", EU_NUMBER_SUMMARY_HEADER, ")", PASS_WITH_DEFECTS_HEADER_WELSH), + resultNameWelsh); + } + + @Test + public void verifyCountryOfRegistration() { + String vtp20CountryOfRegistration = certificatePageObjectVTP20.getCountryOfRegistration(); + String vtp30CountryOfRegistration = certificatePageObjectVTP30.getCountryOfRegistration(); + String vtp20WelshCountryOfRegistration = certificatePageObjectVTP20Welsh.getCountryOfRegistration(); + String vtp30WelshCountryOfRegistration = certificatePageObjectVTP30Welsh.getCountryOfRegistration(); + + assertEquals(testCertificate.getData().getCountryOfRegistrationCode(), vtp20CountryOfRegistration); + assertEquals(testCertificate.getData().getCountryOfRegistrationCode(), vtp30CountryOfRegistration); + assertEquals(testCertificate.getFailData().getCountryOfRegistrationCode(), vtp20WelshCountryOfRegistration); + assertEquals(testCertificate.getFailData().getCountryOfRegistrationCode(), vtp30WelshCountryOfRegistration); + } + + @Test + public void verifyMakeAndModel() { + String vtp20MakeAndModel = certificatePageObjectVTP20.getMakeAndModel(); + String vtp30MakeAndModel = certificatePageObjectVTP30.getMakeAndModel(); + String vtp20WelshMakeAndModel = certificatePageObjectVTP20Welsh.getMakeAndModel(); + String vtp30WelshMakeAndModel = certificatePageObjectVTP30Welsh.getMakeAndModel(); + + assertEquals( + String.format("%s%s %s", testCertificate.getData().getMake(), ",", testCertificate.getData().getModel()), + vtp20MakeAndModel + ); + assertEquals( + String.format("%s%s %s", testCertificate.getFailData().getMake(), ",", testCertificate.getFailData().getModel()), + vtp30MakeAndModel + ); + + assertEquals( + String.format("%s%s %s", testCertificate.getData().getMake(), ",", testCertificate.getData().getModel()), + vtp20WelshMakeAndModel + ); + assertEquals( + String.format("%s%s %s", testCertificate.getFailData().getMake(), ",", testCertificate.getFailData().getModel()), + vtp30WelshMakeAndModel + ); + } + + @Test + public void verifyAdvisoryDefects() { + List vtp20AdvisoryDefects = certificatePageObjectVTP20.getDefectSummaryComponent().getAdvisories().eachText(); + assertEquals(1, vtp20AdvisoryDefects.size()); + } + + @Test + public void verifyMinorDefects() { + List minorDefects = certificatePageObjectVTP20.getDefectSummaryComponent().getMinorDefects().eachText(); + assertEquals(1, minorDefects.size()); + } + + + @Test + public void verifyMajorDefects() { + List vtp30MajorDefects = certificatePageObjectVTP30.getDefectSummaryComponent().getMajorDefects().eachText(); + assertEquals(1, vtp30MajorDefects.size()); + } + + @Test + public void verifyDangerousDefects() { + List vtp30DangerousDefects = certificatePageObjectVTP30.getDefectSummaryComponent().getDangerousDefects().eachText(); + assertEquals(1, vtp30DangerousDefects.size()); + } + + @Test + public void verifyAdvisoryDefectsWelsh() { + List advisoryDefects = certificatePageObjectVTP30Welsh.getDefectSummaryComponent().getAdvisoriesWelshCVS().eachText(); + assertEquals(1, advisoryDefects.size()); + } + + @Test + public void verifyMinorDefectsWelsh() { + List minorDefects = certificatePageObjectVTP30Welsh.getDefectSummaryComponent().getMinorDefectsWelshCVS().eachText(); + assertEquals(1, minorDefects.size()); + } + + @Test + public void verifyMajorDefectsWelsh() { + List vtp30MajorDefects = certificatePageObjectVTP30Welsh.getDefectSummaryComponent().getMajorDefectsWelshCVS().eachText(); + assertEquals(1, vtp30MajorDefects.size()); + } + + @Test + public void verifyDangerousDefectsWelsh() { + List vtp30DangerousDefects = certificatePageObjectVTP30Welsh.getDefectSummaryComponent().getDangerousDefectsWelshCVS().eachText(); + assertEquals(1, vtp30DangerousDefects.size()); + } + + @Test + public void verifyDateOfTheTest() { + String vtp20DateOfTheTest = certificatePageObjectVTP20.getDateOfTheTest(); + String vtp30DateOfTheTest = certificatePageObjectVTP30.getDateOfTheTest(); + String vtp20WelshDateOfTheTest = certificatePageObjectVTP20Welsh.getDateOfTheTest(); + String vtp30WelshDateOfTheTest = certificatePageObjectVTP30Welsh.getDateOfTheTest(); + + assertEquals("12.11.2018", vtp20DateOfTheTest); + assertEquals("12.11.2018", vtp30DateOfTheTest); + assertEquals("12.11.2018", vtp20WelshDateOfTheTest); + assertEquals("12.11.2018", vtp30WelshDateOfTheTest); + } + + @Test + public void verifyLocationOfTheTest() { + String vtp20LocationOfTheTest = certificatePageObjectVTP20.getLocationOfTheTest(); + String vtp30LocationOfTheTest = certificatePageObjectVTP30.getLocationOfTheTest(); + String vtp20WelshLocationOfTheTest = certificatePageObjectVTP20Welsh.getLocationOfTheTest(); + String vtp30WelshLocationOfTheTest = certificatePageObjectVTP30Welsh.getLocationOfTheTest(); + + assertEquals("P12345, POPULAR GARAGES", vtp20LocationOfTheTest); + assertEquals("P12345, POPULAR GARAGES", vtp30LocationOfTheTest); + assertEquals("P12345, POPULAR GARAGES", vtp20WelshLocationOfTheTest); + assertEquals("P12345, POPULAR GARAGES", vtp30WelshLocationOfTheTest); + } + + @Test + public void verifyTestingOrganisationAndInspectorsName() { + String vtp20TestingOrganisationAndInspectorsName = certificatePageObjectVTP20.getTestingOrganisationAndInspectorsName(); + String vtp30TestingOrganisationAndInspectorsName = certificatePageObjectVTP30.getTestingOrganisationAndInspectorsName(); + String vtp20WelshTestingOrganisationAndInspectorsName = certificatePageObjectVTP20Welsh.getTestingOrganisationAndInspectorsName(); + String vtp30WelshTestingOrganisationAndInspectorsName1 = certificatePageObjectVTP30Welsh.getTestingOrganisationAndInspectorsName(); + + assertEquals("DRIVER AND VEHICLE STANDARDS AGENCY R.DREWNO", vtp20TestingOrganisationAndInspectorsName); + assertEquals("DRIVER AND VEHICLE STANDARDS AGENCY R.DREWNO", vtp30TestingOrganisationAndInspectorsName); + assertEquals("ASIANTAETH SAFONAU GYRWYR A CHERBYDAU R.DREWNO", vtp20WelshTestingOrganisationAndInspectorsName); + assertEquals("ASIANTAETH SAFONAU GYRWYR A CHERBYDAU R.DREWNO", vtp30WelshTestingOrganisationAndInspectorsName1); + } + + @Test + public void verifyMotTestNumber() { + String testNumber = certificatePageObjectVTP20.getTestNumber(); + String testNumber2 = certificatePageObjectVTP30.getTestNumber(); + + assertEquals("1806 8140 0628", testNumber); + assertEquals("1806 8140 0628", testNumber2); + } + + @Test + public void verifyExpiryDateOnPassIsPresent() { + String expiryDate = certificatePageObjectVTP20.getExpiryDate(); + String expiryDateWelsh = certificatePageObjectVTP20Welsh.getExpiryDate(); + + assertEquals("12.10.2018", expiryDate); + assertEquals("12.10.2018", expiryDateWelsh); + } +} + diff --git a/src/test/java/htmlverification/tests/CvsTrlPrsBilingualTest.java b/src/test/java/htmlverification/tests/CvsTrlPrsBilingualTest.java new file mode 100644 index 00000000..94705904 --- /dev/null +++ b/src/test/java/htmlverification/tests/CvsTrlPrsBilingualTest.java @@ -0,0 +1,196 @@ +package htmlverification.tests; + +import com.github.jknack.handlebars.Handlebars; +import htmlverification.framework.page_object.CertificatePageObject; +import htmlverification.service.CvsCertificateTestDataProvider; +import org.junit.Before; +import org.junit.Test; +import uk.gov.dvsa.model.cvs.CvsTrlPRSBilingual; +import uk.gov.dvsa.service.HtmlGenerator; + +import java.io.IOException; +import java.util.List; + +import static org.junit.Assert.assertEquals; +import static uk.gov.dvsa.model.cvs.certificateData.CvsMotCertificateData.PASS_WITH_DEFECTS_HEADER; +import static uk.gov.dvsa.model.cvs.certificateData.CvsMotCertificateDataWelsh.PASS_WITH_DEFECTS_HEADER_WELSH; +import static uk.gov.dvsa.model.cvs.certificateData.CvsMotFailCertificateData.FAILED_SUMMARY_HEADER; +import static uk.gov.dvsa.model.cvs.certificateData.CvsMotFailCertificateDataWelsh.FAILED_SUMMARY_HEADER_WELSH; +import static uk.gov.dvsa.model.mot.results.Summary.EU_NUMBER_SUMMARY_HEADER; + +public class CvsTrlPrsBilingualTest { + protected HtmlGenerator htmlGenerator; + protected CvsTrlPRSBilingual testCertificate; + protected CertificatePageObject certificatePageObjectVTG5A; + protected CertificatePageObject certificatePageObjectVTG5AW; + protected CertificatePageObject certificatePageObjectVTG30; + protected CertificatePageObject certificatePageObjectVTG30W; + + public CvsTrlPrsBilingualTest() { + this.htmlGenerator = new HtmlGenerator(new Handlebars()); + } + + @Before + public void setup() throws IOException { + testCertificate = CvsCertificateTestDataProvider.getCvsTrlPrsBilingual(); + + String certHtmlVTG5A = htmlGenerator.generate(testCertificate).get(0); + String certHtmlVTG5AW = htmlGenerator.generate(testCertificate).get(2); + String certHtmlVTG30 = htmlGenerator.generate(testCertificate).get(1); + String certHtmlVTG30W = htmlGenerator.generate(testCertificate).get(3); + + certificatePageObjectVTG5A = new CertificatePageObject(certHtmlVTG5A); + certificatePageObjectVTG5AW = new CertificatePageObject(certHtmlVTG5AW); + certificatePageObjectVTG30 = new CertificatePageObject(certHtmlVTG30); + certificatePageObjectVTG30W = new CertificatePageObject(certHtmlVTG30W); + } + + @Test + public void verifyResultSummaries() { + String resultNameVTG5A = certificatePageObjectVTG5A.getDefectSummaryComponent().getResultNameItem().text(); + String resultNameVTG5AWelsh = certificatePageObjectVTG5AW.getDefectSummaryComponent().getResultNameItem().text(); + String resultNameVTG30 = certificatePageObjectVTG30.getDefectSummaryComponent().getResultNameItem().text(); + String resultNameVTG30Welsh = certificatePageObjectVTG30W.getDefectSummaryComponent().getResultNameItem().text(); + + assertEquals( + String.format("%s%s%s %s", "(", EU_NUMBER_SUMMARY_HEADER, ")", PASS_WITH_DEFECTS_HEADER), + resultNameVTG5A); + assertEquals( + String.format("%s%s%s %s", "(", EU_NUMBER_SUMMARY_HEADER, ")", PASS_WITH_DEFECTS_HEADER_WELSH), + resultNameVTG5AWelsh); + assertEquals( + String.format("%s%s%s %s", "(", EU_NUMBER_SUMMARY_HEADER, ")", FAILED_SUMMARY_HEADER), + resultNameVTG30 + ); + assertEquals( + String.format("%s%s%s %s", "(", EU_NUMBER_SUMMARY_HEADER, ")", FAILED_SUMMARY_HEADER_WELSH), + resultNameVTG30Welsh + ); + } + + @Test + public void verifyCountryOfRegistration() { + String country = certificatePageObjectVTG5A.getCountryOfRegistration(); + String country2 = certificatePageObjectVTG5AW.getCountryOfRegistration(); + String country3 = certificatePageObjectVTG30.getCountryOfRegistration(); + String country4 = certificatePageObjectVTG30W.getCountryOfRegistration(); + + assertEquals(testCertificate.getData().getCountryOfRegistrationCode(), country); + assertEquals(testCertificate.getData().getCountryOfRegistrationCode(), country2); + assertEquals(testCertificate.getData().getCountryOfRegistrationCode(), country3); + assertEquals(testCertificate.getData().getCountryOfRegistrationCode(), country4); + } + + @Test + public void verifyMakeAndModel() { + String makeAndModel = certificatePageObjectVTG5A.getMakeAndModel(); + String makeAndModel2 = certificatePageObjectVTG5AW.getMakeAndModel(); + String makeAndModel3 = certificatePageObjectVTG30.getMakeAndModel(); + String makeAndModel4 = certificatePageObjectVTG30W.getMakeAndModel(); + + assertEquals( + String.format("%s%s %s", testCertificate.getData().getMake(), ",", testCertificate.getData().getModel()), + makeAndModel + ); + assertEquals( + String.format("%s%s %s", testCertificate.getData().getMake(), ",", testCertificate.getData().getModel()), + makeAndModel2 + ); + assertEquals( + String.format("%s%s %s", testCertificate.getFailData().getMake(), ",", testCertificate.getFailData().getModel()), + makeAndModel3 + ); + assertEquals( + String.format("%s%s %s", testCertificate.getFailData().getMake(), ",", testCertificate.getFailData().getModel()), + makeAndModel4 + ); + } + + + @Test + public void verifyAdvisoryDefects() { + List advisoryDefects = certificatePageObjectVTG5A.getDefectSummaryComponent().getAdvisories().eachText(); + assertEquals(1, advisoryDefects.size()); + } + + @Test + public void verifyMinorDefects() { + List minorDefects = certificatePageObjectVTG5A.getDefectSummaryComponent().getMinorDefects().eachText(); + assertEquals(1, minorDefects.size()); + } + + @Test + public void verifyAdvisoryDefectsWelsh() { + List advisoryDefects = certificatePageObjectVTG5AW.getDefectSummaryComponent().getAdvisoriesWelshCVS().eachText(); + assertEquals(1, advisoryDefects.size()); + } + + @Test + public void verifyMinorDefectsWelsh() { + List minorDefects = certificatePageObjectVTG5AW.getDefectSummaryComponent().getMinorDefectsWelshCVS().eachText(); + assertEquals(1, minorDefects.size()); + } + + @Test + public void verifyDateOfTheTest() { + String dateOfTheTest = certificatePageObjectVTG5A.getDateOfTheTest(); + String dateOfTheTest2 = certificatePageObjectVTG5AW.getDateOfTheTest(); + String dateOfTheTest3 = certificatePageObjectVTG30.getDateOfTheTest(); + String dateOfTheTest4 = certificatePageObjectVTG30W.getDateOfTheTest(); + + assertEquals("12.11.2018", dateOfTheTest); + assertEquals("12.11.2018", dateOfTheTest2); + assertEquals("12.11.2018", dateOfTheTest3); + assertEquals("12.11.2018", dateOfTheTest4); + } + + @Test + public void verifyLocationOfTheTest() { + String location = certificatePageObjectVTG5A.getLocationOfTheTest(); + String location2 = certificatePageObjectVTG5AW.getLocationOfTheTest(); + String location3 = certificatePageObjectVTG30.getLocationOfTheTest(); + String location4 = certificatePageObjectVTG30W.getLocationOfTheTest(); + + assertEquals("P12345, POPULAR GARAGES", location); + assertEquals("P12345, POPULAR GARAGES", location2); + assertEquals("P12345, TEST STATION NAME", location3); + assertEquals("P12345, TEST STATION NAME", location4); + } + + @Test + public void verifyTestingOrganisationAndInspectorsName() { + String text = certificatePageObjectVTG5A.getTestingOrganisationAndInspectorsName(); + String text2 = certificatePageObjectVTG5AW.getTestingOrganisationAndInspectorsName(); + String text3 = certificatePageObjectVTG30.getTestingOrganisationAndInspectorsName(); + String text4 = certificatePageObjectVTG30W.getTestingOrganisationAndInspectorsName(); + + assertEquals("DRIVER AND VEHICLE STANDARDS AGENCY R.DREWNO", text); + assertEquals("ASIANTAETH SAFONAU GYRWYR A CHERBYDAU R.DREWNO", text2); + assertEquals("DRIVER AND VEHICLE STANDARDS AGENCY TESTER NAME", text3); + assertEquals("ASIANTAETH SAFONAU GYRWYR A CHERBYDAU TESTER NAME", text4); + } + + @Test + public void verifyMotTestNumber() { + String testNumber = certificatePageObjectVTG5A.getTestNumber(); + String testNumber2 = certificatePageObjectVTG5AW.getTestNumber(); + String testNumber3 = certificatePageObjectVTG30.getTestNumber(); + String testNumber4 = certificatePageObjectVTG30W.getTestNumber(); + + assertEquals("1806 8140 0628", testNumber); + assertEquals("1806 8140 0628", testNumber2); + assertEquals("X01X00001", testNumber3); + assertEquals("X01X00001", testNumber4); + } + + @Test + public void verifyExpiryDateOnPassIsPresent() { + String expiryDate = certificatePageObjectVTG5A.getExpiryDate(); + String expiryDate2 = certificatePageObjectVTG5AW.getExpiryDate(); + + assertEquals("12.10.2018", expiryDate); + assertEquals("12.10.2018", expiryDate2); + } +} + + diff --git a/src/test/java/htmlverification/tests/IVA30Test.java b/src/test/java/htmlverification/tests/IVA30Test.java index bdd9d856..2e2df295 100644 --- a/src/test/java/htmlverification/tests/IVA30Test.java +++ b/src/test/java/htmlverification/tests/IVA30Test.java @@ -86,7 +86,7 @@ public void verifyDate() { @Test public void verifyReapplicationDate() { String reapplicationDate = ivaPageObject.getReapplicationDate(); - assertEquals("Reapplication required by: ".concat(testCertificate.getIvaData().getReapplicationDate()), reapplicationDate); + assertEquals("Reapplication required by:", reapplicationDate); } @Test diff --git a/src/test/java/htmlverification/tests/MSVA30Test.java b/src/test/java/htmlverification/tests/MSVA30Test.java index 817a7610..f236ec81 100644 --- a/src/test/java/htmlverification/tests/MSVA30Test.java +++ b/src/test/java/htmlverification/tests/MSVA30Test.java @@ -79,7 +79,7 @@ public void verifyDate() { @Test public void verifyRetestDate() { String retestDate = msvaPageObject.getRetestDate(); - assertEquals("Retest required by: ".concat(testCertificate.getMsvaData().getRetestDate()), retestDate); + assertEquals("Reapplication required by:", retestDate); } @Test diff --git a/src/test/java/pdfverification/tests/HgvPRSBilingualTests.java b/src/test/java/pdfverification/tests/HgvPRSBilingualTests.java new file mode 100644 index 00000000..fda985f1 --- /dev/null +++ b/src/test/java/pdfverification/tests/HgvPRSBilingualTests.java @@ -0,0 +1,51 @@ +package pdfverification.tests; + +import com.github.jknack.handlebars.Handlebars; +import com.itextpdf.text.pdf.PdfReader; +import htmlverification.service.CvsCertificateTestDataProvider; +import org.junit.Before; +import org.junit.Test; +import org.xhtmlrenderer.pdf.ITextRenderer; +import pdfverification.service.PDFParser; +import uk.gov.dvsa.model.cvs.CvsMotCertificate; +import uk.gov.dvsa.service.HtmlGenerator; +import uk.gov.dvsa.service.PDFGenerationService; + +import java.io.IOException; + +import static org.junit.Assert.assertTrue; + +public class HgvPRSBilingualTests { + private HtmlGenerator htmlGenerator; + private PDFGenerationService pdfGenerationService; + private CvsMotCertificate testCertificate; + private PDFParser pdfParser; + private PdfReader pdfReader; + + public HgvPRSBilingualTests() { + this.testCertificate = CvsCertificateTestDataProvider.getCvsHgvPRSBilingual(); + this.htmlGenerator = new HtmlGenerator(new Handlebars()); + this.pdfGenerationService = new PDFGenerationService(new ITextRenderer()); + this.pdfParser = new PDFParser(); + } + + @Before + public void setup() throws Exception { + byte[] pdfData = pdfGenerationService.generate(htmlGenerator.generate(testCertificate)); + pdfReader = pdfParser.readPdf(pdfData); + } + + @Test + public void verifyTitle() throws IOException { + assertTrue(pdfParser.getRawText(pdfReader, 1).contains("MOT test certificate (HGV)")); + assertTrue(pdfParser.getRawText(pdfReader, 2).contains("Refusal of MOT test certificate")); + assertTrue(pdfParser.getRawText(pdfReader, 3).contains("Tystysgrif prawf MOT (HGV)")); + assertTrue(pdfParser.getRawText(pdfReader, 4).contains("Gwrthod tystysgrif prawf MOT")); + } + + @Test + public void verifySinglePageWithInvalidXMLCharacter() throws Exception { + this.testCertificate = CvsCertificateTestDataProvider.getCvsHgvPRSBilingualHavingInvalidXMLCharacter(); + pdfParser.getRawText(pdfReader, 1); + } +} diff --git a/src/test/java/pdfverification/tests/IVA30Tests.java b/src/test/java/pdfverification/tests/IVA30Tests.java index aa113f43..cf44e8f7 100644 --- a/src/test/java/pdfverification/tests/IVA30Tests.java +++ b/src/test/java/pdfverification/tests/IVA30Tests.java @@ -18,7 +18,7 @@ public class IVA30Tests { private static final String CERT_NAME = "INDIVIDUAL VEHICLE APPROVAL (IVA)"; private static final String FOOTER_DOC_NAME = "IVA30VTA (DVSA0842)"; - private static final String FOOTER_VERSION_DATE = "Version 1.0 Apr 2024"; + private static final String FOOTER_VERSION_DATE = "Version 1.1 June 2024"; private PDFGenerationService pdfGenerationService; private HtmlGenerator htmlGenerator; private PDFParser pdfParser; diff --git a/src/test/java/pdfverification/tests/MSVA30Tests.java b/src/test/java/pdfverification/tests/MSVA30Tests.java index 57b2dca1..f5d5ad87 100644 --- a/src/test/java/pdfverification/tests/MSVA30Tests.java +++ b/src/test/java/pdfverification/tests/MSVA30Tests.java @@ -21,7 +21,7 @@ public class MSVA30Tests { private final String FOOTER_DOC_NAME = "MSVA30VTA (DVSA0848)"; - private final String FOOTER_VERSION_DATE = "Version 1.0 May 2024"; + private final String FOOTER_VERSION_DATE = "Version 1.1 June 2024"; private PDFGenerationService pdfGenerationService; private HtmlGenerator htmlGenerator; diff --git a/src/test/java/pdfverification/tests/PsvPRSBilingualTests.java b/src/test/java/pdfverification/tests/PsvPRSBilingualTests.java new file mode 100644 index 00000000..d7b86205 --- /dev/null +++ b/src/test/java/pdfverification/tests/PsvPRSBilingualTests.java @@ -0,0 +1,52 @@ +package pdfverification.tests; + +import com.github.jknack.handlebars.Handlebars; +import com.itextpdf.text.pdf.PdfReader; +import htmlverification.service.CvsCertificateTestDataProvider; +import org.junit.Before; +import org.junit.Test; +import org.xhtmlrenderer.pdf.ITextRenderer; +import pdfverification.service.PDFParser; +import uk.gov.dvsa.model.cvs.CvsMotCertificate; +import uk.gov.dvsa.service.HtmlGenerator; +import uk.gov.dvsa.service.PDFGenerationService; + +import java.io.IOException; + +import static org.junit.Assert.assertTrue; + +public class PsvPRSBilingualTests { + private final HtmlGenerator htmlGenerator; + private final PDFGenerationService pdfGenerationService; + private CvsMotCertificate testCertificate; + private final PDFParser pdfParser; + private PdfReader pdfReader; + + public PsvPRSBilingualTests() { + this.testCertificate = CvsCertificateTestDataProvider.getCvsPsvPRSBilingual(); + this.htmlGenerator = new HtmlGenerator(new Handlebars()); + this.pdfGenerationService = new PDFGenerationService(new ITextRenderer()); + this.pdfParser = new PDFParser(); + } + + @Before + public void setup() throws Exception { + byte[] pdfData = pdfGenerationService.generate(htmlGenerator.generate(testCertificate)); + pdfReader = pdfParser.readPdf(pdfData); + } + + @Test + public void verifyTitle() throws IOException { + assertTrue(pdfParser.getRawText(pdfReader, 1).contains("MOT test certificate (PSV)")); + assertTrue(pdfParser.getRawText(pdfReader, 3).contains("Refusal of MOT test certificate")); + assertTrue(pdfParser.getRawText(pdfReader, 5).contains("Tystysgrif prawf MOT (PSV)")); + assertTrue(pdfParser.getRawText(pdfReader, 7).contains("Gwrthod tystysgrif prawf MOT")); + } + + @Test + public void verifySinglePageWithInvalidXMLCharacter() throws Exception { + this.testCertificate = CvsCertificateTestDataProvider.getCvsPsvPRSBilingualHavingInvalidXMLCharacter(); + pdfParser.getRawText(pdfReader, 1); + } +} + diff --git a/src/test/java/pdfverification/tests/TrlPrsBilingual.java b/src/test/java/pdfverification/tests/TrlPrsBilingual.java new file mode 100644 index 00000000..3e88ef13 --- /dev/null +++ b/src/test/java/pdfverification/tests/TrlPrsBilingual.java @@ -0,0 +1,65 @@ +package pdfverification.tests; + +import com.github.jknack.handlebars.Handlebars; +import com.itextpdf.text.pdf.PdfReader; +import htmlverification.service.CvsCertificateTestDataProvider; +import org.junit.Before; +import org.junit.Test; +import org.xhtmlrenderer.pdf.ITextRenderer; +import pdfverification.service.PDFParser; +import uk.gov.dvsa.model.cvs.CvsMotCertificate; +import uk.gov.dvsa.service.HtmlGenerator; +import uk.gov.dvsa.service.PDFGenerationService; + +import java.io.IOException; + +import static htmlverification.framework.component.DefectSummaryComponent.*; +import static org.junit.Assert.assertTrue; +import static uk.gov.dvsa.model.cvs.certificateData.CvsMotCertificateDataWelsh.MINOR_DEFECTS_HEADER_WELSH; + +public class TrlPrsBilingual { + private final HtmlGenerator htmlGenerator; + private final PDFGenerationService pdfGenerationService; + private final CvsMotCertificate testCertificate; + private final PDFParser pdfParser; + + private PdfReader pdfReader; + + public TrlPrsBilingual() { + this.testCertificate = CvsCertificateTestDataProvider.getCvsTrlPrsBilingual(); + this.htmlGenerator = new HtmlGenerator(new Handlebars()); + this.pdfGenerationService = new PDFGenerationService(new ITextRenderer()); + this.pdfParser = new PDFParser(); + } + + @Before + public void setup() throws Exception { + byte[] pdfData = pdfGenerationService.generate(htmlGenerator.generate(testCertificate)); + pdfReader = pdfParser.readPdf(pdfData); + } + + @Test + public void verifyEnglishTitles() throws IOException { + assertTrue(pdfParser.getRawText(pdfReader, 1).contains("MOT test certificate (TRL)")); + assertTrue(pdfParser.getRawText(pdfReader, 2).contains("Refusal of MOT test certificate")); + } + + @Test + public void verifyWelshTitles() throws IOException { + assertTrue(pdfParser.getRawText(pdfReader, 3).contains("Tystysgrif prawf MOT (TRL)")); + assertTrue(pdfParser.getRawText(pdfReader, 4).contains("Gwrthod tystysgrif prawf MOT")); + + } + + @Test + public void verifyBilingualMinorDefectsHeader() throws Exception { + assertTrue(pdfParser.getRawText(pdfReader, 1).contains(MINOR_DEFECTS_HEADER_TEXT)); + assertTrue(pdfParser.getRawText(pdfReader, 3).contains(MINOR_DEFECTS_HEADER_WELSH)); + } + + @Test + public void verifyBilingualAdvisoryDefectsHeader() throws Exception { + assertTrue(pdfParser.getRawText(pdfReader, 1).contains(ADVISORIES_HEADER_TEXT)); + assertTrue(pdfParser.getRawText(pdfReader, 3).contains(ADVISORIES_HEADER_TEXT_WELSH)); + } +} diff --git a/src/test/java/pdfverification/tests/VTG30WTests.java b/src/test/java/pdfverification/tests/VTG30WTests.java index 097145a6..039541d6 100644 --- a/src/test/java/pdfverification/tests/VTG30WTests.java +++ b/src/test/java/pdfverification/tests/VTG30WTests.java @@ -45,7 +45,7 @@ public void verifyTitle() throws IOException { } @Test - public void verifySinglePageWithInvaidXMLCharacter() throws Exception { + public void verifySinglePageWithInvalidXMLCharacter() throws Exception { this.testCertificate = CvsCertificateTestDataProvider.getVTG30WHavingInvalidXMLCharacter(); pdfParser.getRawText(pdfReader, 1); } diff --git a/src/test/java/pdfverification/tests/VTP30WTests.java b/src/test/java/pdfverification/tests/VTP30WTests.java index 5255fe19..835c524a 100644 --- a/src/test/java/pdfverification/tests/VTP30WTests.java +++ b/src/test/java/pdfverification/tests/VTP30WTests.java @@ -11,7 +11,6 @@ import uk.gov.dvsa.service.HtmlGenerator; import uk.gov.dvsa.service.PDFGenerationService; -import java.io.FileOutputStream; import java.io.IOException; import static htmlverification.framework.component.DefectSummaryComponent.*; import static org.junit.Assert.assertTrue;