2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2021 Bell Canada. All rights reserved.
4 * ================================================================================
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 * ============LICENSE_END=========================================================
19 package org.onap.policy.pap.main.rest;
21 import static org.assertj.core.api.Assertions.assertThat;
22 import static org.mockito.Mockito.when;
24 import java.time.Instant;
25 import java.util.ArrayList;
26 import java.util.List;
27 import org.junit.AfterClass;
28 import org.junit.Before;
29 import org.junit.Test;
30 import org.onap.policy.common.utils.services.Registry;
31 import org.onap.policy.models.base.PfModelException;
32 import org.onap.policy.models.pap.concepts.PolicyAudit;
33 import org.onap.policy.models.pap.concepts.PolicyAudit.AuditAction;
34 import org.onap.policy.models.pap.persistence.provider.PolicyAuditProvider.AuditFilter;
35 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
37 public class TestPolicyAuditProvider extends ProviderSuper {
38 private static final String TEST_GROUP = "testGroup";
39 private static final String TEST_PDP_TYPE = "testPdpType";
40 private static final ToscaConceptIdentifier POLICY_A = new ToscaConceptIdentifier("PolicyA", "1.0.0");
41 private static final ToscaConceptIdentifier POLICY_B = new ToscaConceptIdentifier("PolicyB", "2.0.0");
43 private PolicyAuditProvider provider;
46 public static void tearDownAfterClass() {
47 Registry.newRegistry();
52 public void setUp() throws Exception {
55 provider = new PolicyAuditProvider();
59 public void testGetAuditRecords() throws PfModelException {
61 AuditFilter auditFilter = AuditFilter.builder().recordNum(5).fromDate(null).toDate(null).build();
63 buildAuditRecords(auditFilter);
65 List<PolicyAudit> result = new ArrayList<>(provider.getAuditRecords(auditFilter));
66 validateAuditRecords(result, 2);
69 private void buildAuditRecords(AuditFilter auditFilter) {
70 PolicyAudit audit1 = PolicyAudit.builder().auditId(123L).pdpGroup(TEST_GROUP).pdpType(TEST_PDP_TYPE)
71 .policy(POLICY_A).action(AuditAction.DEPLOYMENT).timestamp(Instant.now()).user(DEFAULT_USER)
74 PolicyAudit audit2 = PolicyAudit.builder().auditId(456L).pdpGroup(TEST_GROUP).pdpType(TEST_PDP_TYPE)
75 .policy(POLICY_B).action(AuditAction.UNDEPLOYMENT).timestamp(Instant.now()).user(DEFAULT_USER)
78 if (auditFilter.getName() == null) {
79 when(dao.getAuditRecords(auditFilter)).thenReturn(List.of(audit1, audit2));
81 when(dao.getAuditRecords(auditFilter)).thenReturn(List.of(audit1));
86 private void validateAuditRecords(List<PolicyAudit> result, int count) {
87 assertThat(result).hasSize(count);
88 for (PolicyAudit audit : result) {
89 if (audit.getAuditId() == 123L) {
90 assertThat(audit.getPdpGroup()).isEqualTo(TEST_GROUP);
91 assertThat(audit.getPdpType()).isEqualTo(TEST_PDP_TYPE);
92 assertThat(audit.getPolicy()).isEqualTo(POLICY_A);
93 assertThat(audit.getAction()).isEqualTo(AuditAction.DEPLOYMENT);
94 assertThat(audit.getUser()).isEqualTo(DEFAULT_USER);
95 } else if (audit.getAuditId() == 456L) {
96 assertThat(audit.getPdpGroup()).isEqualTo(TEST_GROUP);
97 assertThat(audit.getPdpType()).isEqualTo(TEST_PDP_TYPE);
98 assertThat(audit.getPolicy()).isEqualTo(POLICY_B);
99 assertThat(audit.getAction()).isEqualTo(AuditAction.UNDEPLOYMENT);
100 assertThat(audit.getUser()).isEqualTo(DEFAULT_USER);