//
// Copyright 2019 AT&T Intellectual Property
// Copyright 2019 Nokia
+// Copyright (c) 2020 Samsung Electronics Co., Ltd. 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.
servedNrCells = append(servedNrCells, &entities.ServedNRCell{ServedNrCellInformation: &entities.ServedNRCellInformation{
CellId: v,
ChoiceNrMode: &entities.ServedNRCellInformation_ChoiceNRMode{
- Fdd: &entities.ServedNRCellInformation_ChoiceNRMode_FddInfo{
-
- },
+ Fdd: &entities.ServedNRCellInformation_ChoiceNRMode_FddInfo{},
},
NrMode: entities.Nr_FDD,
NrPci: 5,
context := controllerUpdateGnbTestContext{
getNodebInfoResult: nil,
requestBody: map[string]interface{}{
- "servedNrCells": []interface{}{
- },
+ "servedNrCells": []interface{}{},
},
expectedStatusCode: http.StatusBadRequest,
expectedJsonResponse: ValidationFailureJson,
requestBody := map[string]interface{}{
"enb": map[string]interface{}{
- "enbType": 5,
+ "enbType": 3,
"servedCells": []interface{}{
buildServedCell(""),
}},
}
+ oldServedCells := generateServedCells("whatever1", "whatever2")
+
context := controllerUpdateEnbTestContext{
- getNodebInfoResult: nil,
+ getNodebInfoResult: &getNodebInfoResult{
+ nodebInfo: &entities.NodebInfo{
+ RanName: RanName,
+ ConnectionStatus: entities.ConnectionStatus_CONNECTED,
+ AssociatedE2TInstanceAddress: AssociatedE2TInstanceAddress,
+ NodeType: entities.Node_ENB,
+ Configuration: &entities.NodebInfo_Enb{Enb: &entities.Enb{ServedCells: oldServedCells, EnbType: entities.EnbType_MACRO_NG_ENB}},
+ },
+ rnibError: nil,
+ },
requestBody: requestBody,
expectedStatusCode: http.StatusBadRequest,
expectedJsonResponse: ValidationFailureJson,
}
func initLog(t *testing.T) *logger.Logger {
- log, err := logger.InitLogger(logger.InfoLevel)
+ InfoLevel := int8(3)
+ log, err := logger.InitLogger(InfoLevel)
if err != nil {
t.Errorf("#delete_all_request_handler_test.TestHandleSuccessFlow - failed to initialize logger, error: %s", err)
}
assert.Equal(t, http.StatusNoContent, writer.Result().StatusCode)
}
+func TestX2ResetHandleFailureBodyReadError(t *testing.T) {
+ controller, _, _, _, _, _ := setupControllerTest(t)
+
+ ranName := "test1"
+ writer := httptest.NewRecorder()
+
+ // Fake reader to return reading error.
+ req, _ := http.NewRequest("PUT", "https://localhost:3800/nodeb-reset", errReader(0))
+ req = mux.SetURLVars(req, map[string]string{"ranName": ranName})
+
+ controller.X2Reset(writer, req)
+ assert.Equal(t, http.StatusBadRequest, writer.Result().StatusCode)
+
+}
+
func TestX2ResetHandleFailureInvalidBody(t *testing.T) {
controller, _, _, _, _, _ := setupControllerTest(t)
}
+/*
+func TestControllerHealthCheckRequestSuccess(t *testing.T) {
+ controller, readerMock, _, rmrMessengerMock, _, _ := setupControllerTest(t)
+
+ ranName := "test1"
+ // o&m intervention
+ payload := []byte{0x00, 0x07, 0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x05, 0x40, 0x01, 0x64}
+ var xAction []byte
+ var msgSrc unsafe.Pointer
+ msg := rmrCgo.NewMBuf(rmrCgo.RIC_X2_RESET, len(payload), ranName, &payload, &xAction, msgSrc)
+ rmrMessengerMock.On("SendMsg", msg, true).Return(msg, nil)
+
+ writer := httptest.NewRecorder()
+
+ var nodeb = &entities.NodebInfo{ConnectionStatus: entities.ConnectionStatus_CONNECTED}
+ readerMock.On("GetNodeb", ranName).Return(nodeb, nil)
+
+ data4Req := map[string]interface{}{"ranList": []string{"abcd"}}
+ b := new(bytes.Buffer)
+ _ = json.NewEncoder(b).Encode(data4Req)
+ req, _ := http.NewRequest("PUT", "https://localhost:3800/v1/nodeb/health", b)
+ req = mux.SetURLVars(req, map[string]string{"ranName": ranName})
+
+ controller.HealthCheckRequest(writer, req)
+ assert.Equal(t, http.StatusNoContent, writer.Result().StatusCode)
+}
+*/
+
func TestHandleErrorResponse(t *testing.T) {
controller, _, _, _, _, _ := setupControllerTest(t)
controller.handleErrorResponse(e2managererrors.NewRmrError(), writer)
assert.Equal(t, http.StatusInternalServerError, writer.Result().StatusCode)
+ writer = httptest.NewRecorder()
+ controller.handleErrorResponse(e2managererrors.NewNoConnectedRanError(), writer)
+ assert.Equal(t, http.StatusNotFound, writer.Result().StatusCode)
+
writer = httptest.NewRecorder()
controller.handleErrorResponse(e2managererrors.NewResourceNotFoundError(), writer)
assert.Equal(t, http.StatusNotFound, writer.Result().StatusCode)
rmrMessengerMock.On("Init", tests.GetPort(), tests.MaxMsgSize, tests.Flags, log).Return(&rmrMessenger)
return rmrsender.NewRmrSender(log, rmrMessenger)
}
+
+type errReader int
+
+func (errReader) Read(p []byte) (n int, err error) {
+ return 0, errors.New("test error")
+}