diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/test/core/certificate/TestDccParser.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/test/core/certificate/TestDccParser.kt index 96f3c7445372a4578aa126a8bbd4b19675b23426..7f4cfe2d8aad8a8f55c4bbb8639dcb93accf78b1 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/test/core/certificate/TestDccParser.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/test/core/certificate/TestDccParser.kt @@ -36,18 +36,18 @@ class TestDccParser @Inject constructor( throw InvalidTestCertificateException(NO_TEST_ENTRY) } // check for non null (Gson does not enforce it) & force date parsing - version!! - nameData.familyNameStandardized!! + require(version.isNotBlank()) + require(nameData.familyNameStandardized.isNotBlank()) dateOfBirth payload.let { it.testResultAt it.sampleCollectedAt - it.certificateIssuer!! - it.certificateCountry!! - it.targetId!! - it.testCenter!! - it.testResult!! - it.testType!! + require(it.certificateIssuer.isNotBlank()) + require(it.certificateCountry.isNotBlank()) + require(it.targetId.isNotBlank()) + require(it.testCenter.isNotBlank()) + require(it.testResult.isNotBlank()) + require(it.testType.isNotBlank()) } return this } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/vaccination/core/certificate/VaccinationDccV1Parser.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/vaccination/core/certificate/VaccinationDccV1Parser.kt index 7b4f9b0c2964d8a729e38e63f2b069931828e058..c2547d460f2ef7a0b2e45edffaf604877e506464 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/vaccination/core/certificate/VaccinationDccV1Parser.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/vaccination/core/certificate/VaccinationDccV1Parser.kt @@ -37,18 +37,18 @@ class VaccinationDccV1Parser @Inject constructor( throw InvalidVaccinationCertificateException(VC_NO_VACCINATION_ENTRY) } // check for non null (Gson does not enforce it) & force date parsing - version!! - nameData.familyNameStandardized.isNotBlank() + require(version.isNotBlank()) + require(nameData.familyNameStandardized.isNotBlank()) dateOfBirth payload.let { it.vaccinatedAt - it.certificateIssuer.isNotBlank() - it.certificateCountry.isNotBlank() - it.marketAuthorizationHolderId.isNotBlank() - it.medicalProductId.isNotBlank() - it.targetId.isNotBlank() - it.doseNumber > 0 - it.totalSeriesOfDoses > 0 + require(it.certificateIssuer.isNotBlank()) + require(it.certificateCountry.isNotBlank()) + require(it.marketAuthorizationHolderId.isNotBlank()) + require(it.medicalProductId.isNotBlank()) + require(it.targetId.isNotBlank()) + require(it.doseNumber > 0) + require(it.totalSeriesOfDoses > 0) } return this } diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/covidcertificate/vaccination/core/VaccinationQrCodeTestData.java b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/covidcertificate/vaccination/core/VaccinationQrCodeTestData.java index c4e1fbce80e8ae59d075fab4fb492e3e4d3b7048..57d6ad6ef5d0542319e8a2716773624f6ca2ec45 100644 --- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/covidcertificate/vaccination/core/VaccinationQrCodeTestData.java +++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/covidcertificate/vaccination/core/VaccinationQrCodeTestData.java @@ -9,5 +9,5 @@ public class VaccinationQrCodeTestData { static public String validVaccinationQrCode4 = "HC1:6BFOXN*TS0BI$ZD.P9UOL97O4-2HH77HRM3DSPTLRR+%3KXH9M9ESIGUBA KWML%6S5B9-+P70Q5VC9:BPCNYKMXEE1JAA/CXGG0JK1WL260X638J3-E3ND3DAJ-43TTTO3HK1H3QBCWNZ83UQJ:T0/8F7V0HKN:Q8.HBV+0SZ4GH00T9UKP0T9WC5PF6846A$Q$76QW6%V98T5$FQMI5DN9QZ5Y0Q$UPE%5MZ5*T57ZA$O7T6LEJOA+MZ55EII-EB1EKC422JBBD0D2K.EJJ14B2MP41WTRZPQEC5L64HX6IAS 8S8FT/MAMXP6QS03L0QIRR97I2HOAXL92L0. KOKG8VG5SI:TU+MMPZ55%PBT1YEGEA7IB65C94JBQ2NLEE:NQ% GC3MXHFLF9OIFN0IZ95LJL80P1FDLW452I8941:HH3M41GTNP8EFUNT$.FTD852IWKP/HLIJL8JF8JF172IMAS EDAHMXFBFBQSKJE72KV$FHJ%3O%6:XM+1QD+T2/VKKER3L3%1THL7MGY.1S:T:GLOX6OCE7+RWYL3.C-L27WNV0G::M74O%K7C50AAEI4"; static public String qrCodeWithNonsenseCountry = "HC1:NCF3Y28.P-O0PS3JPU7RBWBA2*9VTS/9VZ+PLUOVTJ$EB7W3R9B3VN/3A44E./EZ.6Y8C$.C.IK6MA$00J1TQZ9$9IU+S7HP%X9%*MW09:4WB/5SWB20V5VFBBREWO+GIIUF4+PBZR7MNX/N1JIIML/X3Z.Q67RMB6:BJYE26A5NNL:CIM-A*/UZTM+QO: ACV6212500GUC+KM-5AUYGUD1330PFBA855/SNDPCSOC3KMR9X$DB61.0AESG$:THFGP-M/VI2SG/ 22SS+V8OP3R8LDJ50HR6S94JMN-84Q0C+2/8FUV9HH6N91GB3/YCHN6ALFFZL3M116O/IBU6QKJK/3FMQ0TLK-.UQOO$%A $J%H0%*J:DE6/DOKTG*F605WRK8G7S96JG0 4IF:B9VM0CIBRF/XNBOH9 SGIFJ/2CX593I0GE7FFDEQ6+UO5D+HM/2IDBI.ET/L725IHPKB/T/Q9KRJ* NOWN$6K8VOZIHJ5R29KQWSPYKYSDZRJ+1IVBFGPMXEVY6JIYI/ CVBTJ-FY%MO%RUTF17S:1OL8PVXHRPTUOTK/VF%U%:IR G"; static public String qrCodeWithNullValues = "HC1:NCFOXN%TS3DH3ZSUZK+.V0ETD%65NL-AH.TAIOO6+I2HU7A28WAI1G$H4AT4V22F/8X*G8QHJUPZ0BR/S09T./0LWTKD33236J3TA3M*4VV2 73-E3GG396B-43O058YIB73A*G3W19UEBY5:PIDHGNTI4L6YO1%UG/YL WO*Z7ON1 *L:O8PN1QP5O PLU9A/RUX96 B0V1ZZB.T12.H.ZJ$%HN 9GTBIQ16-I5NI5K1*TB3:U-1VVS1UU15%HVLIWQHYZKOP6OH6XO9IE5IVU5P2-GA*PE1H6IO2OO9$G40GHS-O:S9UZ4+FJE 4Y3L 78OAJ/9TL4T1C9 UPVD5BT17$1MV15K1DR1FIEC2F5+1T+UC2FSH9 UP+/UXJDTW5CL52U50$EZ*N.KUW*P .UUQKC.U%KIP3FY5LG1A614I%KZYNNEVQ KB+P8$JG+SB.V Q5FN9ZK1BCTD PPQ3X:J15RM*F9TVYPVE6G1OU-5Q.-OP*17:FX+52AWI1C0:HPE2%90Q:H2SFUGVP56O1W:W7MEGZNBC3WJ0J:*JITJ%W6XK2L3S.GA/S14 FD$G"; - static public String qrCodeBlankLastNameStandardized = "HC1:NCFOXN%TS3DH3ZSUZK+.V0ETD%65NL-AH0YIIOO6+I-DHHH58WAIAW-ULKD93B4:ZH6I1$4JN:IN1MKK9+OC*PP:+P*.1D9R+Q6646C%6RF6:X93O5RF6$T61R64IM64631AWC5ME65H1KD34LT HBSZ4GH0B69X5QF36FY1OSMNV1L8VNF6O M9R1RF6ECM676746C0FFS6NWE0Y6Z EJZ6KS6YQEE%61Y6LMEA46*-ALK9KZ56DE/.QC$Q3J62:6LZ64998T5UEIY0Q$UPR$5:NLOEPNRAE69K P4NPDDAJP5DMH1$48X2+36D-I/2DBAJDAJPK0%KC$ZJ*DJM47+Y5P QKBLQ+M3+L IMXDRHJUXYOOP6NQQ0THYZQ4H99$R2-JIS77%F.UINXU: RFTIDG62QEZUIQJAZGA+1VG%U5SI:TU+MM0W5JW5.:JOH6L9EP2CG3T1$T98TSYT3YFI7VC2QL:LF3M7RLEITYZF GQ3GVKQVI:NSWR%DJ3/C3AD%W7.WQKGFV 08:P1R3OHKFD7AEULNEW24T EUZ30XVKGG"; + static public String qrCodeBlankLastNameStandardized = "HC1:NCFOXN%TS3DH3ZSUZK+.V0ETD%65NL-AH:XIIOO6+ID7BO:H.I5B88MQ3ZMIN9HNO4*J8OX4W$C2VL*LA 43/IE%TE6UG+ZEAT1HQ13W1:O1YUI%F1PN1/T1%%HRP5 R14SI.J9DYHZROVZ05QNZ 20OP748$NI4L6YO1%UG/YL WO*Z7ON1 *L:O8PN1QP5O PLU9A/RUX96 B0V1ZZB.T12.H.ZJ$%HN 9GTBIQ16-I5NI5K1*TB3:U-1VVS1UU15%HVLIWQHYZKOP6OH6XO9IE5IVU5P2-GA*PE1H6IO2OO9$G40GHS-O:S9UZ4+FJE 4Y3L 78OAJ/9TL4T1C9 UP+B9MK93P5AW0:G9.G9/G9F:QQ28R3U6/V.*NT*QM.SY$N-P1S29 34S0BYBRC.UYS1U%O6QKN*Q5-QFRMLNKNM8LK4IYOP$I/XK$M8-L9HCI:ZH2E4UE1B4GC:DN5E:UNJ17$CS*J7.HRT:A /NFZ1FG7K-NXM693K+DD1ET2 D13ST$LGMUW/O7P6CJSZ9NC+Q6DJ1ZJ65QG9MS 1M$FRFTS50*G5V0"; } diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/covidcertificate/vaccination/core/qrcode/VaccinationQRCodeExtractorTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/covidcertificate/vaccination/core/qrcode/VaccinationQRCodeExtractorTest.kt index a6634d63ac6c477ebbdd7a3dffa50af50258bf5e..de06cb9760fff4d41c49d07d7c1c5bd6078a7755 100644 --- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/covidcertificate/vaccination/core/qrcode/VaccinationQRCodeExtractorTest.kt +++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/covidcertificate/vaccination/core/qrcode/VaccinationQRCodeExtractorTest.kt @@ -128,7 +128,7 @@ class VaccinationQRCodeExtractorTest : BaseTest() { } @Test - fun `blank name fail with JSON_SCHEMA_INVALID`() { + fun `blank name fails with JSON_SCHEMA_INVALID`() { shouldThrow<InvalidVaccinationCertificateException> { extractor.extract(VaccinationQrCodeTestData.qrCodeBlankLastNameStandardized) }.errorCode shouldBe InvalidHealthCertificateException.ErrorCode.JSON_SCHEMA_INVALID