import java.lang.invoke.MethodHandles;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import org.oransc.ric.e2mgr.client.api.HealthCheckApi;
import org.oransc.ric.e2mgr.client.api.NodebApi;
@Value("${mock.config.delay:0}")
private int delayMs;
+ public static final String MOCK_RAN_NAME = "Mock RAN";
+
private final List<NodebIdentity> nodebIdList;
- private final GetNodebResponse nodebResponse;
+ private final Map<String, GetNodebResponse> nodebResponseMap;
+ private final NodebIdentityGlobalNbId globalNbId;
public E2ManagerMockConfiguration() {
logger.info("Configuring mock E2 Manager");
- NodebIdentityGlobalNbId globalNbId = new NodebIdentityGlobalNbId().nbId("mockNbId").plmnId("mockPlmId");
- NodebIdentity nbid = new NodebIdentity().inventoryName("mockInvName").globalNbId(globalNbId);
+ globalNbId = new NodebIdentityGlobalNbId().nbId("mockNbId").plmnId("mockPlmId");
nodebIdList = new ArrayList<>();
- nodebIdList.add(nbid);
- nodebResponse = new GetNodebResponse().connectionStatus("mockConnectionStatus").failureType("mockFailureType")
- .ip("127.0.0.1").nodeType("mockNodeType").port(123).ranName("mockRanName");
+ nodebResponseMap = new HashMap<>();
+ nodebIdList.add(new NodebIdentity().inventoryName(MOCK_RAN_NAME).globalNbId(globalNbId));
+ nodebResponseMap.put(MOCK_RAN_NAME,
+ new GetNodebResponse().connectionStatus("mockConnectionStatus").failureType("mockFailureType")
+ .ip("127.0.0.1").nodeType("mockNodeType").port(123).ranName(MOCK_RAN_NAME));
}
private ApiClient apiClient() {
when(mockApi.getApiClient()).thenReturn(apiClient);
doAnswer(inv -> {
if (delayMs > 0) {
- logger.debug("nodebDelete sleeping {}", delayMs);
+ logger.debug("nodebShutdownPut sleeping {}", delayMs);
Thread.sleep(delayMs);
}
+ nodebIdList.clear();
return null;
}).when(mockApi).nodebShutdownPut();
doAnswer(inv -> {
logger.debug("getNb sleeping {}", delayMs);
Thread.sleep(delayMs);
}
- return nodebResponse;
+ String invName = inv.<String>getArgument(0);
+ return nodebResponseMap.get(invName);
}).when(mockApi).getNb(any(String.class));
doAnswer(inv -> {
if (delayMs > 0) {
logger.debug("endcSetup sleeping {}", delayMs);
Thread.sleep(delayMs);
}
+ SetupRequest sr = inv.<SetupRequest>getArgument(0);
+ nodebIdList.add(new NodebIdentity().inventoryName(sr.getRanName()).globalNbId(globalNbId));
+ nodebResponseMap.put(sr.getRanName(),
+ new GetNodebResponse().connectionStatus("mockConnectionStatus").failureType("mockFailureType")
+ .ip(sr.getRanIp()).nodeType("ENDC").port(sr.getRanPort()).ranName(sr.getRanName()));
return null;
}).when(mockApi).endcSetup(any(SetupRequest.class));
doAnswer(inv -> {
logger.debug("x2Setup sleeping {}", delayMs);
Thread.sleep(delayMs);
}
+ SetupRequest sr = inv.<SetupRequest>getArgument(0);
+ nodebIdList.add(new NodebIdentity().inventoryName(sr.getRanName()).globalNbId(globalNbId));
+ nodebResponseMap.put(sr.getRanName(),
+ new GetNodebResponse().connectionStatus("mockConnectionStatus").failureType("mockFailureType")
+ .ip(sr.getRanIp()).nodeType("X2").port(sr.getRanPort()).ranName(sr.getRanName()));
return null;
}).when(mockApi).x2Setup(any(SetupRequest.class));
return mockApi;
import org.oransc.ric.e2mgr.client.model.NodebIdentity;
import org.oransc.ric.e2mgr.client.model.ResetRequest;
import org.oransc.ric.e2mgr.client.model.SetupRequest;
+import org.oransc.ric.portal.dashboard.config.E2ManagerMockConfiguration;
import org.oransc.ric.portal.dashboard.model.RanDetailsTransport;
import org.oransc.ric.portal.dashboard.model.SuccessTransport;
import org.slf4j.Logger;
private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
+ private ResponseEntity<Void> endcSetup() {
+ URI uri = buildUri(null, E2ManagerController.CONTROLLER_PATH, E2ManagerController.ENDC_SETUP_METHOD);
+ logger.info("Invoking {}", uri);
+ SetupRequest setup = new SetupRequest().ranName(E2ManagerMockConfiguration.MOCK_RAN_NAME);
+ HttpEntity<SetupRequest> entity = new HttpEntity<>(setup);
+ return testRestTemplateAdminRole().exchange(uri, HttpMethod.POST, entity, Void.class);
+ }
+
+ private ResponseEntity<Void> reset() {
+ URI uri = buildUri(null, E2ManagerController.CONTROLLER_PATH, E2ManagerController.RESET_METHOD, "ignored");
+ logger.info("Invoking {}", uri);
+ ResetRequest reset = new ResetRequest();
+ HttpEntity<ResetRequest> entity = new HttpEntity<>(reset);
+ return testRestTemplateAdminRole().exchange(uri, HttpMethod.PUT, entity, Void.class);
+ }
+
@Test
public void versionTest() {
URI uri = buildUri(null, E2ManagerController.CONTROLLER_PATH, E2ManagerController.VERSION_METHOD);
@Test
public void ranDetailsTest() {
+ endcSetup();
URI uri = buildUri(null, E2ManagerController.CONTROLLER_PATH, E2ManagerController.RAN_METHOD);
logger.info("Invoking {}", uri);
ResponseEntity<List<RanDetailsTransport>> response = testRestTemplateStandardRole().exchange(uri,
HttpMethod.GET, null, new ParameterizedTypeReference<List<RanDetailsTransport>>() {
});
Assertions.assertFalse(response.getBody().isEmpty());
+ reset();
}
@Test
public void nodebListTest() {
+ endcSetup();
URI uri = buildUri(null, E2ManagerController.CONTROLLER_PATH, E2ManagerController.NODEB_LIST_METHOD);
logger.info("Invoking {}", uri);
ResponseEntity<List<NodebIdentity>> response = testRestTemplateStandardRole().exchange(uri, HttpMethod.GET,
null, new ParameterizedTypeReference<List<NodebIdentity>>() {
});
Assertions.assertFalse(response.getBody().isEmpty());
+ reset();
}
@Test
public void nodebStatusTest() {
- URI uri = buildUri(null, E2ManagerController.CONTROLLER_PATH, E2ManagerController.NODEB_METHOD, "nodeb");
+ endcSetup();
+ URI uri = buildUri(null, E2ManagerController.CONTROLLER_PATH, E2ManagerController.NODEB_SHUTDOWN_METHOD,
+ E2ManagerMockConfiguration.MOCK_RAN_NAME);
logger.info("Invoking {}", uri);
GetNodebResponse response = testRestTemplateStandardRole().getForObject(uri, GetNodebResponse.class);
Assertions.assertNotNull(response.getRanName());
+ reset();
}
@Test
public void endcSetupTest() {
- URI uri = buildUri(null, E2ManagerController.CONTROLLER_PATH, E2ManagerController.ENDC_SETUP_METHOD);
- logger.info("Invoking {}", uri);
- SetupRequest setup = new SetupRequest();
- HttpEntity<SetupRequest> entity = new HttpEntity<>(setup);
- ResponseEntity<Void> voidResponse = testRestTemplateAdminRole().exchange(uri, HttpMethod.POST, entity,
- Void.class);
+ ResponseEntity<Void> voidResponse = endcSetup();
Assertions.assertTrue(voidResponse.getStatusCode().is2xxSuccessful());
+ reset();
}
@Test
public void x2SetupTest() {
URI uri = buildUri(null, E2ManagerController.CONTROLLER_PATH, E2ManagerController.X2_SETUP_METHOD);
logger.info("Invoking {}", uri);
- SetupRequest setup = new SetupRequest();
+ SetupRequest setup = new SetupRequest().ranName(E2ManagerMockConfiguration.MOCK_RAN_NAME);
HttpEntity<SetupRequest> entity = new HttpEntity<>(setup);
ResponseEntity<Void> voidResponse = testRestTemplateAdminRole().exchange(uri, HttpMethod.POST, entity,
Void.class);
Assertions.assertTrue(voidResponse.getStatusCode().is2xxSuccessful());
+ reset();
}
// Aka big--button test
@Test
- public void nodebPutTest() {
- URI uri = buildUri(null, E2ManagerController.CONTROLLER_PATH, E2ManagerController.NODEB_METHOD);
+ public void nodebShutdownPutTest() {
+ URI uri = buildUri(null, E2ManagerController.CONTROLLER_PATH, E2ManagerController.NODEB_SHUTDOWN_METHOD);
logger.info("Invoking {}", uri);
ResponseEntity<Void> voidResponse = testRestTemplateAdminRole().exchange(uri, HttpMethod.PUT, null, Void.class);
logger.debug("nodebPutTest: response {}", voidResponse);
@Test
public void resetTest() {
- URI uri = buildUri(null, E2ManagerController.CONTROLLER_PATH, E2ManagerController.RESET_METHOD, "ranName");
- logger.info("Invoking {}", uri);
- ResetRequest reset = new ResetRequest();
- HttpEntity<ResetRequest> entity = new HttpEntity<>(reset);
- ResponseEntity<Void> voidResponse = testRestTemplateAdminRole().exchange(uri, HttpMethod.PUT, entity,
- Void.class);
+ ResponseEntity<Void> voidResponse = reset();
logger.debug("resetTest: response {}", voidResponse);
Assertions.assertTrue(voidResponse.getStatusCode().is2xxSuccessful());
}