Skip to content

Commit fc69fda

Browse files
committed
fix test
1 parent bcd88ff commit fc69fda

File tree

3 files changed

+15
-90
lines changed

3 files changed

+15
-90
lines changed

things/service/src/main/java/org/eclipse/ditto/things/service/persistence/actors/ThingPersistenceActor.java

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,7 @@ public final class ThingPersistenceActor
9393
private final ThingConfig thingConfig;
9494
private final DistributedPub<ThingEvent<?>> distributedPub;
9595
@Nullable private final ActorRef searchShardRegionProxy;
96-
private final ThingEventEnricher eventPreDefinedExtraFieldsEnricher;
97-
private final ThingEventEnricher messagePreDefinedExtraFieldsEnricher;
96+
private final ThingEventEnricher eventEnricher;
9897

9998
@SuppressWarnings("unused")
10099
private ThingPersistenceActor(final ThingId thingId,
@@ -108,11 +107,8 @@ private ThingPersistenceActor(final ThingId thingId,
108107
this.thingConfig = thingConfig;
109108
this.distributedPub = distributedPub;
110109
this.searchShardRegionProxy = searchShardRegionProxy;
111-
this.eventPreDefinedExtraFieldsEnricher = new ThingEventEnricher(
112-
thingConfig.getEventConfig().getPredefinedExtraFieldsConfigs(),
113-
policyEnforcerProvider
114-
);
115-
this.messagePreDefinedExtraFieldsEnricher = new ThingEventEnricher(
110+
111+
this.eventEnricher = new ThingEventEnricher(
116112
thingConfig.getMessageConfig().getPredefinedExtraFieldsConfigs(),
117113
policyEnforcerProvider
118114
);
@@ -279,7 +275,7 @@ protected void recoveryCompleted(final RecoveryCompleted event) {
279275

280276
@Override
281277
protected void publishEvent(@Nullable final Thing previousEntity, final ThingEvent<?> event) {
282-
final CompletionStage<ThingEvent<?>> stage = eventPreDefinedExtraFieldsEnricher.enrichWithPredefinedExtraFields(
278+
final CompletionStage<ThingEvent<?>> stage = eventEnricher.enrichWithPredefinedExtraFields(
283279
entityId,
284280
entity,
285281
Optional.ofNullable(entity).flatMap(Thing::getPolicyId)
@@ -338,14 +334,14 @@ private void enrichSignalWithPreDefinedExtraFields(
338334
final CompletionStage<Signal<?>> stage;
339335
switch (signal) {
340336
case MessageCommand<?, ?> messageCommand ->
341-
stage = messagePreDefinedExtraFieldsEnricher.enrichWithPredefinedExtraFields(
337+
stage = eventEnricher.enrichWithPredefinedExtraFields(
342338
entityId,
343339
entity,
344340
Optional.ofNullable(entity).flatMap(Thing::getPolicyId).orElse(null),
345341
messageCommand
346342
);
347343
case ThingEvent<?> thingEvent ->
348-
stage = eventPreDefinedExtraFieldsEnricher.enrichWithPredefinedExtraFields(
344+
stage = eventEnricher.enrichWithPredefinedExtraFields(
349345
entityId,
350346
entity,
351347
Optional.ofNullable(entity).flatMap(Thing::getPolicyId).orElse(null),

things/service/src/main/java/org/eclipse/ditto/things/service/persistence/actors/enrichment/ThingEventEnricher.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,11 @@ public <T extends DittoHeadersSettable<? extends T>> CompletionStage<T> enrichWi
131131
combinedPointerSet.addAll(b.getPointers());
132132
return JsonFactory.newFieldSelector(combinedPointerSet);
133133
});
134+
135+
if (combinedPredefinedExtraFields.isEmpty()) {
136+
return partialAccessPathsStage;
137+
}
138+
134139
return partialAccessPathsStage.thenCompose(enrichedWithPartialAccessPaths ->
135140
buildPredefinedExtraFieldsHeaderReadGrantObject(policyId, combinedPredefinedExtraFields, thing)
136141
.thenApply(indexedGrants -> {

things/service/src/test/java/org/eclipse/ditto/things/service/persistence/actors/enrichment/ThingEventEnricherTest.java

Lines changed: 4 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -121,18 +121,7 @@ public void ensureDefinitionIsEnrichedAsPreDefinedFromConfiguration() {
121121
final var sut = providePreDefinedFieldsEnricher();
122122

123123
// WHEN: enriched headers are getting calculated
124-
final CompletionStage<DittoHeaders> resultHeadersStage = calculateEnrichedSignalHeaders(sut,
125-
"""
126-
{
127-
namespaces = [
128-
"*"
129-
]
130-
extra-fields = [
131-
"definition"
132-
]
133-
}
134-
"""
135-
);
124+
final CompletionStage<DittoHeaders> resultHeadersStage = calculateEnrichedSignalHeaders(sut);
136125

137126
// THEN: the expected pre-defined fields are present in the headers
138127
assertExpectations(resultHeadersStage,
@@ -152,38 +141,7 @@ public void ensureDefinitionAndAdditionalNamespaceSpecificIsEnrichedAsPreDefined
152141
final var sut = providePreDefinedFieldsEnricher();
153142

154143
// WHEN: enriched headers are getting calculated
155-
final CompletionStage<DittoHeaders> resultHeadersStage = calculateEnrichedSignalHeaders(sut,
156-
"""
157-
{
158-
namespaces = [
159-
"*"
160-
]
161-
extra-fields = [
162-
"definition"
163-
]
164-
}
165-
""",
166-
"""
167-
{
168-
namespaces = [
169-
"org.eclipse.ditto.some"
170-
]
171-
extra-fields = [
172-
"attributes/public1"
173-
]
174-
}
175-
""",
176-
"""
177-
{
178-
namespaces = [
179-
"org.eclipse.ditto*"
180-
]
181-
extra-fields = [
182-
"attributes/private"
183-
]
184-
}
185-
"""
186-
);
144+
final CompletionStage<DittoHeaders> resultHeadersStage = calculateEnrichedSignalHeaders(sut);
187145

188146
// THEN: the expected pre-defined fields are present in the headers
189147
assertExpectations(resultHeadersStage,
@@ -278,41 +236,7 @@ public void ensureConditionBasedEnrichmentAsPreDefinedFromConfiguration() {
278236
final var sut = providePreDefinedFieldsEnricher();
279237

280238
// WHEN: enriched headers are getting calculated
281-
final CompletionStage<DittoHeaders> resultHeadersStage = calculateEnrichedSignalHeaders(sut,
282-
"""
283-
{
284-
namespaces = [
285-
"*"
286-
]
287-
condition = "eq(attributes/public1,true)"
288-
extra-fields = [
289-
"attributes/public1"
290-
]
291-
}
292-
""",
293-
"""
294-
{
295-
namespaces = [
296-
"org.eclipse.ditto.some"
297-
]
298-
condition = "eq(attributes/folder/private,false)"
299-
extra-fields = [
300-
"attributes/folder"
301-
]
302-
}
303-
""",
304-
"""
305-
{
306-
namespaces = [
307-
"org.eclipse.ditto*"
308-
]
309-
condition = "eq(attributes/private,'bumlux')"
310-
extra-fields = [
311-
"attributes/private"
312-
]
313-
}
314-
"""
315-
);
239+
final CompletionStage<DittoHeaders> resultHeadersStage = calculateEnrichedSignalHeaders(sut);
316240

317241
// THEN: the expected pre-defined fields are present in the headers
318242
assertExpectations(resultHeadersStage,
@@ -362,7 +286,7 @@ private static CompletionStage<DittoHeaders> calculateEnrichedSignalHeaders(
362286
Instant.now(), DittoHeaders.empty(), null);
363287

364288
final CompletionStage<AttributeModified> resultStage =
365-
sut.enrichWithPredefinedExtraFields(getPreDefinedExtraFieldsConfigs(configurations),
289+
sut.enrichWithPredefinedExtraFields(
366290
KNOWN_THING_ID, KNOWN_THING, KNOWN_POLICY_ID, event);
367291
return resultStage.thenApply(AttributeModified::getDittoHeaders);
368292
}

0 commit comments

Comments
 (0)