/*-
* ============LICENSE_START=======================================================
- * Copyright (C) 2019 Nordix Foundation.
- * Modifications Copyright (C) 2020 Bell Canada. All rights reserved.
+ * Copyright (C) 2019, 2023 Nordix Foundation.
+ * Modifications Copyright (C) 2020-2022 Bell Canada. All rights reserved.
+ * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
package org.onap.policy.pap.main.rest;
-import static org.junit.Assert.assertEquals;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.mock;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.when;
import java.io.File;
import java.util.List;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
import org.apache.commons.lang3.tuple.Pair;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.onap.policy.common.utils.coder.Coder;
import org.onap.policy.models.pdp.concepts.PdpGroups;
import org.onap.policy.models.pdp.concepts.PdpSubGroup;
import org.onap.policy.models.pdp.concepts.Pdps;
-import org.onap.policy.models.provider.PolicyModelsProvider;
-import org.onap.policy.pap.main.PapConstants;
-import org.onap.policy.pap.main.PolicyModelsProviderFactoryWrapper;
+import org.onap.policy.pap.main.service.PdpGroupService;
+import org.springframework.http.HttpStatus;
/**
* Class to perform unit test of {@link PdpGroupHealthCheckProvider}.
*
* @author Ram Krishna Verma (ram.krishna.verma@est.tech)
*/
-public class TestPdpGroupHealthCheckProvider {
+class TestPdpGroupHealthCheckProvider {
@Mock
- private PolicyModelsProvider dao;
- private PolicyModelsProviderFactoryWrapper daofact;
+ private PdpGroupService pdpGroupService;
private List<PdpGroup> groups;
- private Coder coder = new StandardCoder();
+ private final Coder coder = new StandardCoder();
+
+ AutoCloseable autoCloseable;
/**
* Configures DAO and mocks.
*/
- @Before
+ @BeforeEach
public void setUp() throws Exception {
-
+ autoCloseable = MockitoAnnotations.openMocks(this);
Registry.newRegistry();
- MockitoAnnotations.initMocks(this);
- daofact = mock(PolicyModelsProviderFactoryWrapper.class);
- when(daofact.create()).thenReturn(dao);
+ groups = loadFile().getGroups();
- groups = loadFile("pdpGroup.json").getGroups();
-
- when(dao.getPdpGroups(any())).thenReturn(groups);
+ when(pdpGroupService.getPdpGroups()).thenReturn(groups);
+ }
- Registry.register(PapConstants.REG_PAP_DAO_FACTORY, daofact);
+ @AfterEach
+ public void tearDown() throws Exception {
+ autoCloseable.close();
}
@Test
- public void testFetchPdpGroupHealthStatus() throws Exception {
- final PdpGroupHealthCheckProvider provider = new PdpGroupHealthCheckProvider();
- final Pair<Status, Pdps> pair = provider.fetchPdpGroupHealthStatus();
- assertEquals(Response.Status.OK, pair.getLeft());
+ void testFetchPdpGroupHealthStatus() throws Exception {
+ final PdpGroupHealthCheckProvider provider = new PdpGroupHealthCheckProvider(pdpGroupService);
+ final Pair<HttpStatus, Pdps> pair = provider.fetchPdpGroupHealthStatus();
+ assertEquals(HttpStatus.OK, pair.getLeft());
verifyPdps(pair.getRight().getPdpList(), groups);
}
private void verifyPdps(final List<Pdp> pdpList, final List<PdpGroup> groups) {
assertEquals(6, pdpList.size());
- for (final PdpGroup group : groups) {
- for (final PdpSubGroup subGroup : group.getPdpSubgroups()) {
- pdpList.containsAll(subGroup.getPdpInstances());
+ boolean containsAll = false;
+
+ do {
+ for (final PdpGroup group : groups) {
+ for (final PdpSubGroup subGroup : group.getPdpSubgroups()) {
+ containsAll = pdpList.containsAll(subGroup.getPdpInstances());
+ }
}
- }
+ } while (!containsAll);
+
+ assertTrue(containsAll);
}
- private PdpGroups loadFile(final String fileName) {
- final File propFile = new File(ResourceUtils.getFilePath4Resource("rest/" + fileName));
+ private PdpGroups loadFile() {
+ final File propFile = new File(ResourceUtils.getFilePath4Resource("rest/" + "pdpGroup.json"));
try {
return coder.decode(propFile, PdpGroups.class);