diff --git a/iabgpp-encoder/src/main/java/com/iab/gpp/encoder/GppModel.java b/iabgpp-encoder/src/main/java/com/iab/gpp/encoder/GppModel.java index 2eef8aa5..884c8c55 100644 --- a/iabgpp-encoder/src/main/java/com/iab/gpp/encoder/GppModel.java +++ b/iabgpp-encoder/src/main/java/com/iab/gpp/encoder/GppModel.java @@ -302,6 +302,7 @@ public UsMn getUsMnSection() { return (UsMn) getSection(UsMn.NAME); } + public List getSectionIds() { if (!this.decoded) { this.sections = this.decodeModel(this.encodedString); @@ -345,7 +346,7 @@ protected String encodeModel(Map sections) { } protected Map decodeModel(String str) { - if (str == null || str.isEmpty() || str.startsWith("DB")) { + if (str == null || str.isEmpty() || str.startsWith("D")) { Map sections = new HashMap<>(); if (str != null && !str.isEmpty()) { diff --git a/iabgpp-encoder/src/main/java/com/iab/gpp/encoder/base64/CompressedBase64UrlEncoder.java b/iabgpp-encoder/src/main/java/com/iab/gpp/encoder/base64/CompressedBase64UrlEncoder.java index 4ebd7be7..638b4d7d 100644 --- a/iabgpp-encoder/src/main/java/com/iab/gpp/encoder/base64/CompressedBase64UrlEncoder.java +++ b/iabgpp-encoder/src/main/java/com/iab/gpp/encoder/base64/CompressedBase64UrlEncoder.java @@ -16,23 +16,16 @@ public static CompressedBase64UrlEncoder getInstance() { @Override protected String pad(String bitString) { + // https://github.com/InteractiveAdvertisingBureau/Global-Privacy-Platform/blob/main/Core/Consent%20String%20Specification.md#creating-a-gpp-string char[] chars1 = null; - if(bitString.length() % 8 > 0) { - chars1 = new char[8 - (bitString.length() % 8)]; + if(bitString.length() % 6 > 0) { + chars1 = new char[6 - (bitString.length() % 6)]; } else { chars1 = new char[0]; } Arrays.fill(chars1, '0'); - - char[] chars2 = null; - if((bitString.length() + chars1.length) % 6 > 0) { - chars2 = new char[6 - ((bitString.length() + chars1.length) % 6)]; - } else { - chars2 = new char[0]; - } - Arrays.fill(chars2, '0'); - - return bitString + new String(chars1) + new String(chars2); + + return bitString + new String(chars1); } } diff --git a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/GppModelTest.java b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/GppModelTest.java index bb5f2336..003ed030 100644 --- a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/GppModelTest.java +++ b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/GppModelTest.java @@ -4,11 +4,22 @@ import java.time.ZonedDateTime; import java.util.ArrayList; import java.util.Arrays; - -import com.iab.gpp.encoder.field.*; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import com.iab.gpp.encoder.error.DecodingException; +import com.iab.gpp.encoder.field.TcfCaV1Field; +import com.iab.gpp.encoder.field.TcfEuV2Field; +import com.iab.gpp.encoder.field.UsCaField; +import com.iab.gpp.encoder.field.UsCoField; +import com.iab.gpp.encoder.field.UsCtField; +import com.iab.gpp.encoder.field.UsFlField; +import com.iab.gpp.encoder.field.UsMtField; +import com.iab.gpp.encoder.field.UsNatField; +import com.iab.gpp.encoder.field.UsOrField; +import com.iab.gpp.encoder.field.UsTxField; +import com.iab.gpp.encoder.field.UsUtField; +import com.iab.gpp.encoder.field.UsVaField; +import com.iab.gpp.encoder.field.UspV1Field; import com.iab.gpp.encoder.section.TcfCaV1; import com.iab.gpp.encoder.section.TcfEuV2; import com.iab.gpp.encoder.section.UsCa; @@ -17,7 +28,6 @@ import com.iab.gpp.encoder.section.UsDe; import com.iab.gpp.encoder.section.UsFl; import com.iab.gpp.encoder.section.UsIa; -import com.iab.gpp.encoder.section.UsMn; import com.iab.gpp.encoder.section.UsMt; import com.iab.gpp.encoder.section.UsNat; import com.iab.gpp.encoder.section.UsNe; @@ -59,6 +69,20 @@ public void testEncodeDefault() { } + @Test + public void testDecodingException() { + Assertions.assertThrows(DecodingException.class, () -> { + new GppModel("invalid gpp string").getHeader(); + }); + } + + @Test() + public void testDecodeGarbage() { + Assertions.assertThrows(DecodingException.class, () -> { + new GppModel("z").getUsCtSection(); + }); + } + @Test public void testEncodeDefaultAll() { GppModel gppModel = new GppModel(); @@ -82,7 +106,6 @@ public void testEncodeDefaultAll() { Assertions.assertEquals(false, gppModel.hasSection(UsNh.NAME)); Assertions.assertEquals(false, gppModel.hasSection(UsNj.NAME)); Assertions.assertEquals(false, gppModel.hasSection(UsTn.NAME)); - Assertions.assertEquals(false, gppModel.hasSection(UsMn.NAME)); gppModel.setFieldValue(TcfEuV2.NAME, TcfEuV2Field.VERSION, TcfEuV2.VERSION); gppModel.setFieldValue(TcfEuV2.NAME, TcfCaV1Field.CREATED, utcDateTime); @@ -101,13 +124,13 @@ public void testEncodeDefaultAll() { gppModel.setFieldValue(UsMt.NAME, UsMtField.VERSION, UsMt.VERSION); gppModel.setFieldValue(UsOr.NAME, UsOrField.VERSION, UsOr.VERSION); gppModel.setFieldValue(UsTx.NAME, UsTxField.VERSION, UsTx.VERSION); - gppModel.setFieldValue(UsDe.NAME, UsDeField.VERSION, UsDe.VERSION); - gppModel.setFieldValue(UsIa.NAME, UsIaField.VERSION, UsIa.VERSION); - gppModel.setFieldValue(UsNe.NAME, UsNeField.VERSION, UsNe.VERSION); - gppModel.setFieldValue(UsNh.NAME, UsNhField.VERSION, UsNh.VERSION); - gppModel.setFieldValue(UsNj.NAME, UsNjField.VERSION, UsNj.VERSION); - gppModel.setFieldValue(UsTn.NAME, UsTnField.VERSION, UsTn.VERSION); - gppModel.setFieldValue(UsMn.NAME, UsMnField.VERSION, UsMn.VERSION); + gppModel.setFieldValue(UsDe.NAME, UsTxField.VERSION, UsTx.VERSION); + gppModel.setFieldValue(UsIa.NAME, UsTxField.VERSION, UsTx.VERSION); + gppModel.setFieldValue(UsNe.NAME, UsTxField.VERSION, UsTx.VERSION); + gppModel.setFieldValue(UsNh.NAME, UsTxField.VERSION, UsTx.VERSION); + gppModel.setFieldValue(UsNj.NAME, UsTxField.VERSION, UsTx.VERSION); + gppModel.setFieldValue(UsTn.NAME, UsTxField.VERSION, UsTx.VERSION); + Assertions.assertEquals(true, gppModel.hasSection(TcfEuV2.NAME)); @@ -129,26 +152,12 @@ public void testEncodeDefaultAll() { Assertions.assertEquals(true, gppModel.hasSection(UsNh.NAME)); Assertions.assertEquals(true, gppModel.hasSection(UsNj.NAME)); Assertions.assertEquals(true, gppModel.hasSection(UsTn.NAME)); - Assertions.assertEquals(true, gppModel.hasSection(UsMn.NAME)); String gppString = gppModel.encode(); Assertions.assertEquals( - "DBACOYs~CPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAAAAAAAAA.QAAA.IAAA~BPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAAAAAAA.YAAAAAAAAAA~1---~BAAAAAAAAABA.QA~BAAAAABA.QA~BAAAABA~BAAAAEA.QA~BAAAAAQA~BAAAAAEA.QA~BAAAAABA~BAAAAABA.QA~BAAAAAABAA.QA~BAAAAAQA.QA~BAAAAAABAA.QA~BAAAAAQA.QA~BAAAAAQA.QA~BAAAAABA.QA~BAAAAAAAQA.QA~BAAAAAQA.QA~BAAAAAQA.QA", - gppString); - } + "DBACOdM~CPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAAAAAAAAA.QAAA.IAAA~BPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAAAAAA.YAAAAAAAAA~1---~BAAAAAAAAABA.Q~BAAAAABA.Q~BAAAABA~BAAAAEA.Q~BAAAAAQ~BAAAAAEA.Q~BAAAAABA~BAAAAABA.Q~BAAAAAABA.Q~BAAAAAQ.Q~BAAAAAABA.Q~BAAAAAQ.Q~BAAAAAQ.Q~BAAAAABA.Q~BAAAAAAAQ.Q~BAAAAAQ.Q", + gppString); - @Test - public void testDecodingException() { - Assertions.assertThrows(DecodingException.class, () -> { - new GppModel("invalid gpp string").getHeader(); - }); - } - - @Test() - public void testDecodeGarbage() { - Assertions.assertThrows(DecodingException.class, () -> { - new GppModel("z").getUsCtSection(); - }); } @Test @@ -178,7 +187,7 @@ public void testEncodeUspv1() { String gppString = gppModel.encode(); - Assertions.assertEquals("DBABTA~1YNN", gppString); + Assertions.assertEquals("DBABT~1YNN", gppString); Assertions.assertEquals(Arrays.asList(6), gppModel.getSectionIds()); Assertions.assertEquals(true, gppModel.hasSection(UspV1.ID)); @@ -226,7 +235,7 @@ public void testEncodeTcfEuV2() { String gppString = gppModel.encode(); - Assertions.assertEquals("DBABMA~CPSG_8APSG_8ANwAAAENAwCAAAAAAAAAAAAAAAAAAAAA.QAAA.IAAA", gppString); + Assertions.assertEquals("DBABM~CPSG_8APSG_8ANwAAAENAwCAAAAAAAAAAAAAAAAAAAAA.QAAA.IAAA", gppString); Assertions.assertEquals(2, gppString.split("~").length); @@ -275,7 +284,7 @@ public void testEncodeUspV1AndTcfEuV2() { Assertions.assertEquals(false, gppModel.hasSection(TcfCaV1.NAME)); String gppString = gppModel.encode(); - Assertions.assertEquals("DBACNYA~CPSG_8APSG_8ANwAAAENAwCAAAAAAAAAAAAAAAAAAAAA.QAAA.IAAA~1YNN", gppString); + Assertions.assertEquals("DBACNY~CPSG_8APSG_8ANwAAAENAwCAAAAAAAAAAAAAAAAAAAAA.QAAA.IAAA~1YNN", gppString); Assertions.assertEquals(3, gppString.split("~").length); @@ -373,7 +382,7 @@ public void testEncodeUspV1AndTcfEuV2AndTcfCaV1() { String gppString = gppModel.encode(); Assertions.assertEquals( - "DBACOeA~CPSG_8APSG_8ANwAAAENAwCAAAAAAAAAAAAAAAAAAAAA.QAAA.IAAA~BPSG_8APSG_8AAyACAENGdCgf_gfgAfgfgBgABABAAABAB4AACACAAA.fHHHA4444ao~1YNN", + "DBACOe~CPSG_8APSG_8ANwAAAENAwCAAAAAAAAAAAAAAAAAAAAA.QAAA.IAAA~BPSG_8APSG_8AAyACAENGdCgf_gfgAfgfgBgABABAAABAB4AACACAA.fHHHA4444ao~1YNN", gppString); Assertions.assertEquals(4, gppString.split("~").length); @@ -406,7 +415,7 @@ public void testDecodeDefaults() { @Test public void testDecodeDefaultsAll() { String gppString = - "DBACOYs~CPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAAAAAAAAA.QAAA.IAAA~BPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAAAAAAA.YAAAAAAAAAA~1---~BAAAAAAAAABA.QA~BAAAAABA.QA~BAAAABA~BAAAAEA.QA~BAAAAAQA~BAAAAAEA.QA~BAAAAABA~BAAAAABA.QA~BAAAAAABAA.QA~BAAAAAQA.QA~BAAAAAABAA.QA~BAAAAAQA.QA~BAAAAAQA.QA~BAAAAABA.QA~BAAAAAAAQA.QA~BAAAAAQA.QA~BAAAAAABAA.QA"; + "DBACOdM~CPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAAAAAAAAA.QAAA.IAAA~BPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAAAAAA.YAAAAAAAAA~1---~BAAAAAAAAABA.Q~BAAAAABA.Q~BAAAABA~BAAAAEA.Q~BAAAAAQ~BAAAAAEA.Q~BAAAAABA~BAAAAABA.Q~BAAAAAABA.Q~BAAAAAQ.Q~BAAAAAABA.Q~BAAAAAQ.Q~BAAAAAQ.Q~BAAAAABA.Q~BAAAAAAAQ.Q~BAAAAAQ.Q"; GppModel gppModel = new GppModel(gppString); Assertions.assertEquals(true, gppModel.hasSection(TcfEuV2.NAME)); @@ -428,12 +437,11 @@ public void testDecodeDefaultsAll() { Assertions.assertEquals(true, gppModel.hasSection(UsNh.NAME)); Assertions.assertEquals(true, gppModel.hasSection(UsNj.NAME)); Assertions.assertEquals(true, gppModel.hasSection(UsTn.NAME)); - Assertions.assertEquals(true, gppModel.hasSection(UsMn.NAME)); } @Test public void testDecodeUspv1() { - String gppString = "DBABTA~1YNN"; + String gppString = "DBABT~1YNN"; GppModel gppModel = new GppModel(gppString); Assertions.assertEquals(Arrays.asList(6), gppModel.getSectionIds()); @@ -456,7 +464,7 @@ public void testDecodeUspv1() { @Test public void testDecodeTcfEuV2() { - String gppString = "DBABMA~CPSG_8APSG_8ANwAAAENAwCAAAAAAAAAAAAAAAAAAAAA.QAAA.IAAA"; + String gppString = "DBABM~CPSG_8APSG_8ANwAAAENAwCAAAAAAAAAAAAAAAAAAAAA.QAAA.IAAA"; GppModel gppModel = new GppModel(gppString); Assertions.assertEquals(Arrays.asList(2), gppModel.getSectionIds()); @@ -499,7 +507,7 @@ public void testDecodeTcfEuV2() { @Test public void testDecodeUspv1AndTcfEuV2() { - String gppString = "DBACNYA~CPSG_8APSG_8ANwAAAENAwCAAAAAAAAAAAAAAAAAAAAA.QAAA.IAAA~1YNN"; + String gppString = "DBACNY~CPSG_8APSG_8ANwAAAENAwCAAAAAAAAAAAAAAAAAAAAA.QAAA.IAAA~1YNN"; GppModel gppModel = new GppModel(gppString); Assertions.assertEquals(Arrays.asList(2, 6), gppModel.getSectionIds()); @@ -564,7 +572,7 @@ public void testDecodeUspv1AndTcfEuV2() { @Test public void testDecodeUspv1AndTcfEuV2AndTcfCaV1() { String gppString = - "DBACOeA~CPSG_8APSG_8ANwAAAENAwCAAAAAAAAAAAAAAAAAAAAA.QAAA.IAAA~BPSG_8APSG_8AAyACAENGdCgf_gfgAfgfgBgABABAAABAB4AACACAAA.fHHHA4444ao~1YNN"; + "DBACOe~CPSG_8APSG_8ANwAAAENAwCAAAAAAAAAAAAAAAAAAAAA.QAAA.IAAA~BPSG_8APSG_8AAyACAENGdCgf_gfgAfgfgBgABABAAABAB4AACACAA.fHHHA4444ao~1YNN"; GppModel gppModel = new GppModel(gppString); Assertions.assertEquals(Arrays.asList(2, 5, 6), gppModel.getSectionIds()); @@ -650,7 +658,7 @@ public void testEncode1() { gppModel.setFieldValue(TcfEuV2.NAME, TcfEuV2Field.CREATED, utcDateTime); gppModel.setFieldValue(TcfEuV2.NAME, TcfEuV2Field.LAST_UPDATED, utcDateTime); - Assertions.assertEquals("DBABMA~CPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAAOAAAABAAAAA.QAAA.IAAA", gppModel.encode()); + Assertions.assertEquals("DBABM~CPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAAOAAAABAAAAA.QAAA.IAAA", gppModel.encode()); } @Test @@ -661,7 +669,7 @@ public void testEncode2() { gppModel.setFieldValue(TcfEuV2.NAME, TcfEuV2Field.CREATED, utcDateTime); gppModel.setFieldValue(TcfEuV2.NAME, TcfEuV2Field.LAST_UPDATED, utcDateTime); - Assertions.assertEquals("DBABMA~CPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAAOwAQAOgAAAA.QAAA.IAAA", gppModel.encode()); + Assertions.assertEquals("DBABM~CPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAAOwAQAOgAAAA.QAAA.IAAA", gppModel.encode()); } @Test @@ -672,25 +680,25 @@ public void testEncode3() { gppModel.setFieldValue(TcfEuV2.NAME, TcfEuV2Field.CREATED, utcDateTime); gppModel.setFieldValue(TcfEuV2.NAME, TcfEuV2Field.LAST_UPDATED, utcDateTime); - Assertions.assertEquals("DBABMA~CPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAFpQAwAAgCtAWkAAAAAAA.QAAA.IAAA", + Assertions.assertEquals("DBABM~CPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAFpQAwAAgCtAWkAAAAAAA.QAAA.IAAA", gppModel.encode()); } @Test public void testDecode1() { - GppModel gppModel = new GppModel("DBABMA~CPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAAOAAAABAAAAA.QAAA.IAAA"); + GppModel gppModel = new GppModel("DBABM~CPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAAOAAAABAAAAA.QAAA.IAAA"); Assertions.assertEquals(Arrays.asList(28), gppModel.getFieldValue(TcfEuV2.NAME, TcfEuV2Field.VENDOR_CONSENTS)); } @Test public void testDecode2() { - GppModel gppModel = new GppModel("DBABMA~CPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAAOwAQAOgAAAA.QAAA.IAAA"); + GppModel gppModel = new GppModel("DBABM~CPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAAOwAQAOgAAAA.QAAA.IAAA"); Assertions.assertEquals(Arrays.asList(29), gppModel.getFieldValue(TcfEuV2.NAME, TcfEuV2Field.VENDOR_CONSENTS)); } @Test public void testDecode3() { - GppModel gppModel = new GppModel("DBABMA~CPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAFpQAwAAgCtAWkAAAAAAA.QAAA.IAAA"); + GppModel gppModel = new GppModel("DBABM~CPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAFpQAwAAgCtAWkAAAAAAA.QAAA.IAAA"); Assertions.assertEquals(Arrays.asList(1, 173, 722), gppModel.getFieldValue(TcfEuV2.NAME, TcfEuV2Field.VENDOR_CONSENTS)); } @@ -778,7 +786,7 @@ public void testNullConstructor() { Assertions.assertEquals("DBAA", gppModel.encode()); gppModel.setFieldValue("uspv1", UspV1Field.NOTICE, 'Y'); - Assertions.assertEquals("DBABTA~1Y--", gppModel.encode()); + Assertions.assertEquals("DBABT~1Y--", gppModel.encode()); } @Test @@ -787,7 +795,7 @@ public void testEmptyStringConstructor() { Assertions.assertEquals("DBAA", gppModel.encode()); gppModel.setFieldValue("uspv1", UspV1Field.NOTICE, 'Y'); - Assertions.assertEquals("DBABTA~1Y--", gppModel.encode()); + Assertions.assertEquals("DBABT~1Y--", gppModel.encode()); } @Test @@ -799,7 +807,7 @@ public void testDecodingNull() { Assertions.assertEquals("DBAA", gppModel.encode()); gppModel.setFieldValue("uspv1", UspV1Field.NOTICE, 'Y'); - Assertions.assertEquals("DBABTA~1Y--", gppModel.encode()); + Assertions.assertEquals("DBABT~1Y--", gppModel.encode()); } @Test @@ -811,18 +819,7 @@ public void testDecodingEmptyString() { Assertions.assertEquals("DBAA", gppModel.encode()); gppModel.setFieldValue("uspv1", UspV1Field.NOTICE, 'Y'); - Assertions.assertEquals("DBABTA~1Y--", gppModel.encode()); - } - - @Test - public void testDecodingExceptionValidStringButNotGPP() { - try { - GppModel gppModel = new GppModel("DP48G0AP48G0AEsACCPLAkEgAAAAAEPgAB5YAAAQaQD2F2K2kKFkPCmQWYAQBCijYEAhQAAAAkCBIAAgAUgQAgFIIAgAIFAAAAAAAAAQEgCQAAQABAAAIACgAAAAAAIAAAAAAAQQAAAAAIAAAAAAAAEAAAAAAAQAAAAIAABEhCAAQQAEAAAAAAAQAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAgAA"); - gppModel.getHeader().getName(); - Assertions.fail("Expected LazyDecodingException"); - } catch (DecodingException e) { - - } + Assertions.assertEquals("DBABT~1Y--", gppModel.encode()); } diff --git a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/.UsNatV1Test.java.swp b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/.UsNatV1Test.java.swp new file mode 100644 index 00000000..686ae751 Binary files /dev/null and b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/.UsNatV1Test.java.swp differ diff --git a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/HeaderV1Test.java b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/HeaderV1Test.java index 5ed478a5..bdd4978b 100644 --- a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/HeaderV1Test.java +++ b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/HeaderV1Test.java @@ -19,14 +19,14 @@ public void testEncode1() { public void testEncode2() { HeaderV1 headerV1 = new HeaderV1(); headerV1.setFieldValue("SectionIds", Arrays.asList(2)); - Assertions.assertEquals("DBABMA", headerV1.encode()); + Assertions.assertEquals("DBABM", headerV1.encode()); } @Test public void testEncode3() { HeaderV1 headerV1 = new HeaderV1(); headerV1.setFieldValue("SectionIds", Arrays.asList(2, 6)); - Assertions.assertEquals("DBACNYA", headerV1.encode()); + Assertions.assertEquals("DBACNY", headerV1.encode()); } @Test @@ -41,7 +41,7 @@ public void testDecode1() { @Test public void testDecode2() { HeaderV1 headerV1 = new HeaderV1(); - headerV1.decode("DBABMA"); + headerV1.decode("DBABM"); Assertions.assertEquals(Arrays.asList(2), headerV1.getFieldValue("SectionIds")); Assertions.assertEquals(headerV1.getFieldValue("Version"), headerV1.getVersion()); Assertions.assertEquals(headerV1.getFieldValue("SectionIds"), headerV1.getSectionsIds()); @@ -49,6 +49,24 @@ public void testDecode2() { @Test public void testDecode3() { + HeaderV1 headerV1 = new HeaderV1(); + headerV1.decode("DBABMA"); + Assertions.assertEquals(Arrays.asList(2), headerV1.getFieldValue("SectionIds")); + Assertions.assertEquals(headerV1.getFieldValue("Version"), headerV1.getVersion()); + Assertions.assertEquals(headerV1.getFieldValue("SectionIds"), headerV1.getSectionsIds()); + } + + @Test + public void testDecode4() { + HeaderV1 headerV1 = new HeaderV1(); + headerV1.decode("DBACNY"); + Assertions.assertEquals(Arrays.asList(2, 6), headerV1.getFieldValue("SectionIds")); + Assertions.assertEquals(headerV1.getFieldValue("Version"), headerV1.getVersion()); + Assertions.assertEquals(headerV1.getFieldValue("SectionIds"), headerV1.getSectionsIds()); + } + + @Test + public void testDecode5() { HeaderV1 headerV1 = new HeaderV1(); headerV1.decode("DBACNYA"); Assertions.assertEquals(Arrays.asList(2, 6), headerV1.getFieldValue("SectionIds")); diff --git a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/TcfCaV1Test.java b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/TcfCaV1Test.java index 3f53a288..32ee2686 100644 --- a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/TcfCaV1Test.java +++ b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/TcfCaV1Test.java @@ -22,7 +22,7 @@ public void testEncode1() { TcfCaV1 tcfCaV1 = new TcfCaV1(); tcfCaV1.setFieldValue(TcfCaV1Field.CREATED, ZonedDateTime.of(2022, 1, 1, 0, 0, 0, 0, ZoneId.of("UTC"))); tcfCaV1.setFieldValue(TcfCaV1Field.LAST_UPDATED, ZonedDateTime.of(2022, 1, 1, 0, 0, 0, 0, ZoneId.of("UTC"))); - Assertions.assertEquals("BPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAAAAAAA.YAAAAAAAAAA", tcfCaV1.encode()); + Assertions.assertEquals("BPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAAAAAA.YAAAAAAAAA", tcfCaV1.encode()); } @Test @@ -56,7 +56,7 @@ public void testEncode2() { tcfCaV1.setFieldValue(TcfCaV1Field.CREATED, ZonedDateTime.of(2022, 1, 1, 0, 0, 0, 0, ZoneId.of("UTC"))); tcfCaV1.setFieldValue(TcfCaV1Field.LAST_UPDATED, ZonedDateTime.of(2022, 1, 1, 0, 0, 0, 0, ZoneId.of("UTC"))); - Assertions.assertEquals("BPSG_8APSG_8AAyACAENGdCgf_gfgAfgfgBgABABAAABAB4AACACAAA.fHHHA4444ao", tcfCaV1.encode()); + Assertions.assertEquals("BPSG_8APSG_8AAyACAENGdCgf_gfgAfgfgBgABABAAABAB4AACACAA.fHHHA4444ao", tcfCaV1.encode()); } @Test @@ -68,7 +68,7 @@ public void testEncode3() throws EncodingException, InvalidFieldException { tcfCaV1.setFieldValue(TcfCaV1Field.CREATED, ZonedDateTime.of(2022, 1, 1, 0, 0, 0, 0, ZoneId.of("UTC"))); tcfCaV1.setFieldValue(TcfCaV1Field.LAST_UPDATED, ZonedDateTime.of(2022, 1, 1, 0, 0, 0, 0, ZoneId.of("UTC"))); - Assertions.assertEquals("BPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAAAAAAA.YAAAAAAAAAA.IAGO5w", tcfCaV1.encode()); + Assertions.assertEquals("BPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAAAAAA.YAAAAAAAAA.IAGO5w", tcfCaV1.encode()); } @Test @@ -82,12 +82,12 @@ public void testEncode4() throws EncodingException, InvalidFieldException { tcfCaV1.setFieldValue(TcfCaV1Field.CREATED, ZonedDateTime.of(2022, 1, 1, 0, 0, 0, 0, ZoneId.of("UTC"))); tcfCaV1.setFieldValue(TcfCaV1Field.LAST_UPDATED, ZonedDateTime.of(2022, 1, 1, 0, 0, 0, 0, ZoneId.of("UTC"))); - Assertions.assertEquals("BPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAAAAACCgBwABAAOAAoADgAJA.YAAAAAAAAAA", tcfCaV1.encode()); + Assertions.assertEquals("BPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAAAAACCgBwABAAOAAoADgAJ.YAAAAAAAAA", tcfCaV1.encode()); } @Test public void testDecode1() { - TcfCaV1 tcfCaV1 = new TcfCaV1("BPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAAAAAAA.YAAAAAAAAAA"); + TcfCaV1 tcfCaV1 = new TcfCaV1("BPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAAAAAA.YAAAAAAAAA"); Assertions.assertEquals(0, tcfCaV1.getCmpId()); Assertions.assertEquals(0, tcfCaV1.getCmpVersion()); @@ -129,7 +129,7 @@ public void testDecode1() { @Test public void testDecode2() { - TcfCaV1 tcfCaV1 = new TcfCaV1("BPSG_8APSG_8AAyACAENGdCgf_gfgAfgfgBgABABAAABAB4AACACAAA.fHHHA4444ao"); + TcfCaV1 tcfCaV1 = new TcfCaV1("BPSG_8APSG_8AAyACAENGdCgf_gfgAfgfgBgABABAAABAB4AACACAA.fHHHA4444ao"); Assertions.assertEquals(50, tcfCaV1.getCmpId()); Assertions.assertEquals(2, tcfCaV1.getCmpVersion()); @@ -168,7 +168,7 @@ public void testDecode2() { @Test public void testDecode3() throws DecodingException { - TcfCaV1 tcfCaV1 = new TcfCaV1("BPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAAAAAAA.YAAAAAAAAAA.IAGO5w"); + TcfCaV1 tcfCaV1 = new TcfCaV1("BPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAAAAAA.YAAAAAAAAA.IAGO5w"); Assertions.assertEquals(1, tcfCaV1.getDisclosedVendorsSegmentType()); Assertions.assertEquals(Arrays.asList(1, 2, 3, 5, 6, 7, 10, 11, 12), tcfCaV1.getDisclosedVendors()); @@ -176,7 +176,7 @@ public void testDecode3() throws DecodingException { @Test public void testDecode4() throws DecodingException { - TcfCaV1 tcfCaV1 = new TcfCaV1("BPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAAAAACCgBwABAAOAAoADgAJA.YAAAAAAAAAA"); + TcfCaV1 tcfCaV1 = new TcfCaV1("BPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAAAAACCgBwABAAOAAoADgAJ.YAAAAAAAAA"); List pubRestictions = tcfCaV1.getPubRestrictions(); Assertions.assertEquals(1, pubRestictions.size()); diff --git a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsCaTest.java b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsCaTest.java index 6dcc3fcc..18fe5abc 100644 --- a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsCaTest.java +++ b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsCaTest.java @@ -14,7 +14,7 @@ public class UsCaTest { public void testEncode1() { UsCa usCa = new UsCa(); - Assertions.assertEquals("BAAAAABA.QA", usCa.encode()); + Assertions.assertEquals("BAAAAABA.Q", usCa.encode()); } @Test @@ -34,7 +34,7 @@ public void testEncode2() { usCa.setFieldValue(UsCaField.MSPA_SERVICE_PROVIDER_MODE, 2); usCa.setFieldValue(UsCaField.GPC, true); - Assertions.assertEquals("BVWSSSVY.YA", usCa.encode()); + Assertions.assertEquals("BVWSSSVY.Y", usCa.encode()); } @Test @@ -54,7 +54,7 @@ public void testEncode3() { usCa.setFieldValue(UsCaField.MSPA_SERVICE_PROVIDER_MODE, 2); usCa.setFieldValue(UsCaField.GPC, true); - Assertions.assertEquals("BVWSSSVY.YA", usCa.encode()); + Assertions.assertEquals("BVWSSSVY.Y", usCa.encode()); } @Test @@ -149,6 +149,24 @@ public void testEncodeWithGpcSegmentExcluded() { @Test public void testDecode1() { + UsCa usCa = new UsCa("BVWSSSVY.Y"); + + Assertions.assertEquals(1, usCa.getSaleOptOutNotice()); + Assertions.assertEquals(1, usCa.getSharingOptOut()); + Assertions.assertEquals(1, usCa.getSensitiveDataLimitUseNotice()); + Assertions.assertEquals(1, usCa.getSaleOptOut()); + Assertions.assertEquals(1, usCa.getSharingOptOut()); + Assertions.assertEquals(Arrays.asList(2, 1, 0, 2, 1, 0, 2, 1, 0), usCa.getSensitiveDataProcessing()); + Assertions.assertEquals(Arrays.asList(2, 1), usCa.getKnownChildSensitiveDataConsents()); + Assertions.assertEquals(1, usCa.getPersonalDataConsents()); + Assertions.assertEquals(1, usCa.getMspaCoveredTransaction()); + Assertions.assertEquals(1, usCa.getMspaOptOutOptionMode()); + Assertions.assertEquals(2, usCa.getMspaServiceProviderMode()); + Assertions.assertEquals(true, usCa.getGpc()); + } + + @Test + public void testDecode2() { UsCa usCa = new UsCa("BVWSSSVY.YA"); Assertions.assertEquals(1, usCa.getSaleOptOutNotice()); diff --git a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsCoTest.java b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsCoTest.java index 59488ff1..68ebac54 100644 --- a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsCoTest.java +++ b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsCoTest.java @@ -13,7 +13,7 @@ public class UsCoTest { @Test public void testEncode1() { UsCo usCo = new UsCo(); - Assertions.assertEquals("BAAAAEA.QA", usCo.encode()); + Assertions.assertEquals("BAAAAEA.Q", usCo.encode()); } @Test @@ -32,7 +32,7 @@ public void testEncode2() { usCo.setFieldValue(UsCoField.MSPA_SERVICE_PROVIDER_MODE, 2); usCo.setFieldValue(UsCoField.GPC, true); - Assertions.assertEquals("BVWSSVg.YA", usCo.encode()); + Assertions.assertEquals("BVWSSVg.Y", usCo.encode()); } @Test @@ -120,6 +120,23 @@ public void testEncodeWithGpcSegmentExcluded() { @Test public void testDecode1() { + UsCo usCo = new UsCo("BVWSSVg.Y"); + + Assertions.assertEquals(1, usCo.getSharingNotice()); + Assertions.assertEquals(1, usCo.getSaleOptOutNotice()); + Assertions.assertEquals(1, usCo.getTargetedAdvertisingOptOutNotice()); + Assertions.assertEquals(1, usCo.getSaleOptOut()); + Assertions.assertEquals(1, usCo.getTargetedAdvertisingOptOut()); + Assertions.assertEquals(Arrays.asList(2, 1, 0, 2, 1, 0, 2), usCo.getSensitiveDataProcessing()); + Assertions.assertEquals(1, usCo.getKnownChildSensitiveDataConsents()); + Assertions.assertEquals(1, usCo.getMspaCoveredTransaction()); + Assertions.assertEquals(1, usCo.getMspaOptOutOptionMode()); + Assertions.assertEquals(2, usCo.getMspaServiceProviderMode()); + Assertions.assertEquals(true, usCo.getGpc()); + } + + @Test + public void testDecode2() { UsCo usCo = new UsCo("BVWSSVg.YA"); Assertions.assertEquals(1, usCo.getSharingNotice()); diff --git a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsCtTest.java b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsCtTest.java index 03ea9f9b..53d213cd 100644 --- a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsCtTest.java +++ b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsCtTest.java @@ -13,7 +13,7 @@ public class UsCtTest { @Test public void testEncode1() { UsCt usCt = new UsCt(); - Assertions.assertEquals("BAAAAAEA.QA", usCt.encode()); + Assertions.assertEquals("BAAAAAEA.Q", usCt.encode()); } @Test @@ -32,7 +32,7 @@ public void testEncode2() { usCt.setFieldValue(UsCtField.MSPA_SERVICE_PROVIDER_MODE, 2); usCt.setFieldValue(UsCtField.GPC, true); - Assertions.assertEquals("BVWSSZFg.YA", usCt.encode()); + Assertions.assertEquals("BVWSSZFg.Y", usCt.encode()); } @Test @@ -119,6 +119,23 @@ public void testEncodeWithGpcSegmentExcluded() { @Test public void testDecode1() throws DecodingException { + UsCt usCt = new UsCt("BVWSSZFg.Y"); + + Assertions.assertEquals(1, usCt.getSharingNotice()); + Assertions.assertEquals(1, usCt.getSaleOptOutNotice()); + Assertions.assertEquals(1, usCt.getTargetedAdvertisingOptOutNotice()); + Assertions.assertEquals(1, usCt.getSaleOptOut()); + Assertions.assertEquals(1, usCt.getTargetedAdvertisingOptOut()); + Assertions.assertEquals(Arrays.asList(2, 1, 0, 2, 1, 0, 2, 1), usCt.getSensitiveDataProcessing()); + Assertions.assertEquals(Arrays.asList(2, 1, 0), usCt.getKnownChildSensitiveDataConsents()); + Assertions.assertEquals(1, usCt.getMspaCoveredTransaction()); + Assertions.assertEquals(1, usCt.getMspaOptOutOptionMode()); + Assertions.assertEquals(2, usCt.getMspaServiceProviderMode()); + Assertions.assertEquals(true, usCt.getGpc()); + } + + @Test + public void testDecode2() throws DecodingException { UsCt usCt = new UsCt("BVWSSZFg.YA"); Assertions.assertEquals(1, usCt.getSharingNotice()); diff --git a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsDeTest.java b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsDeTest.java index 30341616..9fe24d18 100644 --- a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsDeTest.java +++ b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsDeTest.java @@ -13,7 +13,7 @@ public class UsDeTest { @Test public void testEncode1() { UsDe usDe = new UsDe(); - Assertions.assertEquals("BAAAAAABAA.QA", usDe.encode()); + Assertions.assertEquals("BAAAAAABA.Q", usDe.encode()); } @Test @@ -33,7 +33,7 @@ public void testEncode2() { usDe.setFieldValue(UsDeField.MSPA_SERVICE_PROVIDER_MODE, 2); usDe.setFieldValue(UsDeField.GPC, true); - Assertions.assertEquals("BVWSSSSVYA.YA", usDe.encode()); + Assertions.assertEquals("BVWSSSSVY.Y", usDe.encode()); } @Test @@ -122,11 +122,29 @@ public void testSetInvalidValues() { public void testEncodeWithGpcSegmentExcluded() { UsDe usDe = new UsDe(); usDe.setFieldValue(UsDeField.GPC_SEGMENT_INCLUDED, false); - Assertions.assertEquals("BAAAAAABAA", usDe.encode()); + Assertions.assertEquals("BAAAAAABA", usDe.encode()); } @Test public void testDecode1() throws DecodingException { + UsDe usDe = new UsDe("BVWSSSSVY.Y"); + + Assertions.assertEquals(1, usDe.getProcessingNotice()); + Assertions.assertEquals(1, usDe.getSaleOptOutNotice()); + Assertions.assertEquals(1, usDe.getTargetedAdvertisingOptOutNotice()); + Assertions.assertEquals(1, usDe.getSaleOptOut()); + Assertions.assertEquals(1, usDe.getTargetedAdvertisingOptOut()); + Assertions.assertEquals(Arrays.asList(2, 1, 0, 2, 1, 0, 2, 1, 0), usDe.getSensitiveDataProcessing()); + Assertions.assertEquals(Arrays.asList(2, 1, 0, 2, 1), usDe.getKnownChildSensitiveDataConsents()); + Assertions.assertEquals(1, usDe.getAdditionalDataProcessingConsent()); + Assertions.assertEquals(1, usDe.getMspaCoveredTransaction()); + Assertions.assertEquals(1, usDe.getMspaOptOutOptionMode()); + Assertions.assertEquals(2, usDe.getMspaServiceProviderMode()); + Assertions.assertEquals(true, usDe.getGpc()); + } + + @Test + public void testDecode2() throws DecodingException { UsDe usDe = new UsDe("BVWSSSSVYA.YA"); Assertions.assertEquals(1, usDe.getProcessingNotice()); @@ -143,9 +161,10 @@ public void testDecode1() throws DecodingException { Assertions.assertEquals(true, usDe.getGpc()); } + @Test public void testDecodeWithGpcSegmentExcluded() throws DecodingException { - UsDe usDe = new UsDe("BVWSSSSVYA"); + UsDe usDe = new UsDe("BVWSSSSVY"); Assertions.assertEquals(1, usDe.getProcessingNotice()); Assertions.assertEquals(1, usDe.getSaleOptOutNotice()); diff --git a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsIaTest.java b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsIaTest.java index 4171eac1..352b723a 100644 --- a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsIaTest.java +++ b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsIaTest.java @@ -13,7 +13,7 @@ public class UsIaTest { @Test public void testEncode1() { UsIa usIa = new UsIa(); - Assertions.assertEquals("BAAAAAQA.QA", usIa.encode()); + Assertions.assertEquals("BAAAAAQ.Q", usIa.encode()); } @Test @@ -33,7 +33,7 @@ public void testEncode2() { usIa.setFieldValue(UsIaField.MSPA_SERVICE_PROVIDER_MODE, 2); usIa.setFieldValue(UsIaField.GPC, true); - Assertions.assertEquals("BVVkklWA.YA", usIa.encode()); + Assertions.assertEquals("BVVkklW.Y", usIa.encode()); } @Test @@ -122,11 +122,29 @@ public void testSetInvalidValues() { public void testEncodeWithGpcSegmentExcluded() { UsIa usIa = new UsIa(); usIa.setFieldValue(UsIaField.GPC_SEGMENT_INCLUDED, false); - Assertions.assertEquals("BAAAAAQA", usIa.encode()); + Assertions.assertEquals("BAAAAAQ", usIa.encode()); } @Test public void testDecode1() throws DecodingException { + UsIa usIa = new UsIa("BVVkklW.Y"); + + Assertions.assertEquals(1, usIa.getProcessingNotice()); + Assertions.assertEquals(1, usIa.getSaleOptOutNotice()); + Assertions.assertEquals(1, usIa.getTargetedAdvertisingOptOutNotice()); + Assertions.assertEquals(1, usIa.getSensitiveDataOptOutNotice()); + Assertions.assertEquals(1, usIa.getSaleOptOut()); + Assertions.assertEquals(1, usIa.getTargetedAdvertisingOptOut()); + Assertions.assertEquals(Arrays.asList(2, 1, 0, 2, 1, 0, 2, 1), usIa.getSensitiveDataProcessing()); + Assertions.assertEquals(1, usIa.getKnownChildSensitiveDataConsents()); + Assertions.assertEquals(1, usIa.getMspaCoveredTransaction()); + Assertions.assertEquals(1, usIa.getMspaOptOutOptionMode()); + Assertions.assertEquals(2, usIa.getMspaServiceProviderMode()); + Assertions.assertEquals(true, usIa.getGpc()); + } + + @Test + public void testDecode2() throws DecodingException { UsIa usIa = new UsIa("BVVkklWA.YA"); Assertions.assertEquals(1, usIa.getProcessingNotice()); diff --git a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsMnTest.java b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsMnTest.java index 3b397757..818bc3f2 100644 --- a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsMnTest.java +++ b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsMnTest.java @@ -14,7 +14,7 @@ public class UsMnTest { @Test public void testEncode1() { UsMn usMn = new UsMn(); - Assertions.assertEquals("BAAAAAQA.QA", usMn.encode()); + Assertions.assertEquals("BAAAAAQ.Q", usMn.encode()); } @Test @@ -34,7 +34,7 @@ public void testEncode2() { usMn.setFieldValue(UsMnField.MSPA_SERVICE_PROVIDER_MODE, 2); usMn.setFieldValue(UsMnField.GPC, true); - Assertions.assertEquals("BVWSSVWA.YA", usMn.encode()); + Assertions.assertEquals("BVWSSVW.Y", usMn.encode()); } @Test @@ -123,7 +123,7 @@ public void testSetInvalidValues() { public void testEncodeWithGpcSegmentExcluded() { UsMn usMn = new UsMn(); usMn.setFieldValue(UsMnField.GPC_SEGMENT_INCLUDED, false); - Assertions.assertEquals("BAAAAAQA", usMn.encode()); + Assertions.assertEquals("BAAAAAQ", usMn.encode()); } @Test diff --git a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsMtTest.java b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsMtTest.java index aaceb049..f407dc54 100644 --- a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsMtTest.java +++ b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsMtTest.java @@ -13,7 +13,7 @@ public class UsMtTest { @Test public void testEncode1() { UsMt usMt = new UsMt(); - Assertions.assertEquals("BAAAAABA.QA", usMt.encode()); + Assertions.assertEquals("BAAAAABA.Q", usMt.encode()); } @Test @@ -33,7 +33,7 @@ public void testEncode2() { usMt.setFieldValue(UsMtField.MSPA_SERVICE_PROVIDER_MODE, 2); usMt.setFieldValue(UsMtField.GPC, true); - Assertions.assertEquals("BVWSSZFY.YA", usMt.encode()); + Assertions.assertEquals("BVWSSZFY.Y", usMt.encode()); } @Test @@ -127,6 +127,24 @@ public void testEncodeWithGpcSegmentExcluded() { @Test public void testDecode1() throws DecodingException { + UsMt usMt = new UsMt("BVWSSZFY.Y"); + + Assertions.assertEquals(1, usMt.getSharingNotice()); + Assertions.assertEquals(1, usMt.getSaleOptOutNotice()); + Assertions.assertEquals(1, usMt.getTargetedAdvertisingOptOutNotice()); + Assertions.assertEquals(1, usMt.getSaleOptOut()); + Assertions.assertEquals(1, usMt.getTargetedAdvertisingOptOut()); + Assertions.assertEquals(Arrays.asList(2, 1, 0, 2, 1, 0, 2, 1), usMt.getSensitiveDataProcessing()); + Assertions.assertEquals(Arrays.asList(2, 1, 0), usMt.getKnownChildSensitiveDataConsents()); + Assertions.assertEquals(1, usMt.getAdditionalDataProcessingConsent()); + Assertions.assertEquals(1, usMt.getMspaCoveredTransaction()); + Assertions.assertEquals(1, usMt.getMspaOptOutOptionMode()); + Assertions.assertEquals(2, usMt.getMspaServiceProviderMode()); + Assertions.assertEquals(true, usMt.getGpc()); + } + + @Test + public void testDecode2() throws DecodingException { UsMt usMt = new UsMt("BVWSSZFY.YA"); Assertions.assertEquals(1, usMt.getSharingNotice()); diff --git a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsNatTest.java b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsNatTest.java index 4d32c057..94991c66 100644 --- a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsNatTest.java +++ b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsNatTest.java @@ -14,7 +14,7 @@ public class UsNatTest { public void testEncode1() { UsNat usNat = new UsNat(); - Assertions.assertEquals("BAAAAAAAAABA.QA", usNat.encode()); + Assertions.assertEquals("BAAAAAAAAABA.Q", usNat.encode()); } @Test @@ -38,7 +38,7 @@ public void testEncode2() { usNat.setFieldValue(UsNatField.MSPA_SERVICE_PROVIDER_MODE, 2); usNat.setFieldValue(UsNatField.GPC, true); - Assertions.assertEquals("BVVVkkkkkpFY.YA", usNat.encode()); + Assertions.assertEquals("BVVVkkkkkpFY.Y", usNat.encode()); } @Test @@ -174,7 +174,7 @@ public void testEncode3() { usNat.setFieldValue(UsNatField.MSPA_SERVICE_PROVIDER_MODE, 2); usNat.setFieldValue(UsNatField.GPC, true); - Assertions.assertEquals("BVVVkkkkkpFY.YA", usNat.encode()); + Assertions.assertEquals("BVVVkkkkkpFY.Y", usNat.encode()); } @Test @@ -187,7 +187,7 @@ public void testEncodeWithGpcSegmentIncluded() { @Test public void testDecode1() throws DecodingException { - UsNat usNat = new UsNat("BVVVkkkkkpFY.YA"); + UsNat usNat = new UsNat("BVVVkkkkkpFY.Y"); Assertions.assertEquals(1, usNat.getSharingNotice()); Assertions.assertEquals(1, usNat.getSaleOptOutNotice()); @@ -208,8 +208,8 @@ public void testDecode1() throws DecodingException { } @Test - public void testDecodeWithGpcSegmentExcluded() throws DecodingException { - UsNat usNat = new UsNat("BVVVkkkkkpFY"); + public void testDecode2() throws DecodingException { + UsNat usNat = new UsNat("BVVVkkkkkpFY.YA"); Assertions.assertEquals(1, usNat.getSharingNotice()); Assertions.assertEquals(1, usNat.getSaleOptOutNotice()); @@ -226,29 +226,29 @@ public void testDecodeWithGpcSegmentExcluded() throws DecodingException { Assertions.assertEquals(1, usNat.getMspaCoveredTransaction()); Assertions.assertEquals(1, usNat.getMspaOptOutOptionMode()); Assertions.assertEquals(2, usNat.getMspaServiceProviderMode()); - Assertions.assertEquals(false, usNat.getGpcSegmentIncluded()); + Assertions.assertEquals(true, usNat.getGpc()); } @Test - public void testDecodeBackwardsCompatibility() throws DecodingException { - UsNat usNat = new UsNat("BVQqAAAACg"); + public void testDecodeWithGpcSegmentExcluded() throws DecodingException { + UsNat usNat = new UsNat("BVVVkkkkkpFY"); Assertions.assertEquals(1, usNat.getSharingNotice()); Assertions.assertEquals(1, usNat.getSaleOptOutNotice()); Assertions.assertEquals(1, usNat.getSharingOptOutNotice()); Assertions.assertEquals(1, usNat.getTargetedAdvertisingOptOutNotice()); - Assertions.assertEquals(0, usNat.getSensitiveDataProcessingOptOutNotice()); - Assertions.assertEquals(0, usNat.getSensitiveDataLimitUseNotice()); - Assertions.assertEquals(2, usNat.getSaleOptOut()); - Assertions.assertEquals(2, usNat.getSharingOptOut()); - Assertions.assertEquals(2, usNat.getTargetedAdvertisingOptOut()); - Assertions.assertEquals(Arrays.asList(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), usNat.getSensitiveDataProcessing()); - Assertions.assertEquals(Arrays.asList(0, 0, 0), usNat.getKnownChildSensitiveDataConsents()); - Assertions.assertEquals(2, usNat.getPersonalDataConsents()); - Assertions.assertEquals(2, usNat.getMspaCoveredTransaction()); - Assertions.assertEquals(0, usNat.getMspaOptOutOptionMode()); - Assertions.assertEquals(0, usNat.getMspaServiceProviderMode()); - Assertions.assertEquals(false, usNat.getGpc()); + Assertions.assertEquals(1, usNat.getSensitiveDataProcessingOptOutNotice()); + Assertions.assertEquals(1, usNat.getSensitiveDataLimitUseNotice()); + Assertions.assertEquals(1, usNat.getSaleOptOut()); + Assertions.assertEquals(1, usNat.getSharingOptOut()); + Assertions.assertEquals(1, usNat.getTargetedAdvertisingOptOut()); + Assertions.assertEquals(Arrays.asList(2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2), usNat.getSensitiveDataProcessing()); + Assertions.assertEquals(Arrays.asList(2, 1, 0), usNat.getKnownChildSensitiveDataConsents()); + Assertions.assertEquals(1, usNat.getPersonalDataConsents()); + Assertions.assertEquals(1, usNat.getMspaCoveredTransaction()); + Assertions.assertEquals(1, usNat.getMspaOptOutOptionMode()); + Assertions.assertEquals(2, usNat.getMspaServiceProviderMode()); + Assertions.assertEquals(false, usNat.getGpcSegmentIncluded()); } @Test() diff --git a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsNeTest.java b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsNeTest.java index e9e25743..f3de1924 100644 --- a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsNeTest.java +++ b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsNeTest.java @@ -13,7 +13,7 @@ public class UsNeTest { @Test public void testEncode1() { UsNe usNe = new UsNe(); - Assertions.assertEquals("BAAAAAQA.QA", usNe.encode()); + Assertions.assertEquals("BAAAAAQ.Q", usNe.encode()); } @Test @@ -33,7 +33,7 @@ public void testEncode2() { usNe.setFieldValue(UsNeField.MSPA_SERVICE_PROVIDER_MODE, 2); usNe.setFieldValue(UsNeField.GPC, true); - Assertions.assertEquals("BVWSSVWA.YA", usNe.encode()); + Assertions.assertEquals("BVWSSVW.Y", usNe.encode()); } @Test @@ -122,7 +122,7 @@ public void testSetInvalidValues() { public void testEncodeWithGpcSegmentExcluded() { UsNe usNe = new UsNe(); usNe.setFieldValue(UsNeField.GPC_SEGMENT_INCLUDED, false); - Assertions.assertEquals("BAAAAAQA", usNe.encode()); + Assertions.assertEquals("BAAAAAQ", usNe.encode()); } @Test @@ -143,9 +143,27 @@ public void testDecode1() throws DecodingException { Assertions.assertEquals(true, usNe.getGpc()); } + @Test + public void testDecode2() throws DecodingException { + UsNe usNe = new UsNe("BVWSSVW.Y"); + + Assertions.assertEquals(1, usNe.getProcessingNotice()); + Assertions.assertEquals(1, usNe.getSaleOptOutNotice()); + Assertions.assertEquals(1, usNe.getTargetedAdvertisingOptOutNotice()); + Assertions.assertEquals(1, usNe.getSaleOptOut()); + Assertions.assertEquals(1, usNe.getTargetedAdvertisingOptOut()); + Assertions.assertEquals(Arrays.asList(2, 1, 0, 2, 1, 0, 2, 1), usNe.getSensitiveDataProcessing()); + Assertions.assertEquals(1, usNe.getKnownChildSensitiveDataConsents()); + Assertions.assertEquals(1, usNe.getAdditionalDataProcessingConsent()); + Assertions.assertEquals(1, usNe.getMspaCoveredTransaction()); + Assertions.assertEquals(1, usNe.getMspaOptOutOptionMode()); + Assertions.assertEquals(2, usNe.getMspaServiceProviderMode()); + Assertions.assertEquals(true, usNe.getGpc()); + } + @Test public void testDecodeWithGpcSegmentExcluded() throws DecodingException { - UsNe usNe = new UsNe("BVWSSVWA"); + UsNe usNe = new UsNe("BVWSSVW"); Assertions.assertEquals(1, usNe.getProcessingNotice()); Assertions.assertEquals(1, usNe.getSaleOptOutNotice()); diff --git a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsNhTest.java b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsNhTest.java index 3211f9fc..5eef593d 100644 --- a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsNhTest.java +++ b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsNhTest.java @@ -13,7 +13,7 @@ public class UsNhTest { @Test public void testEncode1() { UsNh usNh = new UsNh(); - Assertions.assertEquals("BAAAAABA.QA", usNh.encode()); + Assertions.assertEquals("BAAAAABA.Q", usNh.encode()); } @Test @@ -33,7 +33,7 @@ public void testEncode2() { usNh.setFieldValue(UsNhField.MSPA_SERVICE_PROVIDER_MODE, 2); usNh.setFieldValue(UsNhField.GPC, true); - Assertions.assertEquals("BVWSSZFY.YA", usNh.encode()); + Assertions.assertEquals("BVWSSZFY.Y", usNh.encode()); } @Test @@ -127,6 +127,24 @@ public void testEncodeWithGpcSegmentExcluded() { @Test public void testDecode1() throws DecodingException { + UsNh usNh = new UsNh("BVWSSZFY.Y"); + + Assertions.assertEquals(1, usNh.getProcessingNotice()); + Assertions.assertEquals(1, usNh.getSaleOptOutNotice()); + Assertions.assertEquals(1, usNh.getTargetedAdvertisingOptOutNotice()); + Assertions.assertEquals(1, usNh.getSaleOptOut()); + Assertions.assertEquals(1, usNh.getTargetedAdvertisingOptOut()); + Assertions.assertEquals(Arrays.asList(2, 1, 0, 2, 1, 0, 2, 1), usNh.getSensitiveDataProcessing()); + Assertions.assertEquals(Arrays.asList(2, 1, 0), usNh.getKnownChildSensitiveDataConsents()); + Assertions.assertEquals(1, usNh.getAdditionalDataProcessingConsent()); + Assertions.assertEquals(1, usNh.getMspaCoveredTransaction()); + Assertions.assertEquals(1, usNh.getMspaOptOutOptionMode()); + Assertions.assertEquals(2, usNh.getMspaServiceProviderMode()); + Assertions.assertEquals(true, usNh.getGpc()); + } + + @Test + public void testDecode2() throws DecodingException { UsNh usNh = new UsNh("BVWSSZFY.YA"); Assertions.assertEquals(1, usNh.getProcessingNotice()); diff --git a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsNjTest.java b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsNjTest.java index afda60bb..835b92d3 100644 --- a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsNjTest.java +++ b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsNjTest.java @@ -13,7 +13,7 @@ public class UsNjTest { @Test public void testEncode1() { UsNj usNj = new UsNj(); - Assertions.assertEquals("BAAAAAAAQA.QA", usNj.encode()); + Assertions.assertEquals("BAAAAAAAQ.Q", usNj.encode()); } @Test @@ -33,7 +33,7 @@ public void testEncode2() { usNj.setFieldValue(UsNjField.MSPA_SERVICE_PROVIDER_MODE, 2); usNj.setFieldValue(UsNjField.GPC, true); - Assertions.assertEquals("BVWSSRklWA.YA", usNj.encode()); + Assertions.assertEquals("BVWSSRklW.Y", usNj.encode()); } @Test @@ -122,11 +122,29 @@ public void testSetInvalidValues() { public void testEncodeWithGpcSegmentExcluded() { UsNj usNj = new UsNj(); usNj.setFieldValue(UsNjField.GPC_SEGMENT_INCLUDED, false); - Assertions.assertEquals("BAAAAAAAQA", usNj.encode()); + Assertions.assertEquals("BAAAAAAAQ", usNj.encode()); } @Test public void testDecode1() throws DecodingException { + UsNj usNj = new UsNj("BVWSSRklW.Y"); + + Assertions.assertEquals(1, usNj.getProcessingNotice()); + Assertions.assertEquals(1, usNj.getSaleOptOutNotice()); + Assertions.assertEquals(1, usNj.getTargetedAdvertisingOptOutNotice()); + Assertions.assertEquals(1, usNj.getSaleOptOut()); + Assertions.assertEquals(1, usNj.getTargetedAdvertisingOptOut()); + Assertions.assertEquals(Arrays.asList(2, 1, 0, 2, 1, 0, 2, 1, 0, 1), usNj.getSensitiveDataProcessing()); + Assertions.assertEquals(Arrays.asList(2, 1, 0, 2, 1), usNj.getKnownChildSensitiveDataConsents()); + Assertions.assertEquals(1, usNj.getAdditionalDataProcessingConsent()); + Assertions.assertEquals(1, usNj.getMspaCoveredTransaction()); + Assertions.assertEquals(1, usNj.getMspaOptOutOptionMode()); + Assertions.assertEquals(2, usNj.getMspaServiceProviderMode()); + Assertions.assertEquals(true, usNj.getGpc()); + } + + @Test + public void testDecode2() throws DecodingException { UsNj usNj = new UsNj("BVWSSRklWA.YA"); Assertions.assertEquals(1, usNj.getProcessingNotice()); @@ -145,7 +163,7 @@ public void testDecode1() throws DecodingException { @Test public void testDecodeWithGpcSegmentExcluded() throws DecodingException { - UsNj usNj = new UsNj("BVWSSRklWA"); + UsNj usNj = new UsNj("BVWSSRklW"); Assertions.assertEquals(1, usNj.getProcessingNotice()); Assertions.assertEquals(1, usNj.getSaleOptOutNotice()); diff --git a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsOrTest.java b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsOrTest.java index 34c310b5..2149d23a 100644 --- a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsOrTest.java +++ b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsOrTest.java @@ -13,7 +13,7 @@ public class UsOrTest { @Test public void testEncode1() { UsOr usOr = new UsOr(); - Assertions.assertEquals("BAAAAAABAA.QA", usOr.encode()); + Assertions.assertEquals("BAAAAAABA.Q", usOr.encode()); } @Test @@ -33,7 +33,7 @@ public void testEncode2() { usOr.setFieldValue(UsOrField.MSPA_SERVICE_PROVIDER_MODE, 2); usOr.setFieldValue(UsOrField.GPC, true); - Assertions.assertEquals("BVWSSRpFYA.YA", usOr.encode()); + Assertions.assertEquals("BVWSSRpFY.Y", usOr.encode()); } @Test @@ -122,11 +122,29 @@ public void testSetInvalidValues() { public void testEncodeWithGpcSegmentExcluded() { UsOr usOr = new UsOr(); usOr.setFieldValue(UsOrField.GPC_SEGMENT_INCLUDED, false); - Assertions.assertEquals("BAAAAAABAA", usOr.encode()); + Assertions.assertEquals("BAAAAAABA", usOr.encode()); } @Test public void testDecode1() throws DecodingException { + UsOr usOr = new UsOr("BVWSSRpFY.Y"); + + Assertions.assertEquals(1, usOr.getProcessingNotice()); + Assertions.assertEquals(1, usOr.getSaleOptOutNotice()); + Assertions.assertEquals(1, usOr.getTargetedAdvertisingOptOutNotice()); + Assertions.assertEquals(1, usOr.getSaleOptOut()); + Assertions.assertEquals(1, usOr.getTargetedAdvertisingOptOut()); + Assertions.assertEquals(Arrays.asList(2, 1, 0, 2, 1, 0, 2, 1, 0, 1, 2), usOr.getSensitiveDataProcessing()); + Assertions.assertEquals(Arrays.asList(2, 1, 0), usOr.getKnownChildSensitiveDataConsents()); + Assertions.assertEquals(1, usOr.getAdditionalDataProcessingConsent()); + Assertions.assertEquals(1, usOr.getMspaCoveredTransaction()); + Assertions.assertEquals(1, usOr.getMspaOptOutOptionMode()); + Assertions.assertEquals(2, usOr.getMspaServiceProviderMode()); + Assertions.assertEquals(true, usOr.getGpc()); + } + + @Test + public void testDecode2() throws DecodingException { UsOr usOr = new UsOr("BVWSSRpFYA.YA"); Assertions.assertEquals(1, usOr.getProcessingNotice()); @@ -145,7 +163,7 @@ public void testDecode1() throws DecodingException { @Test public void testDecodeWithGpcSegmentExcluded() throws DecodingException { - UsOr usOr = new UsOr("BVWSSRpFYA"); + UsOr usOr = new UsOr("BVWSSRpFY"); Assertions.assertEquals(1, usOr.getProcessingNotice()); Assertions.assertEquals(1, usOr.getSaleOptOutNotice()); diff --git a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsTnTest.java b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsTnTest.java index 8d0cae7d..9c8f20e9 100644 --- a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsTnTest.java +++ b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsTnTest.java @@ -13,7 +13,7 @@ public class UsTnTest { @Test public void testEncode1() { UsTn usTn = new UsTn(); - Assertions.assertEquals("BAAAAAQA.QA", usTn.encode()); + Assertions.assertEquals("BAAAAAQ.Q", usTn.encode()); } @Test @@ -33,7 +33,7 @@ public void testEncode2() { usTn.setFieldValue(UsTnField.MSPA_SERVICE_PROVIDER_MODE, 2); usTn.setFieldValue(UsTnField.GPC, true); - Assertions.assertEquals("BVWSSVWA.YA", usTn.encode()); + Assertions.assertEquals("BVWSSVW.Y", usTn.encode()); } @Test @@ -122,11 +122,29 @@ public void testSetInvalidValues() { public void testEncodeWithGpcSegmentExcluded() { UsTn usTn = new UsTn(); usTn.setFieldValue(UsTnField.GPC_SEGMENT_INCLUDED, false); - Assertions.assertEquals("BAAAAAQA", usTn.encode()); + Assertions.assertEquals("BAAAAAQ", usTn.encode()); } @Test public void testDecode1() throws DecodingException { + UsTn usTn = new UsTn("BVWSSVW.Y"); + + Assertions.assertEquals(1, usTn.getProcessingNotice()); + Assertions.assertEquals(1, usTn.getSaleOptOutNotice()); + Assertions.assertEquals(1, usTn.getTargetedAdvertisingOptOutNotice()); + Assertions.assertEquals(1, usTn.getSaleOptOut()); + Assertions.assertEquals(1, usTn.getTargetedAdvertisingOptOut()); + Assertions.assertEquals(Arrays.asList(2, 1, 0, 2, 1, 0, 2, 1), usTn.getSensitiveDataProcessing()); + Assertions.assertEquals(1, usTn.getKnownChildSensitiveDataConsents()); + Assertions.assertEquals(1, usTn.getAdditionalDataProcessingConsent()); + Assertions.assertEquals(1, usTn.getMspaCoveredTransaction()); + Assertions.assertEquals(1, usTn.getMspaOptOutOptionMode()); + Assertions.assertEquals(2, usTn.getMspaServiceProviderMode()); + Assertions.assertEquals(true, usTn.getGpc()); + } + + @Test + public void testDecode2() throws DecodingException { UsTn usTn = new UsTn("BVWSSVWA.YA"); Assertions.assertEquals(1, usTn.getProcessingNotice()); @@ -145,7 +163,7 @@ public void testDecode1() throws DecodingException { @Test public void testDecodeWithGpcSegmentExcluded() throws DecodingException { - UsTn usTn = new UsTn("BVWSSVWA"); + UsTn usTn = new UsTn("BVWSSVW"); Assertions.assertEquals(1, usTn.getProcessingNotice()); Assertions.assertEquals(1, usTn.getSaleOptOutNotice()); diff --git a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsTxTest.java b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsTxTest.java index 4609feed..4dee70ed 100644 --- a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsTxTest.java +++ b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsTxTest.java @@ -13,7 +13,7 @@ public class UsTxTest { @Test public void testEncode1() { UsTx usTx = new UsTx(); - Assertions.assertEquals("BAAAAAQA.QA", usTx.encode()); + Assertions.assertEquals("BAAAAAQ.Q", usTx.encode()); } @Test @@ -33,7 +33,7 @@ public void testEncode2() { usTx.setFieldValue(UsTxField.MSPA_SERVICE_PROVIDER_MODE, 2); usTx.setFieldValue(UsTxField.GPC, true); - Assertions.assertEquals("BVWSSVWA.YA", usTx.encode()); + Assertions.assertEquals("BVWSSVW.Y", usTx.encode()); } @Test @@ -122,11 +122,29 @@ public void testSetInvalidValues() { public void testEncodeWithGpcSegmentExcluded() { UsTx usTx = new UsTx(); usTx.setFieldValue(UsTxField.GPC_SEGMENT_INCLUDED, false); - Assertions.assertEquals("BAAAAAQA", usTx.encode()); + Assertions.assertEquals("BAAAAAQ", usTx.encode()); } @Test public void testDecode1() throws DecodingException { + UsTx usTx = new UsTx("BVWSSVW.Y"); + + Assertions.assertEquals(1, usTx.getProcessingNotice()); + Assertions.assertEquals(1, usTx.getSaleOptOutNotice()); + Assertions.assertEquals(1, usTx.getTargetedAdvertisingOptOutNotice()); + Assertions.assertEquals(1, usTx.getSaleOptOut()); + Assertions.assertEquals(1, usTx.getTargetedAdvertisingOptOut()); + Assertions.assertEquals(Arrays.asList(2, 1, 0, 2, 1, 0, 2, 1), usTx.getSensitiveDataProcessing()); + Assertions.assertEquals(1, usTx.getKnownChildSensitiveDataConsents()); + Assertions.assertEquals(1, usTx.getAdditionalDataProcessingConsent()); + Assertions.assertEquals(1, usTx.getMspaCoveredTransaction()); + Assertions.assertEquals(1, usTx.getMspaOptOutOptionMode()); + Assertions.assertEquals(2, usTx.getMspaServiceProviderMode()); + Assertions.assertEquals(true, usTx.getGpc()); + } + + @Test + public void testDecode2() throws DecodingException { UsTx usTx = new UsTx("BVWSSVWA.YA"); Assertions.assertEquals(1, usTx.getProcessingNotice()); @@ -145,7 +163,7 @@ public void testDecode1() throws DecodingException { @Test public void testDecodeWithGpcSegmentExcluded() throws DecodingException { - UsTx usTx = new UsTx("BVWSSVWA"); + UsTx usTx = new UsTx("BVWSSVW"); Assertions.assertEquals(1, usTx.getProcessingNotice()); Assertions.assertEquals(1, usTx.getSaleOptOutNotice()); diff --git a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsUtTest.java b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsUtTest.java index f95b88f0..9f0ef497 100644 --- a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsUtTest.java +++ b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/UsUtTest.java @@ -13,7 +13,7 @@ public class UsUtTest { @Test public void testEncode1() { UsUt usUt = new UsUt(); - Assertions.assertEquals("BAAAAAQA", usUt.encode()); + Assertions.assertEquals("BAAAAAQ", usUt.encode()); } @Test @@ -32,7 +32,7 @@ public void testEncode2() { usUt.setFieldValue(UsUtField.MSPA_OPT_OUT_OPTION_MODE, 1); usUt.setFieldValue(UsUtField.MSPA_SERVICE_PROVIDER_MODE, 2); - Assertions.assertEquals("BVVkklWA", usUt.encode()); + Assertions.assertEquals("BVVkklW", usUt.encode()); } @Test @@ -120,6 +120,22 @@ public void testSetInvalidValues() { @Test public void testDecode1() throws DecodingException { + UsUt usUt = new UsUt("BVVkklW"); + + Assertions.assertEquals(1, usUt.getSharingNotice()); + Assertions.assertEquals(1, usUt.getSaleOptOutNotice()); + Assertions.assertEquals(1, usUt.getTargetedAdvertisingOptOutNotice()); + Assertions.assertEquals(1, usUt.getSaleOptOut()); + Assertions.assertEquals(1, usUt.getTargetedAdvertisingOptOut()); + Assertions.assertEquals(Arrays.asList(2, 1, 0, 2, 1, 0, 2, 1), usUt.getSensitiveDataProcessing()); + Assertions.assertEquals(1, usUt.getKnownChildSensitiveDataConsents()); + Assertions.assertEquals(1, usUt.getMspaCoveredTransaction()); + Assertions.assertEquals(1, usUt.getMspaOptOutOptionMode()); + Assertions.assertEquals(2, usUt.getMspaServiceProviderMode()); + } + + @Test + public void testDecode2() throws DecodingException { UsUt usUt = new UsUt("BVVkklWA"); Assertions.assertEquals(1, usUt.getSharingNotice());