Java 17 / Spring 6 / Spring Boot 3 Upgrade
[policy/pap.git] / main / src / test / java / org / onap / policy / pap / main / rest / TestPdpGroupHealthCheckProvider.java
index b236c56..dff023c 100644 (file)
@@ -1,7 +1,7 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019 Nordix Foundation.
- *  Modifications Copyright (C) 2020-2021 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");
 
 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 org.apache.commons.lang3.tuple.Pair;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+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.junit.MockitoJUnitRunner;
+import org.mockito.MockitoAnnotations;
 import org.onap.policy.common.utils.coder.Coder;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.common.utils.coder.StandardCoder;
@@ -45,9 +44,7 @@ import org.onap.policy.models.pdp.concepts.PdpGroup;
 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;
 
 /**
@@ -55,35 +52,35 @@ import org.springframework.http.HttpStatus;
  *
  * @author Ram Krishna Verma (ram.krishna.verma@est.tech)
  */
-@RunWith(MockitoJUnitRunner.class)
-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();
-        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();
+    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);
@@ -91,15 +88,21 @@ public class TestPdpGroupHealthCheckProvider {
 
     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);