Integrate EPSDK-FW library for auth and users
[portal/ric-dashboard.git] / webapp-backend / src / test / java / org / oransc / ric / portal / dashboard / config / AnrXappMockConfiguration.java
@@ -17,7 +17,7 @@
  * limitations under the License.
  * ========================LICENSE_END===================================
  */
-package org.oransc.ric.portal.dashboard.test.config;
+package org.oransc.ric.portal.dashboard.config;
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.eq;
@@ -37,6 +37,7 @@ import org.oransc.ric.anrxapp.client.model.NeighborCellRelationMod;
 import org.oransc.ric.anrxapp.client.model.NeighborCellRelationTable;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Profile;
@@ -51,17 +52,20 @@ public class AnrXappMockConfiguration {
 
        private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
+       // Simulate remote method delay for UI testing
+       @Value("${mock.config.delay:0}")
+       private int delayMs;
+
        private static final String GNODEB1 = "001EF5:0045FE50";
        private static final String GNODEB2 = "001EF6:0045FE51";
        private static final String GNODEB3 = "001EF7:0045FE52";
+
        // Sonar wants separate declarations
        private final NeighborCellRelationTable ncrt;
        private final NeighborCellRelationTable ncrtNodeB1;
        private final NeighborCellRelationTable ncrtNodeB2;
        private final NeighborCellRelationTable ncrtNodeB3;
        private final GgNodeBTable gNodebTable;
-       // Simulate remote method delay for UI testing
-       private final int delayMs = 500;
 
        public AnrXappMockConfiguration() {
                logger.info("Configuring mock ANR xApp client");
@@ -118,44 +122,60 @@ public class AnrXappMockConfiguration {
                NcrtApi mockApi = mock(NcrtApi.class);
                when(mockApi.getApiClient()).thenReturn(apiClient);
                doAnswer(inv -> {
-                       logger.debug("getgNodeB sleeping {}", delayMs);
-                       Thread.sleep(delayMs);
+                       if (delayMs > 0) {
+                               logger.debug("getgNodeB sleeping {}", delayMs);
+                               Thread.sleep(delayMs);
+                       }
                        return gNodebTable;
                }).when(mockApi).getgNodeB();
                // Swagger sends nulls; front end sends empty strings
                doAnswer(inv -> {
-                       logger.debug("getNcrt (1) sleeping {}", delayMs);
-                       Thread.sleep(delayMs);
+                       if (delayMs > 0) {
+                               logger.debug("getNcrt (1) sleeping {}", delayMs);
+                               Thread.sleep(delayMs);
+                       }
                        return ncrt;
                }).when(mockApi).getNcrt((String) isNull(), (String) isNull(), (String) isNull());
                doAnswer(inv -> {
-                       logger.debug("getNcrt (2) sleeping {}", delayMs);
-                       Thread.sleep(delayMs);
+                       if (delayMs > 0) {
+                               logger.debug("getNcrt (2) sleeping {}", delayMs);
+                               Thread.sleep(delayMs);
+                       }
                        return ncrt;
                }).when(mockApi).getNcrt(eq(""), any(String.class), any(String.class));
                doAnswer(inv -> {
-                       logger.debug("getNcrt (3) sleeping {}", delayMs);
-                       Thread.sleep(delayMs);
+                       if (delayMs > 0) {
+                               logger.debug("getNcrt (3) sleeping {}", delayMs);
+                               Thread.sleep(delayMs);
+                       }
                        return ncrtNodeB1;
                }).when(mockApi).getNcrt(eq(GNODEB1), any(String.class), any(String.class));
                doAnswer(inv -> {
-                       logger.debug("getNcrt (4) sleeping {}", delayMs);
-                       Thread.sleep(delayMs);
+                       if (delayMs > 0) {
+                               logger.debug("getNcrt (4) sleeping {}", delayMs);
+                               Thread.sleep(delayMs);
+                       }
                        return ncrtNodeB2;
                }).when(mockApi).getNcrt(eq(GNODEB2), any(String.class), any(String.class));
                doAnswer(inv -> {
-                       logger.debug("getNcrt (5) sleeping {}", delayMs);
-                       Thread.sleep(delayMs);
+                       if (delayMs > 0) {
+                               logger.debug("getNcrt (5) sleeping {}", delayMs);
+                               Thread.sleep(delayMs);
+                       }
                        return ncrtNodeB3;
                }).when(mockApi).getNcrt(eq(GNODEB3), any(String.class), any(String.class));
                doAnswer(inv -> {
-                       logger.debug("deleteNcrt sleeping {}", delayMs);
-                       Thread.sleep(delayMs);
+                       if (delayMs > 0) {
+                               logger.debug("deleteNcrt sleeping {}", delayMs);
+                               Thread.sleep(delayMs);
+                       }
                        return null;
                }).when(mockApi).deleteNcrt(any(String.class), any(String.class));
                doAnswer(inv -> {
-                       logger.debug("modifyNcrt sleeping {}", delayMs);
-                       Thread.sleep(delayMs);
+                       if (delayMs > 0) {
+                               logger.debug("modifyNcrt sleeping {}", delayMs);
+                               Thread.sleep(delayMs);
+                       }
                        return null;
                }).when(mockApi).modifyNcrt(any(String.class), any(String.class), any(NeighborCellRelationMod.class));
                return mockApi;