Skip to content

Commit f5c19f9

Browse files
committed
ACC-2351 Accept single Term as list of Terms in Expression
1 parent e76e0ee commit f5c19f9

File tree

3 files changed

+2472
-0
lines changed

3 files changed

+2472
-0
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package com.contentgrid.opa.client.api;
2+
3+
import static org.assertj.core.api.Assertions.assertThat;
4+
import static org.junit.jupiter.api.Assertions.*;
5+
6+
import com.contentgrid.opa.client.api.PolicyApi.ListPoliciesResponse;
7+
import com.contentgrid.opa.rego.ast.Term;
8+
import com.fasterxml.jackson.databind.DeserializationFeature;
9+
import com.fasterxml.jackson.databind.json.JsonMapper;
10+
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
11+
import org.junit.jupiter.api.Test;
12+
13+
class PolicyApiTest {
14+
15+
@Test
16+
void testPoliciesResponseObjectMapping() {
17+
var objectMapper = JsonMapper.builder()
18+
.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)
19+
.build()
20+
.registerModule(new JavaTimeModule());
21+
22+
// read listpoliciesresponse.json into ListPoliciesResponse
23+
try (var is = getClass().getClassLoader().getResourceAsStream("com/contentgrid/opa/client/api/policyapi/listpoliciesrsponse.json")) {
24+
var response = objectMapper.readValue(is, ListPoliciesResponse.class);
25+
assertNotNull(response);
26+
assertThat(response.getResult().get(2).getAst().getRules().get(1).getBody()).singleElement().satisfies(expression -> {
27+
assertThat(expression.getTerms()).singleElement().isInstanceOfSatisfying(Term.Bool.class, boolTerm -> {
28+
assertThat(boolTerm.getValue()).isTrue();
29+
});
30+
});
31+
} catch (Exception e) {
32+
fail("Failed to deserialize ListPoliciesResponse", e);
33+
}
34+
}
35+
36+
}

0 commit comments

Comments
 (0)