Skip to content

Commit 5ebc21f

Browse files
authored
Tests: Fix flaky GPP tests and refactor code (#4309)
1 parent c77a1a0 commit 5ebc21f

21 files changed

+2007
-1346
lines changed

src/test/groovy/org/prebid/server/functional/model/config/ActivityConfig.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ package org.prebid.server.functional.model.config
33
import groovy.transform.ToString
44
import org.prebid.server.functional.model.request.auction.ActivityType
55

6-
import static org.prebid.server.functional.model.config.DataActivity.INVALID
76
import static org.prebid.server.functional.model.config.LogicalRestrictedRule.LogicalOperation.OR
87
import static org.prebid.server.functional.model.config.UsNationalPrivacySection.GPC
8+
import static org.prebid.server.functional.model.privacy.gpp.GppDataActivity.INVALID
99

1010
@ToString(includeNames = true, ignoreNulls = true)
1111
class ActivityConfig {
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package org.prebid.server.functional.model.config
2+
3+
enum ConfigCase {
4+
5+
CAMEL_CASE, KEBAB_CASE, SNAKE_CASE
6+
}

src/test/groovy/org/prebid/server/functional/model/config/DataActivity.groovy

Lines changed: 0 additions & 25 deletions
This file was deleted.

src/test/groovy/org/prebid/server/functional/model/config/EqualityValueRule.groovy

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@ import com.fasterxml.jackson.databind.JsonDeserializer
77
import com.fasterxml.jackson.databind.JsonNode
88
import com.fasterxml.jackson.databind.annotation.JsonDeserialize
99
import groovy.transform.ToString
10+
import org.prebid.server.functional.model.privacy.gpp.GppDataActivity
1011

1112
@ToString(includeNames = true, ignoreNulls = true)
1213
@JsonDeserialize(using = EqualityValueRuleDeserialize.class)
1314
class EqualityValueRule extends ValueRestrictedRule {
1415

15-
EqualityValueRule(UsNationalPrivacySection privacySection, DataActivity value) {
16+
EqualityValueRule(UsNationalPrivacySection privacySection, GppDataActivity value) {
1617
super(privacySection, value)
1718
}
1819

@@ -22,7 +23,7 @@ class EqualityValueRule extends ValueRestrictedRule {
2223
EqualityValueRule deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JacksonException {
2324
JsonNode node = jsonParser.getCodec().readTree(jsonParser)
2425
def privacySection = UsNationalPrivacySection.valueFromText(node?.get(0)?.get(JSON_LOGIC_VALUE_FIELD)?.textValue())
25-
def value = DataActivity.fromInt(node?.get(1)?.asInt())
26+
def value = GppDataActivity.fromInt(node?.get(1)?.asInt())
2627
return new EqualityValueRule(privacySection, value)
2728
}
2829
}

src/test/groovy/org/prebid/server/functional/model/config/GppModuleConfig.groovy

Lines changed: 21 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ import com.fasterxml.jackson.annotation.JsonProperty
44
import groovy.transform.ToString
55
import org.prebid.server.functional.model.request.GppSectionId
66

7+
import static org.prebid.server.functional.model.config.ConfigCase.CAMEL_CASE
8+
import static org.prebid.server.functional.model.config.ConfigCase.KEBAB_CASE
9+
import static org.prebid.server.functional.model.config.ConfigCase.SNAKE_CASE
10+
711
@ToString(includeNames = true, ignoreNulls = true)
812
class GppModuleConfig {
913

@@ -31,31 +35,23 @@ class GppModuleConfig {
3135

3236
static GppModuleConfig getDefaultModuleConfig(ActivityConfig activityConfig = ActivityConfig.configWithDefaultRestrictRules,
3337
List<GppSectionId> sids = [GppSectionId.US_NAT_V1],
34-
Boolean normalizeFlags = true) {
35-
new GppModuleConfig().tap {
36-
it.activityConfig = [activityConfig]
37-
it.sids = sids
38-
it.normalizeFlags = normalizeFlags
39-
}
40-
}
41-
42-
static GppModuleConfig getDefaultModuleConfigSnakeCase(ActivityConfig activityConfig = ActivityConfig.configWithDefaultRestrictRules,
43-
List<GppSectionId> sids = [GppSectionId.US_NAT_V1],
44-
Boolean normalizeFlags = true) {
45-
new GppModuleConfig().tap {
46-
it.activityConfigSnakeCase = [activityConfig]
47-
it.sids = sids
48-
it.normalizeFlagsSnakeCase = normalizeFlags
49-
}
50-
}
51-
52-
static GppModuleConfig getDefaultModuleConfigKebabCase(ActivityConfig activityConfig = ActivityConfig.configWithDefaultRestrictRules,
53-
List<GppSectionId> sids = [GppSectionId.US_NAT_V1],
54-
Boolean normalizeFlags = true) {
55-
new GppModuleConfig().tap {
56-
it.activityConfigKebabCase = [activityConfig]
57-
it.sids = sids
58-
it.normalizeFlagsKebabCase = normalizeFlags
38+
Boolean normalizeFlags = true,
39+
ConfigCase configCase = CAMEL_CASE) {
40+
new GppModuleConfig(sids: sids).tap {
41+
switch (configCase) {
42+
case CAMEL_CASE -> {
43+
it.activityConfig = [activityConfig]
44+
it.normalizeFlags = normalizeFlags
45+
}
46+
case KEBAB_CASE -> {
47+
it.activityConfigKebabCase = [activityConfig]
48+
it.normalizeFlagsKebabCase = normalizeFlags
49+
}
50+
case SNAKE_CASE -> {
51+
it.activityConfigSnakeCase = [activityConfig]
52+
it.normalizeFlagsSnakeCase = normalizeFlags
53+
}
54+
}
5955
}
6056
}
6157
}

src/test/groovy/org/prebid/server/functional/model/config/InequalityValueRule.groovy

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@ import com.fasterxml.jackson.databind.JsonDeserializer
77
import com.fasterxml.jackson.databind.JsonNode
88
import com.fasterxml.jackson.databind.annotation.JsonDeserialize
99
import groovy.transform.ToString
10+
import org.prebid.server.functional.model.privacy.gpp.GppDataActivity
1011

1112
@ToString(includeNames = true, ignoreNulls = true)
1213
@JsonDeserialize(using = InequalityValueRuleDeserialize.class)
1314
class InequalityValueRule extends ValueRestrictedRule {
1415

15-
InequalityValueRule(UsNationalPrivacySection privacySection, DataActivity value) {
16+
InequalityValueRule(UsNationalPrivacySection privacySection, GppDataActivity value) {
1617
super(privacySection, value)
1718
}
1819

@@ -22,7 +23,7 @@ class InequalityValueRule extends ValueRestrictedRule {
2223
InequalityValueRule deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JacksonException {
2324
JsonNode node = jsonParser.getCodec().readTree(jsonParser)
2425
def privacySection = UsNationalPrivacySection.valueFromText(node?.get(0)?.get(JSON_LOGIC_VALUE_FIELD)?.textValue())
25-
def value = DataActivity.fromInt(node?.get(1)?.asInt())
26+
def value = GppDataActivity.fromInt(node?.get(1)?.asInt())
2627
return new InequalityValueRule(privacySection, value)
2728
}
2829
}

src/test/groovy/org/prebid/server/functional/model/config/ValueRestrictedRule.groovy

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,21 @@ import com.fasterxml.jackson.databind.JsonSerializer
66
import com.fasterxml.jackson.databind.SerializerProvider
77
import com.fasterxml.jackson.databind.annotation.JsonSerialize
88
import groovy.transform.ToString
9+
import org.prebid.server.functional.model.privacy.gpp.GppDataActivity
910

1011
@ToString(includeNames = true, ignoreNulls = true)
1112
@JsonSerialize(using = ValueRestrictedRuleSerializer.class)
1213
@JsonIgnoreProperties(ignoreUnknown = true)
1314
abstract class ValueRestrictedRule {
1415

1516
protected UsNationalPrivacySection privacySection
16-
protected DataActivity value
17+
protected GppDataActivity value
1718

1819
protected static final String JSON_LOGIC_VALUE_FIELD = "var"
1920

20-
ValueRestrictedRule(UsNationalPrivacySection privacySection, DataActivity dataActivity) {
21+
ValueRestrictedRule(UsNationalPrivacySection privacySection, GppDataActivity value) {
2122
this.privacySection = privacySection
22-
this.value = dataActivity
23+
this.value = value
2324
}
2425

2526
static class ValueRestrictedRuleSerializer extends JsonSerializer<ValueRestrictedRule> {
@@ -30,7 +31,7 @@ abstract class ValueRestrictedRule {
3031
jsonGenerator.writeStartObject()
3132
jsonGenerator.writeStringField(JSON_LOGIC_VALUE_FIELD, valueRestrictedRule.privacySection.value)
3233
jsonGenerator.writeEndObject()
33-
jsonGenerator.writeObject(valueRestrictedRule.value.dataActivityBits)
34+
jsonGenerator.writeObject(valueRestrictedRule.value.value)
3435
jsonGenerator.writeEndArray()
3536
}
3637
}

src/test/groovy/org/prebid/server/functional/model/privacy/gpp/GppDataActivity.groovy

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonValue
44

55
enum GppDataActivity {
66

7+
INVALID(-1),
78
NOT_APPLICABLE(0),
89
NO_CONSENT(1),
910
CONSENT(2)
@@ -14,4 +15,9 @@ enum GppDataActivity {
1415
GppDataActivity(int value) {
1516
this.value = value
1617
}
18+
19+
static GppDataActivity fromInt(int dataActivityBits) {
20+
values().find { it.value == dataActivityBits }
21+
?: { throw new IllegalArgumentException("Invalid dataActivityBits: ${dataActivityBits}") } as GppDataActivity
22+
}
1723
}
Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,20 @@
11
package org.prebid.server.functional.model.privacy.gpp
22

3-
import org.prebid.server.functional.util.PBSUtils
4-
53
class UsCaliforniaV1ChildSensitiveData {
64

7-
GppDataActivity childUnder13
8-
GppDataActivity childFrom13to16
5+
GppDataActivity toSellUnder16
6+
GppDataActivity toShareUnder16
97

108
static UsCaliforniaV1ChildSensitiveData getDefault(GppDataActivity childUnder13 = GppDataActivity.NOT_APPLICABLE,
119
GppDataActivity childFrom13to16 = GppDataActivity.NOT_APPLICABLE) {
1210

1311
new UsCaliforniaV1ChildSensitiveData().tap {
14-
it.childUnder13 = childUnder13
15-
it.childFrom13to16 = childFrom13to16
16-
}
17-
}
18-
19-
static UsCaliforniaV1ChildSensitiveData getRandom(List<GppDataActivity> excludedActivities) {
20-
new UsCaliforniaV1ChildSensitiveData().tap {
21-
it.childUnder13 = PBSUtils.getRandomEnum(GppDataActivity, excludedActivities)
22-
it.childFrom13to16 = PBSUtils.getRandomEnum(GppDataActivity, excludedActivities)
12+
it.toSellUnder16 = childUnder13
13+
it.toShareUnder16 = childFrom13to16
2314
}
2415
}
2516

2617
List<Integer> getContentList() {
27-
[childFrom13to16, childUnder13]*.value.collect { it ?: 0 }
18+
[toShareUnder16, toSellUnder16]*.value.collect { it ?: 0 }
2819
}
2920
}

src/test/groovy/org/prebid/server/functional/model/privacy/gpp/UsColoradoV1ChildSensitiveData.groovy

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package org.prebid.server.functional.model.privacy.gpp
22

3-
import org.prebid.server.functional.util.PBSUtils
4-
53
class UsColoradoV1ChildSensitiveData {
64

75
GppDataActivity childSensitive
@@ -12,12 +10,6 @@ class UsColoradoV1ChildSensitiveData {
1210
}
1311
}
1412

15-
static UsColoradoV1ChildSensitiveData getRandom(List<GppDataActivity> excludedActivities) {
16-
new UsColoradoV1ChildSensitiveData().tap {
17-
it.childSensitive = PBSUtils.getRandomEnum(GppDataActivity, excludedActivities)
18-
}
19-
}
20-
2113
Integer getContentList() {
2214
this.childSensitive.value
2315
}

0 commit comments

Comments
 (0)