Use spring boot actuator version 2.5.4
[policy/pap.git] / main / src / test / java / org / onap / policy / pap / main / rest / TestPolicyAuditProvider.java
1 /*-
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
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
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=========================================================
17  */
18
19 package org.onap.policy.pap.main.rest;
20
21 import static org.assertj.core.api.Assertions.assertThat;
22 import static org.mockito.Mockito.when;
23
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;
36
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");
42
43     private PolicyAuditProvider provider;
44
45     @AfterClass
46     public static void tearDownAfterClass() {
47         Registry.newRegistry();
48     }
49
50     @Override
51     @Before
52     public void setUp() throws Exception {
53
54         super.setUp();
55         provider = new PolicyAuditProvider();
56         provider.initialize();
57     }
58
59     @Test
60     public void testGetAuditRecords() throws PfModelException {
61
62         AuditFilter auditFilter = AuditFilter.builder().recordNum(5).fromDate(null).toDate(null).build();
63
64         buildAuditRecords(auditFilter);
65
66         List<PolicyAudit> result = new ArrayList<>(provider.getAuditRecords(auditFilter));
67         validateAuditRecords(result, 2);
68     }
69
70     private void buildAuditRecords(AuditFilter auditFilter) {
71         PolicyAudit audit1 = PolicyAudit.builder().auditId(123L).pdpGroup(TEST_GROUP).pdpType(TEST_PDP_TYPE)
72                         .policy(POLICY_A).action(AuditAction.DEPLOYMENT).timestamp(Instant.now()).user(DEFAULT_USER)
73                         .build();
74
75         PolicyAudit audit2 = PolicyAudit.builder().auditId(456L).pdpGroup(TEST_GROUP).pdpType(TEST_PDP_TYPE)
76                         .policy(POLICY_B).action(AuditAction.UNDEPLOYMENT).timestamp(Instant.now()).user(DEFAULT_USER)
77                         .build();
78
79         if (auditFilter.getName() == null) {
80             when(dao.getAuditRecords(auditFilter)).thenReturn(List.of(audit1, audit2));
81         } else {
82             when(dao.getAuditRecords(auditFilter)).thenReturn(List.of(audit1));
83         }
84
85     }
86
87     private void validateAuditRecords(List<PolicyAudit> result, int count) {
88         assertThat(result).hasSize(count);
89         for (PolicyAudit audit : result) {
90             if (audit.getAuditId() == 123L) {
91                 assertThat(audit.getPdpGroup()).isEqualTo(TEST_GROUP);
92                 assertThat(audit.getPdpType()).isEqualTo(TEST_PDP_TYPE);
93                 assertThat(audit.getPolicy()).isEqualTo(POLICY_A);
94                 assertThat(audit.getAction()).isEqualTo(AuditAction.DEPLOYMENT);
95                 assertThat(audit.getUser()).isEqualTo(DEFAULT_USER);
96             } else if (audit.getAuditId() == 456L) {
97                 assertThat(audit.getPdpGroup()).isEqualTo(TEST_GROUP);
98                 assertThat(audit.getPdpType()).isEqualTo(TEST_PDP_TYPE);
99                 assertThat(audit.getPolicy()).isEqualTo(POLICY_B);
100                 assertThat(audit.getAction()).isEqualTo(AuditAction.UNDEPLOYMENT);
101                 assertThat(audit.getUser()).isEqualTo(DEFAULT_USER);
102             }
103         }
104     }
105 }