2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.onap.policy.models.pdp.persistence.concepts;
23 import static org.assertj.core.api.Assertions.assertThat;
24 import static org.assertj.core.api.Assertions.assertThatThrownBy;
25 import static org.junit.Assert.assertEquals;
26 import static org.junit.Assert.assertNotEquals;
28 import java.util.List;
29 import java.util.function.Consumer;
30 import java.util.function.UnaryOperator;
31 import org.assertj.core.api.AbstractStringAssert;
32 import org.junit.Before;
33 import org.junit.Test;
34 import org.onap.policy.models.base.PfKey;
35 import org.onap.policy.models.base.PfReferenceKey;
36 import org.onap.policy.models.base.Validated;
37 import org.onap.policy.models.pdp.concepts.PdpPolicyStatus;
38 import org.onap.policy.models.pdp.concepts.PdpPolicyStatus.PdpPolicyStatusBuilder;
39 import org.onap.policy.models.pdp.concepts.PdpPolicyStatus.State;
40 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
42 public class JpaPdpPolicyStatusTest {
43 private static final String MY_PDP = "MyPdp";
44 private static final String MY_GROUP = "MyGroup";
45 private static final String MY_PDP_TYPE = "MyPdpType";
46 private static final ToscaConceptIdentifier POLICY = new ToscaConceptIdentifier("MyPolicy", "1.2.3");
47 private static final ToscaConceptIdentifier POLICY_TYPE = new ToscaConceptIdentifier("MyPolicyType", "1.2.4");
49 private PdpPolicyStatusBuilder builder;
53 * Set up Policy Status builder.
58 builder = PdpPolicyStatus.builder()
64 .policyType(POLICY_TYPE)
65 .state(State.SUCCESS);
70 public void testJpaPdpPolicyStatus() {
71 JpaPdpPolicyStatus jpa = new JpaPdpPolicyStatus();
73 assertThat(jpa.getKey()).isNotNull();
74 assertThat(jpa.getKey().isNullKey()).isTrue();
75 assertThat(jpa.getPdpGroup()).isEqualTo(PfKey.NULL_KEY_NAME);
76 assertThat(jpa.getPdpType()).isEqualTo(PfKey.NULL_KEY_NAME);
77 assertThat(jpa.getPolicyType()).isNotNull();
78 assertThat(jpa.getPolicyType().isNullKey()).isTrue();
79 assertThat(jpa.isDeploy()).isFalse();
80 assertThat(jpa.getState()).isEqualTo(State.WAITING);
84 public void testJpaPdpPolicyStatusJpaPdpPolicyStatus() {
85 JpaPdpPolicyStatus jpa = new JpaPdpPolicyStatus(builder.build());
87 assertThat(new JpaPdpPolicyStatus(jpa)).isEqualTo(jpa);
91 public void testJpaPdpPolicyStatusPdpPolicyStatus() {
92 JpaPdpPolicyStatus jpa = new JpaPdpPolicyStatus(builder.build());
94 assertThat(jpa.getKey()).isNotNull();
95 PfReferenceKey key = jpa.getKey();
96 assertThat(key.getParentKeyName()).isEqualTo(POLICY.getName());
97 assertThat(key.getParentKeyVersion()).isEqualTo(POLICY.getVersion());
98 assertThat(key.getParentLocalName()).isEqualTo(PfKey.NULL_KEY_NAME);
99 assertThat(key.getLocalName()).isEqualTo(MY_PDP);
101 assertThat(jpa.getPdpGroup()).isEqualTo(MY_GROUP);
102 assertThat(jpa.getPdpType()).isEqualTo(MY_PDP_TYPE);
104 assertThat(jpa.getPolicyType()).isNotNull();
105 assertThat(jpa.getPolicyType().getName()).isEqualTo(POLICY_TYPE.getName());
106 assertThat(jpa.getPolicyType().getVersion()).isEqualTo(POLICY_TYPE.getVersion());
108 assertThat(jpa.isDeploy()).isTrue();
109 assertThat(jpa.getState()).isEqualTo(State.SUCCESS);
113 public void testGetKeys() {
114 JpaPdpPolicyStatus jpa = new JpaPdpPolicyStatus(builder.build());
116 assertThat(jpa.getKeys()).isEqualTo(List.of(jpa.getKey()));
120 public void testClean() {
121 JpaPdpPolicyStatus jpa =
122 new JpaPdpPolicyStatus(builder.pdpGroup(MY_GROUP + " ").pdpType(MY_PDP_TYPE + " ").build());
126 assertThat(jpa.getPdpGroup()).isEqualTo(MY_GROUP);
127 assertThat(jpa.getPdpType()).isEqualTo(MY_PDP_TYPE);
131 @SuppressWarnings("serial")
132 public void testCompareTo() {
133 JpaPdpPolicyStatus jpa = new JpaPdpPolicyStatus(builder.build());
135 assertNotEquals(0, jpa.compareTo(null));
136 assertEquals(0, jpa.compareTo(jpa));
137 assertNotEquals(0, jpa.compareTo(new JpaPdpPolicyStatus(builder.build()) {}));
139 assertNotEquals(0, checkCompareTo(bldr -> bldr.pdpId("AnotherPdp")));
140 assertNotEquals(0, checkCompareTo(bldr -> bldr.pdpGroup("AnotherGroup")));
141 assertNotEquals(0, checkCompareTo(bldr -> bldr.pdpType("AnotherType")));
142 assertNotEquals(0, checkCompareTo(
143 bldr -> bldr.policyType(new ToscaConceptIdentifier("AnotherPolicyType", "1.2.4"))));
144 assertNotEquals(0, checkCompareTo(bldr -> bldr.deploy(false)));
145 assertNotEquals(0, checkCompareTo(bldr -> bldr.state(State.FAILURE)));
148 private int checkCompareTo(UnaryOperator<PdpPolicyStatusBuilder> fieldModifier) {
149 JpaPdpPolicyStatus jpa1 = new JpaPdpPolicyStatus(builder.build());
150 JpaPdpPolicyStatus jpa2 = new JpaPdpPolicyStatus(fieldModifier.apply(builder).build());
152 return jpa1.compareTo(jpa2);
156 public void testToAuthorative() {
157 PdpPolicyStatus data = builder.build();
159 assertThat(new JpaPdpPolicyStatus(data).toAuthorative()).isEqualTo(data);
163 public void testFromAuthorative() {
164 PdpPolicyStatus data = builder.build();
165 JpaPdpPolicyStatus jpa = new JpaPdpPolicyStatus();
167 jpa.fromAuthorative(data);
169 assertThat(jpa).isEqualTo(new JpaPdpPolicyStatus(data));
173 public void testValidate() {
174 assertThat(new JpaPdpPolicyStatus(builder.build()).validate("").getResult()).isNull();
176 assertThatThrownBy(() -> new JpaPdpPolicyStatus(builder.build()).validate(null))
177 .hasMessageContaining("fieldName").hasMessageContaining("is null");
179 checkValidate(jpa -> jpa.getKey().setParentKeyName(PfKey.NULL_KEY_NAME)).contains("policy name",
182 checkValidate(jpa -> jpa.getKey().setParentKeyVersion(PfKey.NULL_KEY_VERSION)).contains("policy version",
185 checkValidate(jpa -> jpa.getKey().setParentLocalName("SomeName")).contains("parent local name", "must be NULL");
187 checkValidate(jpa -> jpa.getKey().setLocalName(PfKey.NULL_KEY_NAME)).contains("pdpId", Validated.IS_NULL);
190 private AbstractStringAssert<?> checkValidate(Consumer<JpaPdpPolicyStatus> fieldModifier) {
191 JpaPdpPolicyStatus jpa = new JpaPdpPolicyStatus(builder.build());
192 fieldModifier.accept(jpa);
194 return assertThat(jpa.validate("").getResult());