Skip to content

Commit bd4b1bd

Browse files
committed
Add units
1 parent 3544c02 commit bd4b1bd

1 file changed

Lines changed: 169 additions & 0 deletions

File tree

Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
1+
package org.prebid.server.privacy.gdpr;
2+
3+
import com.iabtcf.decoder.TCString;
4+
import com.iabtcf.encoder.TCStringEncoder;
5+
import org.junit.jupiter.api.BeforeEach;
6+
import org.junit.jupiter.api.Test;
7+
import org.prebid.server.settings.model.GdprConfig;
8+
9+
import java.time.Instant;
10+
import java.time.Month;
11+
import java.time.Year;
12+
import java.time.ZoneOffset;
13+
14+
import static org.assertj.core.api.Assertions.assertThat;
15+
16+
public class DisclosedVendorsStrictnessTest {
17+
18+
private static final Instant CUTOFF_DATE = Year.of(2026)
19+
.atMonth(Month.MARCH)
20+
.atDay(1)
21+
.atStartOfDay()
22+
.toInstant(ZoneOffset.UTC);
23+
24+
private DisclosedVendorsStrictness target;
25+
26+
@BeforeEach
27+
public void setUp() {
28+
target = target(true);
29+
}
30+
31+
@Test
32+
public void isValidShouldReturnTrueOnInvalidIfStrictnessDisabled() {
33+
// given
34+
target = target(false);
35+
final TCString tcString = TCStringEncoder.newBuilder()
36+
.version(2)
37+
.toTCString();
38+
39+
// when and then
40+
assertThat(target.isValid(tcString)).isTrue();
41+
}
42+
43+
@Test
44+
public void isValidShouldReturnFalseIfStrictnessEnabledByDefault() {
45+
// given
46+
target = new DisclosedVendorsStrictness(null);
47+
final TCString tcString = TCStringEncoder.newBuilder()
48+
.version(2)
49+
.toTCString();
50+
51+
// when and then
52+
assertThat(target.isValid(tcString)).isFalse();
53+
}
54+
55+
@Test
56+
public void isValidShouldReturnTrueOnInvalidIfLatestUpdateBeforeCutoffDate() {
57+
// given
58+
final TCString tcString = TCStringEncoder.newBuilder()
59+
.version(2)
60+
.created(CUTOFF_DATE.minusNanos(1L))
61+
.lastUpdated(CUTOFF_DATE.minusNanos(1L))
62+
.toTCString();
63+
64+
// when and then
65+
assertThat(target.isValid(tcString)).isTrue();
66+
}
67+
68+
@Test
69+
public void isValidShouldReturnFalseIfLatestUpdateAfterCutoffDate() {
70+
// given
71+
final TCString tcString = TCStringEncoder.newBuilder()
72+
.version(2)
73+
.created(CUTOFF_DATE.minusNanos(1L))
74+
.lastUpdated(CUTOFF_DATE)
75+
.toTCString();
76+
77+
// when and then
78+
assertThat(target.isValid(tcString)).isFalse();
79+
}
80+
81+
@Test
82+
public void isValidShouldReturnTrueIfDisclosedVendorsPresent() {
83+
// given
84+
final TCString tcString = TCStringEncoder.newBuilder()
85+
.version(2)
86+
.addDisclosedVendors(1)
87+
.toTCString();
88+
89+
// when and then
90+
assertThat(target.isValid(tcString)).isTrue();
91+
}
92+
93+
@Test
94+
public void isVendorDisclosedShouldReturnTrueOnNotDisclosedIfStrictnessDisabled() {
95+
// given
96+
target = target(false);
97+
final TCString tcString = TCStringEncoder.newBuilder()
98+
.version(2)
99+
.toTCString();
100+
101+
// when and then
102+
assertThat(target.isVendorDisclosed(tcString, 1)).isTrue();
103+
}
104+
105+
@Test
106+
public void isVendorDisclosedShouldReturnFalseIfStrictnessEnabledByDefault() {
107+
// given
108+
target = new DisclosedVendorsStrictness(null);
109+
final TCString tcString = TCStringEncoder.newBuilder()
110+
.version(2)
111+
.toTCString();
112+
113+
// when and then
114+
assertThat(target.isVendorDisclosed(tcString, 1)).isFalse();
115+
}
116+
117+
@Test
118+
public void isVendorDisclosedShouldReturnFalseOnNull() {
119+
// given
120+
final TCString tcString = TCStringEncoder.newBuilder()
121+
.version(2)
122+
.toTCString();
123+
124+
// when and then
125+
assertThat(target.isVendorDisclosed(tcString, null)).isFalse();
126+
}
127+
128+
@Test
129+
public void isVendorDisclosedShouldReturnTrueOnNotDisclosedIfLatestUpdateBeforeCutoffDate() {
130+
// given
131+
final TCString tcString = TCStringEncoder.newBuilder()
132+
.version(2)
133+
.created(CUTOFF_DATE.minusNanos(1L))
134+
.lastUpdated(CUTOFF_DATE.minusNanos(1L))
135+
.toTCString();
136+
137+
// when and then
138+
assertThat(target.isVendorDisclosed(tcString, 1)).isTrue();
139+
}
140+
141+
@Test
142+
public void isVendorDisclosedShouldReturnFalseIfLatestUpdateAfterCutoffDate() {
143+
// given
144+
final TCString tcString = TCStringEncoder.newBuilder()
145+
.version(2)
146+
.created(CUTOFF_DATE.minusNanos(1L))
147+
.lastUpdated(CUTOFF_DATE)
148+
.toTCString();
149+
150+
// when and then
151+
assertThat(target.isVendorDisclosed(tcString, 1)).isFalse();
152+
}
153+
154+
@Test
155+
public void isVendorDisclosedShouldReturnTrueIfDisclosed() {
156+
// given
157+
final TCString tcString = TCStringEncoder.newBuilder()
158+
.version(2)
159+
.addDisclosedVendors(1)
160+
.toTCString();
161+
162+
// when and then
163+
assertThat(target.isVendorDisclosed(tcString, 1)).isTrue();
164+
}
165+
166+
private static DisclosedVendorsStrictness target(boolean enabled) {
167+
return new DisclosedVendorsStrictness(GdprConfig.builder().strictDisclosedVendorsTreatment(enabled).build());
168+
}
169+
}

0 commit comments

Comments
 (0)