From f63a5ce3c703baf432e3396003f9eecf73531baf Mon Sep 17 00:00:00 2001 From: Chad Huff Date: Mon, 2 Feb 2026 09:14:35 -0700 Subject: [PATCH] usnatv2 --- .../com/iab/gpp/encoder/section/UsNat.java | 2 +- .../gpp/encoder/segment/UsNatCoreSegment.java | 20 ++ .../com/iab/gpp/encoder/GppModelTest.java | 237 ++++++++++++------ .../FibonacciIntegerRangeEncoderTest.java | 2 +- .../encoder/FixedIntegerRangeEncoderTest.java | 2 +- .../gpp/encoder/section/.UsNatV1Test.java.swp | Bin 16384 -> 0 bytes .../iab/gpp/encoder/section/UsNatTest.java | 83 +++++- 7 files changed, 254 insertions(+), 92 deletions(-) delete mode 100644 iabgpp-encoder/src/test/java/com/iab/gpp/encoder/section/.UsNatV1Test.java.swp diff --git a/iabgpp-encoder/src/main/java/com/iab/gpp/encoder/section/UsNat.java b/iabgpp-encoder/src/main/java/com/iab/gpp/encoder/section/UsNat.java index a32950d8..4924a251 100644 --- a/iabgpp-encoder/src/main/java/com/iab/gpp/encoder/section/UsNat.java +++ b/iabgpp-encoder/src/main/java/com/iab/gpp/encoder/section/UsNat.java @@ -10,7 +10,7 @@ public class UsNat extends AbstractLazilyEncodableSection { public static int ID = 7; - public static int VERSION = 1; + public static int VERSION = 2; public static String NAME = "usnat"; public UsNat() { diff --git a/iabgpp-encoder/src/main/java/com/iab/gpp/encoder/segment/UsNatCoreSegment.java b/iabgpp-encoder/src/main/java/com/iab/gpp/encoder/segment/UsNatCoreSegment.java index 6c7a7945..14c33053 100644 --- a/iabgpp-encoder/src/main/java/com/iab/gpp/encoder/segment/UsNatCoreSegment.java +++ b/iabgpp-encoder/src/main/java/com/iab/gpp/encoder/segment/UsNatCoreSegment.java @@ -9,6 +9,7 @@ import com.iab.gpp.encoder.datatype.EncodableFixedInteger; import com.iab.gpp.encoder.datatype.EncodableFixedIntegerList; import com.iab.gpp.encoder.error.DecodingException; +import com.iab.gpp.encoder.error.InvalidFieldException; import com.iab.gpp.encoder.field.EncodableBitStringFields; import com.iab.gpp.encoder.field.UsNatField; import com.iab.gpp.encoder.section.UsNat; @@ -84,6 +85,12 @@ protected EncodableBitStringFields initializeFields() { @Override protected String encodeSegment(EncodableBitStringFields fields) { String bitString = bitStringEncoder.encode(fields, getFieldNames()); + + Integer version = (Integer)fields.get(UsNatField.VERSION).getValue(); + if(version == 1) { + bitString = bitString.substring(0, 48) + bitString.substring(56, 60) + bitString.substring(62); + } + String encodedString = base64UrlEncoder.encode(bitString); return encodedString; } @@ -110,4 +117,17 @@ protected void decodeSegment(String encodedString, EncodableBitStringFields fiel } } + @Override + public Object getFieldValue(String fieldName) { + Object value = super.getFieldValue(fieldName); + Integer version = (Integer)super.getFieldValue(UsNatField.VERSION); + if(version == 1) { + if (fieldName.equals(UsNatField.SENSITIVE_DATA_PROCESSING)) { + value = ((List) value).subList(0, 12); + } else if (fieldName.equals(UsNatField.KNOWN_CHILD_SENSITIVE_DATA_CONSENTS)) { + value = ((List) value).subList(0, 2); + } + } + return value; + } } 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 d1890a59..5ce2717c 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,22 +4,11 @@ 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; @@ -110,12 +99,12 @@ 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, 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); + 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); Assertions.assertEquals(true, gppModel.hasSection(TcfEuV2.NAME)); @@ -140,7 +129,53 @@ public void testEncodeDefaultAll() { String gppString = gppModel.encode(); Assertions.assertEquals( - "DBACOdM~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", + "DBACOdM~CPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAAAAAAAAA.QAAA.IAAA~BPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAAAAAAA.YAAAAAAAAAA~1---~CAAAAAAAAABA.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", + gppString); + } + + @Test + public void testEncodeUsNatV1WithV1Values() { + GppModel gppModel = new GppModel(); + gppModel.setFieldValue(UsNat.NAME, UsNatField.VERSION, 1); + gppModel.setFieldValue(UsNat.NAME, UsNatField.SENSITIVE_DATA_PROCESSING, Arrays.asList(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)); + gppModel.setFieldValue(UsNat.NAME, UsNatField.KNOWN_CHILD_SENSITIVE_DATA_CONSENTS, Arrays.asList(1, 1)); + String gppString = gppModel.encode(); + Assertions.assertEquals( + "DBABLA~BAAAVVVVUQA.QA", + gppString); + } + + @Test + public void testEncodeUsNatV1WithV2Values() { + GppModel gppModel = new GppModel(); + gppModel.setFieldValue(UsNat.NAME, UsNatField.VERSION, 1); + gppModel.setFieldValue(UsNat.NAME, UsNatField.SENSITIVE_DATA_PROCESSING, Arrays.asList(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)); + gppModel.setFieldValue(UsNat.NAME, UsNatField.KNOWN_CHILD_SENSITIVE_DATA_CONSENTS, Arrays.asList(1, 1, 1)); + String gppString = gppModel.encode(); + Assertions.assertEquals( + "DBABLA~BAAAVVVVUQA.QA", + gppString); + } + + @Test + public void testEncodeUsNatV2WithV1Values() { + GppModel gppModel = new GppModel(); + gppModel.setFieldValue(UsNat.NAME, UsNatField.SENSITIVE_DATA_PROCESSING, Arrays.asList(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)); + gppModel.setFieldValue(UsNat.NAME, UsNatField.KNOWN_CHILD_SENSITIVE_DATA_CONSENTS, Arrays.asList(1, 1)); + String gppString = gppModel.encode(); + Assertions.assertEquals( + "DBABLA~CAAAVVVVAFBA.QA", + gppString); + } + + @Test + public void testEncodeUsNatV2WithV2Values() { + GppModel gppModel = new GppModel(); + gppModel.setFieldValue(UsNat.NAME, UsNatField.SENSITIVE_DATA_PROCESSING, Arrays.asList(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)); + gppModel.setFieldValue(UsNat.NAME, UsNatField.KNOWN_CHILD_SENSITIVE_DATA_CONSENTS, Arrays.asList(1, 1, 1)); + String gppString = gppModel.encode(); + Assertions.assertEquals( + "DBABLA~CAAAVVVVVVRA.QA", gppString); } @@ -150,7 +185,7 @@ public void testDecodingException() { new GppModel("invalid gpp string").getHeader(); }); } - + @Test() public void testDecodeGarbage() { Assertions.assertThrows(DecodingException.class, () -> { @@ -345,26 +380,26 @@ public void testEncodeUspV1AndTcfEuV2AndTcfCaV1() { gppModel.setFieldValue(TcfCaV1.NAME, TcfCaV1Field.VENDOR_LIST_VERSION, 413); gppModel.setFieldValue(TcfCaV1.NAME, TcfCaV1Field.USE_NON_STANDARD_STACKS, true); gppModel.setFieldValue(TcfCaV1.NAME, TcfCaV1Field.SPECIAL_FEATURE_EXPRESS_CONSENT, - Arrays.asList(false, false, false, false, false, false, true, true, true, true, true, true)); + Arrays.asList(false, false, false, false, false, false, true, true, true, true, true, true)); gppModel.setFieldValue(TcfCaV1.NAME, TcfCaV1Field.PURPOSES_EXPRESS_CONSENT, - Arrays.asList(true, true, true, true, true, true, false, false, false, false, false, false, true, true, true, - true, true, true, false, false, false, false, false, false)); + Arrays.asList(true, true, true, true, true, true, false, false, false, false, false, false, true, true, true, + true, true, true, false, false, false, false, false, false)); gppModel.setFieldValue(TcfCaV1.NAME, TcfCaV1Field.PURPOSES_IMPLIED_CONSENT, - Arrays.asList(false, false, false, false, false, false, true, true, true, true, true, true, false, false, false, - false, false, false, true, true, true, true, true, true)); + Arrays.asList(false, false, false, false, false, false, true, true, true, true, true, true, false, false, false, + false, false, false, true, true, true, true, true, true)); gppModel.setFieldValue(TcfCaV1.NAME, TcfCaV1Field.VENDOR_EXPRESS_CONSENT, Arrays.asList(12, 24, 48)); gppModel.setFieldValue(TcfCaV1.NAME, TcfCaV1Field.VENDOR_IMPLIED_CONSENT, Arrays.asList(18, 30)); gppModel.setFieldValue(TcfCaV1.NAME, TcfCaV1Field.PUB_PURPOSES_EXPRESS_CONSENT, - Arrays.asList(true, true, true, false, false, false, true, true, true, false, false, false, true, true, true, - false, false, false, true, true, true, false, false, false)); + Arrays.asList(true, true, true, false, false, false, true, true, true, false, false, false, true, true, true, + false, false, false, true, true, true, false, false, false)); gppModel.setFieldValue(TcfCaV1.NAME, TcfCaV1Field.PUB_PURPOSES_IMPLIED_CONSENT, - Arrays.asList(false, false, false, true, true, true, false, false, false, true, true, true, false, false, false, - true, true, true, false, false, false, true, true, true)); + Arrays.asList(false, false, false, true, true, true, false, false, false, true, true, true, false, false, false, + true, true, true, false, false, false, true, true, true)); gppModel.setFieldValue(TcfCaV1.NAME, TcfCaV1Field.NUM_CUSTOM_PURPOSES, 3); gppModel.setFieldValue(TcfCaV1.NAME, TcfCaV1Field.CUSTOM_PURPOSES_EXPRESS_CONSENT, - Arrays.asList(false, true, false)); + Arrays.asList(false, true, false)); gppModel.setFieldValue(TcfCaV1.NAME, TcfCaV1Field.CUSTOM_PURPOSES_IMPLIED_CONSENT, - Arrays.asList(true, false, true)); + Arrays.asList(true, false, true)); gppModel.setFieldValue(TcfCaV1.NAME, TcfCaV1Field.CREATED, utcDateTime); gppModel.setFieldValue(TcfCaV1.NAME, TcfCaV1Field.LAST_UPDATED, utcDateTime); @@ -380,8 +415,8 @@ public void testEncodeUspV1AndTcfEuV2AndTcfCaV1() { String gppString = gppModel.encode(); Assertions.assertEquals( - "DBACOeA~CPSG_8APSG_8ANwAAAENAwCAAAAAAAAAAAAAAAAAAAAA.QAAA.IAAA~BPSG_8APSG_8AAyACAENGdCgf_gfgAfgfgBgABABAAABAB4AACACAAA.fHHHA4444ao~1YNN", - gppString); + "DBACOeA~CPSG_8APSG_8ANwAAAENAwCAAAAAAAAAAAAAAAAAAAAA.QAAA.IAAA~BPSG_8APSG_8AAyACAENGdCgf_gfgAfgfgBgABABAAABAB4AACACAAA.fHHHA4444ao~1YNN", + gppString); Assertions.assertEquals(4, gppString.split("~").length); @@ -413,7 +448,7 @@ public void testDecodeDefaults() { @Test public void testDecodeDefaultsAll() { String gppString = - "DBACOdM~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"; + "DBACOdM~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"; GppModel gppModel = new GppModel(gppString); Assertions.assertEquals(true, gppModel.hasSection(TcfEuV2.NAME)); @@ -437,6 +472,42 @@ public void testDecodeDefaultsAll() { Assertions.assertEquals(true, gppModel.hasSection(UsTn.NAME)); } + @Test + public void testDecodeUsNatV1() { + String gppString = + "DBABLA~BAAAVVVVUQA.QA"; + GppModel gppModel = new GppModel(gppString); + + Assertions.assertEquals(true, gppModel.hasSection(UsNat.NAME)); + Assertions.assertEquals(1, gppModel.getFieldValue(UsNat.ID, UsNatField.VERSION)); + Assertions.assertEquals(Arrays.asList(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), gppModel.getFieldValue(UsNat.ID, UsNatField.SENSITIVE_DATA_PROCESSING)); + Assertions.assertEquals(Arrays.asList(1, 1), gppModel.getFieldValue(UsNat.ID, UsNatField.KNOWN_CHILD_SENSITIVE_DATA_CONSENTS)); + } + + @Test + public void testDecodeUsNatV2WithV1Values() { + String gppString = + "DBABLA~CAAAVVVVAFBA.QA"; + GppModel gppModel = new GppModel(gppString); + + Assertions.assertEquals(true, gppModel.hasSection(UsNat.NAME)); + Assertions.assertEquals(2, gppModel.getFieldValue(UsNat.ID, UsNatField.VERSION)); + Assertions.assertEquals(Arrays.asList(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0), gppModel.getFieldValue(UsNat.ID, UsNatField.SENSITIVE_DATA_PROCESSING)); + Assertions.assertEquals(Arrays.asList(1, 1, 0), gppModel.getFieldValue(UsNat.ID, UsNatField.KNOWN_CHILD_SENSITIVE_DATA_CONSENTS)); + } + + @Test + public void testDecodeUsNatV2WithV2Values() { + String gppString = + "DBABLA~CAAAVVVVVVRA.QA"; + GppModel gppModel = new GppModel(gppString); + + Assertions.assertEquals(true, gppModel.hasSection(UsNat.NAME)); + Assertions.assertEquals(2, gppModel.getFieldValue(UsNat.ID, UsNatField.VERSION)); + Assertions.assertEquals(Arrays.asList(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), gppModel.getFieldValue(UsNat.ID, UsNatField.SENSITIVE_DATA_PROCESSING)); + Assertions.assertEquals(Arrays.asList(1, 1, 1), gppModel.getFieldValue(UsNat.ID, UsNatField.KNOWN_CHILD_SENSITIVE_DATA_CONSENTS)); + } + @Test public void testDecodeUspv1() { String gppString = "DBABTA~1YNN"; @@ -570,7 +641,7 @@ public void testDecodeUspv1AndTcfEuV2() { @Test public void testDecodeUspv1AndTcfEuV2AndTcfCaV1() { String gppString = - "DBACOeA~CPSG_8APSG_8ANwAAAENAwCAAAAAAAAAAAAAAAAAAAAA.QAAA.IAAA~BPSG_8APSG_8AAyACAENGdCgf_gfgAfgfgBgABABAAABAB4AACACAAA.fHHHA4444ao~1YNN"; + "DBACOeA~CPSG_8APSG_8ANwAAAENAwCAAAAAAAAAAAAAAAAAAAAA.QAAA.IAAA~BPSG_8APSG_8AAyACAENGdCgf_gfgAfgfgBgABABAAABAB4AACACAAA.fHHHA4444ao~1YNN"; GppModel gppModel = new GppModel(gppString); Assertions.assertEquals(Arrays.asList(2, 5, 6), gppModel.getSectionIds()); @@ -614,29 +685,29 @@ public void testDecodeUspv1AndTcfEuV2AndTcfCaV1() { Assertions.assertEquals(413, tcfCaV1Section.getVendorListVersion()); Assertions.assertEquals(true, tcfCaV1Section.getUseNonStandardStacks()); Assertions.assertEquals(Arrays.asList(false, false, false, false, false, false, true, true, true, true, true, true), - tcfCaV1Section.getSpecialFeatureExpressConsent()); + tcfCaV1Section.getSpecialFeatureExpressConsent()); Assertions - .assertEquals( - Arrays.asList(true, true, true, true, true, true, false, false, false, false, false, false, true, true, - true, true, true, true, false, false, false, false, false, false), - tcfCaV1Section.getPurposesExpressConsent()); + .assertEquals( + Arrays.asList(true, true, true, true, true, true, false, false, false, false, false, false, true, true, + true, true, true, true, false, false, false, false, false, false), + tcfCaV1Section.getPurposesExpressConsent()); Assertions - .assertEquals( - Arrays.asList(false, false, false, false, false, false, true, true, true, true, true, true, false, false, - false, false, false, false, true, true, true, true, true, true), - tcfCaV1Section.getPurposesImpliedConsent()); + .assertEquals( + Arrays.asList(false, false, false, false, false, false, true, true, true, true, true, true, false, false, + false, false, false, false, true, true, true, true, true, true), + tcfCaV1Section.getPurposesImpliedConsent()); Assertions.assertEquals(Arrays.asList(12, 24, 48), tcfCaV1Section.getVendorExpressConsent()); Assertions.assertEquals(Arrays.asList(18, 30), tcfCaV1Section.getVendorImpliedConsent()); Assertions - .assertEquals( - Arrays.asList(true, true, true, false, false, false, true, true, true, false, false, false, true, true, - true, false, false, false, true, true, true, false, false, false), - tcfCaV1Section.getPubPurposesExpressConsent()); + .assertEquals( + Arrays.asList(true, true, true, false, false, false, true, true, true, false, false, false, true, true, + true, false, false, false, true, true, true, false, false, false), + tcfCaV1Section.getPubPurposesExpressConsent()); Assertions - .assertEquals( - Arrays.asList(false, false, false, true, true, true, false, false, false, true, true, true, false, false, - false, true, true, true, false, false, false, true, true, true), - tcfCaV1Section.getPubPurposesImpliedConsent()); + .assertEquals( + Arrays.asList(false, false, false, true, true, true, false, false, false, true, true, true, false, false, + false, true, true, true, false, false, false, true, true, true), + tcfCaV1Section.getPubPurposesImpliedConsent()); Assertions.assertEquals(3, tcfCaV1Section.getNumCustomPurposes()); Assertions.assertEquals(Arrays.asList(false, true, false), tcfCaV1Section.getCustomPurposesExpressConsent()); Assertions.assertEquals(Arrays.asList(true, false, true), tcfCaV1Section.getCustomPurposesImpliedConsent()); @@ -679,7 +750,7 @@ public void testEncode3() { gppModel.setFieldValue(TcfEuV2.NAME, TcfEuV2Field.LAST_UPDATED, utcDateTime); Assertions.assertEquals("DBABMA~CPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAFpQAwAAgCtAWkAAAAAAA.QAAA.IAAA", - gppModel.encode()); + gppModel.encode()); } @Test @@ -698,14 +769,14 @@ public void testDecode2() { public void testDecode3() { GppModel gppModel = new GppModel("DBABMA~CPSG_8APSG_8AAAAAAENAACAAAAAAAAAAAAAFpQAwAAgCtAWkAAAAAAA.QAAA.IAAA"); Assertions.assertEquals(Arrays.asList(1, 173, 722), - gppModel.getFieldValue(TcfEuV2.NAME, TcfEuV2Field.VENDOR_CONSENTS)); + gppModel.getFieldValue(TcfEuV2.NAME, TcfEuV2Field.VENDOR_CONSENTS)); } - + @Test public void testDecode4() { GppModel gppModel = new GppModel("DBABTA~1YYN"); gppModel.getFieldValue(UspV1.NAME, UspV1Field.VERSION); - + } @Test @@ -713,68 +784,68 @@ public void testDecode5() { GppModel gppModel = new GppModel("DBABLA~BVQqAAAAAgA.QA"); gppModel.getFieldValue(UsNat.NAME, UspV1Field.VERSION); } - + @Test public void testDecode6() { - GppModel gppModel = new GppModel("DBABLA~BAAAAAAAAQA.QA"); + GppModel gppModel = new GppModel("DBABLA~CAAAAAAAAQA.QA"); gppModel.getFieldValue(UsNat.NAME, UspV1Field.VERSION); Assertions.assertEquals(Arrays.asList(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), - gppModel.getFieldValue(UsNat.NAME, UsNatField.SENSITIVE_DATA_PROCESSING)); + gppModel.getFieldValue(UsNat.NAME, UsNatField.SENSITIVE_DATA_PROCESSING)); Assertions.assertEquals(Arrays.asList(0, 0, 0), - gppModel.getFieldValue(UsNat.NAME, UsNatField.KNOWN_CHILD_SENSITIVE_DATA_CONSENTS)); + gppModel.getFieldValue(UsNat.NAME, UsNatField.KNOWN_CHILD_SENSITIVE_DATA_CONSENTS)); } - + @Test public void testDecode7() { - GppModel gppModel = new GppModel("DBABLA~BAAAAAAAAABA.QA"); + GppModel gppModel = new GppModel("DBABLA~CAAAAAAAAABA.QA"); gppModel.getFieldValue(UsNat.NAME, UspV1Field.VERSION); Assertions.assertEquals(Arrays.asList(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), - gppModel.getFieldValue(UsNat.NAME, UsNatField.SENSITIVE_DATA_PROCESSING)); + gppModel.getFieldValue(UsNat.NAME, UsNatField.SENSITIVE_DATA_PROCESSING)); Assertions.assertEquals(Arrays.asList(0, 0, 0), - gppModel.getFieldValue(UsNat.NAME, UsNatField.KNOWN_CHILD_SENSITIVE_DATA_CONSENTS)); + gppModel.getFieldValue(UsNat.NAME, UsNatField.KNOWN_CHILD_SENSITIVE_DATA_CONSENTS)); } - + @Test public void testDecode8() { - GppModel gppModel = new GppModel("DBABLA~BAAAAAABEQA.QA"); + GppModel gppModel = new GppModel("DBABLA~CAAAAAABEQA.QA"); gppModel.getFieldValue(UsNat.NAME, UspV1Field.VERSION); Assertions.assertEquals(Arrays.asList(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0), - gppModel.getFieldValue(UsNat.NAME, UsNatField.SENSITIVE_DATA_PROCESSING)); + gppModel.getFieldValue(UsNat.NAME, UsNatField.SENSITIVE_DATA_PROCESSING)); Assertions.assertEquals(Arrays.asList(0, 1, 0), - gppModel.getFieldValue(UsNat.NAME, UsNatField.KNOWN_CHILD_SENSITIVE_DATA_CONSENTS)); + gppModel.getFieldValue(UsNat.NAME, UsNatField.KNOWN_CHILD_SENSITIVE_DATA_CONSENTS)); } - + @Test public void testDecode9() { - GppModel gppModel = new GppModel("DBABLA~BAAAAAAAAQRA.QA"); + GppModel gppModel = new GppModel("DBABLA~CAAAAAAAAQRA.QA"); gppModel.getFieldValue(UsNat.NAME, UspV1Field.VERSION); Assertions.assertEquals(Arrays.asList(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1), - gppModel.getFieldValue(UsNat.NAME, UsNatField.SENSITIVE_DATA_PROCESSING)); + gppModel.getFieldValue(UsNat.NAME, UsNatField.SENSITIVE_DATA_PROCESSING)); Assertions.assertEquals(Arrays.asList(0, 0, 1), - gppModel.getFieldValue(UsNat.NAME, UsNatField.KNOWN_CHILD_SENSITIVE_DATA_CONSENTS)); + gppModel.getFieldValue(UsNat.NAME, UsNatField.KNOWN_CHILD_SENSITIVE_DATA_CONSENTS)); } - + @Test public void testConsistency() { GppModel fromObjectModel = new GppModel(); fromObjectModel.setFieldValue(TcfEuV2.NAME, TcfEuV2Field.PURPOSE_CONSENTS, - Arrays.asList(true, true, true, true, true, true, true, true, true, true)); + Arrays.asList(true, true, true, true, true, true, true, true, true, true)); fromObjectModel.setFieldValue(TcfEuV2.NAME, TcfEuV2Field.VENDOR_CONSENTS, - Arrays.asList(32, 128, 81, 210, 755, 21, 173, 238)); + Arrays.asList(32, 128, 81, 210, 755, 21, 173, 238)); Assertions.assertEquals(fromObjectModel.getSection(TcfEuV2.NAME).encode(), - fromObjectModel.getSection(TcfEuV2.NAME).encode()); + fromObjectModel.getSection(TcfEuV2.NAME).encode()); Assertions.assertEquals(fromObjectModel.encode(), fromObjectModel.encode()); GppModel decodedModel = new GppModel(fromObjectModel.encode()); Assertions.assertEquals( - Arrays.asList(true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, - false, false, false, false, false, false, false, false, false), - decodedModel.getFieldValue(TcfEuV2.NAME, TcfEuV2Field.PURPOSE_CONSENTS)); + Arrays.asList(true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, + false, false, false, false, false, false, false, false, false), + decodedModel.getFieldValue(TcfEuV2.NAME, TcfEuV2Field.PURPOSE_CONSENTS)); Assertions.assertEquals(Arrays.asList(21, 32, 81, 128, 173, 210, 238, 755), - decodedModel.getFieldValue(TcfEuV2.NAME, TcfEuV2Field.VENDOR_CONSENTS)); + decodedModel.getFieldValue(TcfEuV2.NAME, TcfEuV2Field.VENDOR_CONSENTS)); } @@ -830,6 +901,6 @@ public void testDecodingExceptionValidStringButNotGPP() { } } - - + + } diff --git a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/datatype/encoder/FibonacciIntegerRangeEncoderTest.java b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/datatype/encoder/FibonacciIntegerRangeEncoderTest.java index f0cb813f..1cae6e34 100644 --- a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/datatype/encoder/FibonacciIntegerRangeEncoderTest.java +++ b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/datatype/encoder/FibonacciIntegerRangeEncoderTest.java @@ -102,6 +102,6 @@ public void testDecode8() { @Test public void testGiantRange() { String max = FibonacciIntegerEncoder.encode(FibonacciIntegerRangeEncoder.MAX_SIZE + 1); - Assertions.assertEquals(List.of(), FibonacciIntegerRangeEncoder.decode("000000000001111" + max)); + Assertions.assertEquals(new ArrayList<>(), FibonacciIntegerRangeEncoder.decode("000000000001111" + max)); } } diff --git a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/datatype/encoder/FixedIntegerRangeEncoderTest.java b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/datatype/encoder/FixedIntegerRangeEncoderTest.java index 769763ea..b781cd4c 100644 --- a/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/datatype/encoder/FixedIntegerRangeEncoderTest.java +++ b/iabgpp-encoder/src/test/java/com/iab/gpp/encoder/datatype/encoder/FixedIntegerRangeEncoderTest.java @@ -132,6 +132,6 @@ public void testDecode10() { @Test public void testGiantRange() { String max = FibonacciIntegerEncoder.encode(FibonacciIntegerRangeEncoder.MAX_SIZE + 1); - Assertions.assertEquals(List.of(), FixedIntegerRangeEncoder.decode("00000000000110000000000000001" + max)); + Assertions.assertEquals(new ArrayList<>(), FixedIntegerRangeEncoder.decode("00000000000110000000000000001" + max)); } } 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 deleted file mode 100644 index 686ae751e38ab4870c28793ce259a9eb4aa5eaa3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 zcmeI3UyKt)9LI;hry!v4pz+1E@X(re%N<4{M8nc9N5l0G-MylQr0#9!?w0Fy*WK+M z|4Dez7@v$WknrLQ2@fR3m|%19M8uaAy;=NC9qd!@9K z$ZGm-)0{{YY*Vb7x>oHdb<#JOoHp$V$I^6~G_(O@sMP|{<+)*_@!4=>Nkac9+K)-*fZ;m`GY}z=? zHQ@?y1-JrS0j>a7fGfZi;0kaB9wG%?tB;&Qf0wg9o9umA+xr7{)Y*BfE&Xqn9+dy3 zE&V=A56Y>mf}oyzEd6y>?pj;=Uo3ryrEg&k4$9wU=})nAt1X?K=5Jg9t^iknE5H@t z3UCFu0$c&E09Sx3z!i8X70@b#Jc*v)@)pu~{vWL0uWumaNALr<3eEr*>;h}R_4P;x zSHNX(37iFIfDQUV0>r@+YGcqBUK=587hwl$-FaKqAc zZe19iPu^bawW-{bi59VYD&OWbJvDmul(N4Edm!W>7vUZycI=nL{d2fS0S9x^f%oim z-KeVFcQ;zpA8rxLq*vjl1FN1h$6|#Tla^__0``rI*kmqZ-#GKqwm9l7Kt$FGf9h+gX#$TBlKH8Xmf z-o?6WRKLu~A|0Jb-dE*zMgPJ{pd-m2vPBexVHXAu}?~h=H_Z)^rrbZE-qBG$r zGW)#VZ~f^=KkxPEngyR9mY#n*XEUF56L{wqw?`YFcx(6rNo{7li-Vkk2JZ zXLu(T>fFAXIbBPQ8`X+JYmVU>Q}kcjpEYXK3@C+b57mhw(y8O%E4pB>!ULpgHU^tk zqzV*v4bMVjyt=f*E|A{JYE{}>!B*Laj7h^Cc4%;oE-<)Z8RihP(W;&-&M9n9)