|
28 | 28 | import org.eclipse.edc.transform.spi.TransformerContext;
|
29 | 29 | import org.junit.jupiter.api.BeforeEach;
|
30 | 30 | import org.junit.jupiter.api.Test;
|
| 31 | +import org.mockito.ArgumentCaptor; |
31 | 32 |
|
32 | 33 | import java.time.Instant;
|
33 | 34 | import java.util.Map;
|
|
40 | 41 | import static org.eclipse.edc.jsonld.spi.PropertyAndTypeNames.ODRL_POLICY_TYPE_AGREEMENT;
|
41 | 42 | import static org.eclipse.edc.protocol.dsp.negotiation.transform.to.TestInput.getExpanded;
|
42 | 43 | import static org.eclipse.edc.protocol.dsp.spi.type.DspNegotiationPropertyAndTypeNames.DSPACE_PROPERTY_AGREEMENT_IRI;
|
| 44 | +import static org.eclipse.edc.protocol.dsp.spi.type.DspNegotiationPropertyAndTypeNames.DSPACE_PROPERTY_CONSUMER_ID_IRI; |
| 45 | +import static org.eclipse.edc.protocol.dsp.spi.type.DspNegotiationPropertyAndTypeNames.DSPACE_PROPERTY_PROVIDER_ID_IRI; |
43 | 46 | import static org.eclipse.edc.protocol.dsp.spi.type.DspNegotiationPropertyAndTypeNames.DSPACE_PROPERTY_TIMESTAMP_IRI;
|
44 | 47 | import static org.eclipse.edc.protocol.dsp.spi.type.DspNegotiationPropertyAndTypeNames.DSPACE_TYPE_CONTRACT_AGREEMENT_MESSAGE_IRI;
|
45 | 48 | import static org.eclipse.edc.protocol.dsp.spi.type.DspPropertyAndTypeNames.DSPACE_PROPERTY_CONSUMER_PID_IRI;
|
@@ -199,6 +202,41 @@ void transform_missingTimestamp() {
|
199 | 202 | verify(context, times(1)).reportProblem(contains(DSPACE_PROPERTY_TIMESTAMP_IRI));
|
200 | 203 | }
|
201 | 204 |
|
| 205 | + |
| 206 | + @Test |
| 207 | + void transform_excludedPolicyKeywords() { |
| 208 | + var agreement = jsonFactory.createObjectBuilder() |
| 209 | + .add(ID, AGREEMENT_ID) |
| 210 | + .add(TYPE, ODRL_POLICY_TYPE_AGREEMENT) |
| 211 | + .add(ODRL_ASSIGNEE_ATTRIBUTE, CONSUMER_ID) |
| 212 | + .add(ODRL_ASSIGNER_ATTRIBUTE, PROVIDER_ID) |
| 213 | + .add(DSPACE_PROPERTY_TIMESTAMP_IRI, TIMESTAMP) |
| 214 | + .add(DSPACE_PROPERTY_CONSUMER_ID_IRI, CONSUMER_ID) |
| 215 | + .add(DSPACE_PROPERTY_PROVIDER_ID_IRI, PROVIDER_ID) |
| 216 | + .build(); |
| 217 | + |
| 218 | + var message = jsonFactory.createObjectBuilder() |
| 219 | + .add(ID, "messageId") |
| 220 | + .add(TYPE, DSPACE_TYPE_CONTRACT_AGREEMENT_MESSAGE_IRI) |
| 221 | + .add(DSPACE_PROPERTY_CONSUMER_PID_IRI, "consumerPid") |
| 222 | + .add(DSPACE_PROPERTY_PROVIDER_PID_IRI, "providerPid") |
| 223 | + .add(DSPACE_PROPERTY_AGREEMENT_IRI, agreement) |
| 224 | + .build(); |
| 225 | + |
| 226 | + when(context.transform(any(JsonObject.class), eq(Policy.class))).thenReturn(policy()); |
| 227 | + |
| 228 | + assertThat(transformer.transform(getExpanded(message), context)).isNotNull(); |
| 229 | + |
| 230 | + var captor = ArgumentCaptor.forClass(JsonObject.class); |
| 231 | + |
| 232 | + verify(context).transform(captor.capture(), eq(Policy.class)); |
| 233 | + |
| 234 | + var transformedPolicy = captor.getValue(); |
| 235 | + |
| 236 | + assertThat(transformedPolicy).doesNotContainKeys(DSPACE_PROPERTY_TIMESTAMP_IRI, |
| 237 | + DSPACE_PROPERTY_CONSUMER_ID_IRI, DSPACE_PROPERTY_PROVIDER_ID_IRI); |
| 238 | + } |
| 239 | + |
202 | 240 | private Policy policy() {
|
203 | 241 | return policyBuilder().build();
|
204 | 242 | }
|
|
0 commit comments