Add tests to improve code-coverage stats in Sonar
[portal/ric-dashboard.git] / dashboard / webapp-backend / src / test / java / org / oransc / ric / portal / dashboard / controller / DefaultContextTest.java
index 43a77f1..dba0a32 100644 (file)
@@ -22,34 +22,48 @@ package org.oransc.ric.portal.dashboard.controller;
 import java.lang.invoke.MethodHandles;
 
 import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.test.context.ActiveProfiles;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 
 /**
  * Tests whether the default (not mock) configuration classes run to completion.
  */
 @ExtendWith(SpringExtension.class)
-@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
-@ActiveProfiles("default")
+// This way of setting the active profile should not be necessary.  See:
+// https://github.com/spring-projects/spring-boot/issues/19788
+@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = "spring.profiles.active:default")
 public class DefaultContextTest {
 
        private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
-       // If this test is annotated and run by maven, two cases in
-       // PortalRestCentralServiceTest fail. I traced it down to a second
-       // occurrence of the Dashboard user manager bean, which I can only speculate
-       // gets instantiated when the active profile is not "test". Because I cannot
-       // explain nor fix the behavior, this remains commented out.
-       // @Test
+       /**
+        * I expect the server to loaded then be torn down again. And when a single test
+        * is run, that is the behavior. But if all the tests are run, this test is
+        * reached while working thru the package and it appears that the "default"
+        * profile is added to the active "test" profile. Junit continues on thru the
+        * remaining tests, the non-mock configuration bean is used to authenticate
+        * Portal API requests, but because it has no username and password (the entries
+        * in application.yaml are blank), access is denied and these tests fail:
+        * <UL>
+        * <LI>{@link PortalRestCentralServiceTest#createUserTest()}
+        * <LI>{@link PortalRestCentralServiceTest#updateUserTest()}
+        * </UL>
+        * Maybe: 
+        *
+        * I worked around the problem by using the application.yaml credentials.
+        * I also annotated this class above trying to limit the active profile,
+        * but I'm not confident it is working nor that it's needed.
+        */
+       @Test
        public void contextLoads() {
                // Silence Sonar warning about missing assertion.
                Assertions.assertTrue(logger.isWarnEnabled());
-               logger.info("Context loads on default profile");
+               logger.info("DefaultContextTest#contextLoads on default profile");
        }
 
 }