RIC-244 - Eliminate Setup/Reset request from dashboard & connectionAttempts
[ric-plt/e2mgr.git] / E2Manager / handlers / httpmsghandlers / setup_request_handler_test.go
index 9fc75fe..9b9880d 100644 (file)
@@ -164,28 +164,41 @@ func TestSetupNewRanSelectE2TInstancesNoInstances(t *testing.T) {
        nodebInfo, _ := createInitialNodeInfo(&setupRequest, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
        writerMock.On("SaveNodeb", mock.Anything, mock.Anything).Return(nil)
        updatedNb := *nodebInfo
-       updatedNb.ConnectionAttempts = 0
        updatedNb.AssociatedE2TInstanceAddress = E2TAddress
+       updatedNb.ConnectionStatus = entities.ConnectionStatus_CONNECTED
        writerMock.On("UpdateNodebInfo", &updatedNb).Return(nil)
        ranSetupManagerMock.On("ExecuteSetup", &updatedNb, entities.ConnectionStatus_CONNECTING).Return(nil)
        _, err := handler.Handle(models.SetupRequest{"127.0.0.1", 8080, RanName,})
        assert.Nil(t, err)
+       readerMock.AssertExpectations(t)
+       writerMock.AssertExpectations(t)
+       e2tInstancesManagerMock.AssertExpectations(t)
+       ranSetupManagerMock.AssertExpectations(t)
 }
 
 func TestSetupNewRanAssociateRanFailure(t *testing.T) {
-       readerMock, writerMock, handler, e2tInstancesManagerMock, _, httpClientMock := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
+       readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock, httpClientMock := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
        readerMock.On("GetNodeb", RanName).Return(&entities.NodebInfo{}, common.NewResourceNotFoundError(""))
        e2tInstancesManagerMock.On("SelectE2TInstance").Return(E2TAddress, nil)
        e2tInstancesManagerMock.On("AddRansToInstance", E2TAddress, []string{RanName}).Return(e2managererrors.NewRnibDbError())
        setupRequest := &models.SetupRequest{"127.0.0.1", 8080, RanName,}
        nb, nbIdentity := createInitialNodeInfo(setupRequest, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
+       nb.ConnectionStatus = entities.ConnectionStatus_CONNECTED
        writerMock.On("SaveNodeb", nbIdentity, mock.Anything).Return(nil)
        writerMock.On("UpdateNodebInfo", nb).Return(nil)
        nb.AssociatedE2TInstanceAddress = E2TAddress
-       nb.ConnectionAttempts = 0
        mockHttpClientAssociateRan(httpClientMock)
+       updatedNb := *nb
+       updatedNb.AssociatedE2TInstanceAddress = E2TAddress
+
        _, err := handler.Handle(*setupRequest)
+       assert.NotNil(t, err)
        assert.IsType(t, &e2managererrors.RnibDbError{}, err)
+       readerMock.AssertExpectations(t)
+       writerMock.AssertExpectations(t)
+       e2tInstancesManagerMock.AssertExpectations(t)
+       ranSetupManagerMock.AssertExpectations(t)
+       httpClientMock.AssertExpectations(t)
 }
 
 func TestSetupNewRanSaveNodebFailure(t *testing.T) {
@@ -210,10 +223,11 @@ func TestSetupNewRanSetupDbError(t *testing.T) {
        nodebInfo, nbIdentity := createInitialNodeInfo(&setupRequest, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
        writerMock.On("SaveNodeb", nbIdentity, nodebInfo).Return(nil)
        updatedNb := *nodebInfo
-       updatedNb.ConnectionAttempts = 0
        updatedNb.AssociatedE2TInstanceAddress = E2TAddress
+       updatedNb.ConnectionStatus = entities.ConnectionStatus_CONNECTED
        writerMock.On("UpdateNodebInfo", &updatedNb).Return(nil)
        _, err := handler.Handle(setupRequest)
+       assert.NotNil(t, err)
        assert.IsType(t, &e2managererrors.RnibDbError{}, err)
        readerMock.AssertExpectations(t)
        writerMock.AssertExpectations(t)
@@ -229,8 +243,8 @@ func TestSetupNewRanSetupRmrError(t *testing.T) {
        nodebInfo, nbIdentity := createInitialNodeInfo(&setupRequest, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
        writerMock.On("SaveNodeb", nbIdentity, nodebInfo).Return(nil)
        updatedNb := *nodebInfo
-       updatedNb.ConnectionAttempts = 0
        updatedNb.AssociatedE2TInstanceAddress = E2TAddress
+       updatedNb.ConnectionStatus = entities.ConnectionStatus_CONNECTED
        writerMock.On("UpdateNodebInfo", &updatedNb).Return(nil)
        ranSetupManagerMock.On("ExecuteSetup", &updatedNb, entities.ConnectionStatus_CONNECTING).Return(e2managererrors.NewRmrError())
        _, err := handler.Handle(setupRequest)
@@ -246,8 +260,8 @@ func TestSetupNewRanSetupSuccess(t *testing.T) {
        nodebInfo, nbIdentity := createInitialNodeInfo(&setupRequest, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
        writerMock.On("SaveNodeb", nbIdentity, nodebInfo).Return(nil)
        updatedNb := *nodebInfo
-       updatedNb.ConnectionAttempts = 0
        updatedNb.AssociatedE2TInstanceAddress = E2TAddress
+       updatedNb.ConnectionStatus = entities.ConnectionStatus_CONNECTED
        writerMock.On("UpdateNodebInfo", &updatedNb).Return(nil)
        ranSetupManagerMock.On("ExecuteSetup", &updatedNb, entities.ConnectionStatus_CONNECTING).Return(nil)
        _, err := handler.Handle(setupRequest)
@@ -330,70 +344,66 @@ func TestSetupExistingRanWithoutAssocE2TInstanceSelectErrorAlreadyDisconnected(t
        ranSetupManagerMock.AssertNotCalled(t, "ExecuteSetup")
 }
 
-func TestSetupExistingRanWithoutAssocE2TInstanceAssociateRanFailure(t *testing.T) {
-       readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock, _ := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
-       nb := &entities.NodebInfo{RanName: RanName, AssociatedE2TInstanceAddress: ""}
-       readerMock.On("GetNodeb", RanName).Return(nb, nil)
-       e2tInstancesManagerMock.On("SelectE2TInstance").Return(E2TAddress, nil)
-       e2tInstancesManagerMock.On("AddRansToInstance", E2TAddress, []string{RanName}).Return(e2managererrors.NewRnibDbError())
-       writerMock.On("UpdateNodebInfo", mock.Anything).Return(nil)
-       _, err := handler.Handle(models.SetupRequest{"127.0.0.1", 8080, RanName,})
-       assert.IsType(t, &e2managererrors.RnibDbError{}, err)
-       writerMock.AssertNotCalled(t, "UpdateNodebInfo")
-       ranSetupManagerMock.AssertNotCalled(t, "ExecuteSetup")
-}
-
-func TestSetupExistingRanWithoutAssocE2TInstanceAssociateRanSucceedsUpdateNodebFails(t *testing.T) {
-       readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock, _ := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
-       nb := &entities.NodebInfo{RanName: RanName, AssociatedE2TInstanceAddress: ""}
-       readerMock.On("GetNodeb", RanName).Return(nb, nil)
-       e2tInstancesManagerMock.On("SelectE2TInstance").Return(E2TAddress, nil)
-       e2tInstancesManagerMock.On("AddRansToInstance", E2TAddress, []string{RanName}).Return(nil)
-       updatedNb := *nb
-       updatedNb.AssociatedE2TInstanceAddress = E2TAddress
-       updatedNb.ConnectionAttempts = 0
-       writerMock.On("UpdateNodebInfo", &updatedNb).Return(common.NewInternalError(fmt.Errorf("")))
-       _, err := handler.Handle(models.SetupRequest{"127.0.0.1", 8080, RanName,})
-       assert.IsType(t, /* &e2managererrors.RnibDbError{} */&common.InternalError{}, err)
-       ranSetupManagerMock.AssertNotCalled(t, "ExecuteSetup")
-}
-
-func TestSetupExistingRanWithoutAssocE2TInstanceExecuteSetupFailure(t *testing.T) {
-       readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock, _ := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
-       nb := &entities.NodebInfo{RanName: RanName, AssociatedE2TInstanceAddress: ""}
-       readerMock.On("GetNodeb", RanName).Return(nb, nil)
-       e2tInstancesManagerMock.On("SelectE2TInstance").Return(E2TAddress, nil)
-       e2tInstancesManagerMock.On("AddRansToInstance", E2TAddress, []string{RanName}).Return(nil)
-       updatedNb := *nb
-       updatedNb.AssociatedE2TInstanceAddress = E2TAddress
-       updatedNb.ConnectionAttempts = 0
-       writerMock.On("UpdateNodebInfo", &updatedNb).Return(nil)
-       ranSetupManagerMock.On("ExecuteSetup", &updatedNb, entities.ConnectionStatus_CONNECTING).Return(e2managererrors.NewRnibDbError())
-       _, err := handler.Handle(models.SetupRequest{"127.0.0.1", 8080, RanName,})
-       assert.IsType(t, &e2managererrors.RnibDbError{}, err)
-}
-
-func TestSetupExistingRanWithoutAssocE2TInstanceSuccess(t *testing.T) {
-       readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock, _ := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
-       nb := &entities.NodebInfo{RanName: RanName, AssociatedE2TInstanceAddress: ""}
-       readerMock.On("GetNodeb", RanName).Return(nb, nil)
-       e2tInstancesManagerMock.On("SelectE2TInstance").Return(E2TAddress, nil)
-       e2tInstancesManagerMock.On("AddRansToInstance", E2TAddress, []string{RanName}).Return(nil)
-       updatedNb := *nb
-       updatedNb.AssociatedE2TInstanceAddress = E2TAddress
-       updatedNb.ConnectionAttempts = 0
-       writerMock.On("UpdateNodebInfo", &updatedNb).Return(nil)
-       ranSetupManagerMock.On("ExecuteSetup", &updatedNb, entities.ConnectionStatus_CONNECTING).Return(nil)
-       _, err := handler.Handle(models.SetupRequest{"127.0.0.1", 8080, RanName,})
-       assert.Nil(t, err)
-}
+//func TestSetupExistingRanWithoutAssocE2TInstanceAssociateRanFailure(t *testing.T) {
+//     readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock, _ := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
+//     nb := &entities.NodebInfo{RanName: RanName, AssociatedE2TInstanceAddress: ""}
+//     readerMock.On("GetNodeb", RanName).Return(nb, nil)
+//     e2tInstancesManagerMock.On("SelectE2TInstance").Return(E2TAddress, nil)
+//     e2tInstancesManagerMock.On("AddRansToInstance", E2TAddress, []string{RanName}).Return(e2managererrors.NewRnibDbError())
+//     writerMock.On("UpdateNodebInfo", mock.Anything).Return(nil)
+//     _, err := handler.Handle(models.SetupRequest{"127.0.0.1", 8080, RanName,})
+//     assert.IsType(t, &e2managererrors.RnibDbError{}, err)
+//     writerMock.AssertNotCalled(t, "UpdateNodebInfo")
+//     ranSetupManagerMock.AssertNotCalled(t, "ExecuteSetup")
+//}
+
+//func TestSetupExistingRanWithoutAssocE2TInstanceAssociateRanSucceedsUpdateNodebFails(t *testing.T) {
+//     readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock, _ := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
+//     nb := &entities.NodebInfo{RanName: RanName, AssociatedE2TInstanceAddress: ""}
+//     readerMock.On("GetNodeb", RanName).Return(nb, nil)
+//     e2tInstancesManagerMock.On("SelectE2TInstance").Return(E2TAddress, nil)
+//     e2tInstancesManagerMock.On("AddRansToInstance", E2TAddress, []string{RanName}).Return(nil)
+//     updatedNb := *nb
+//     updatedNb.AssociatedE2TInstanceAddress = E2TAddress
+//     writerMock.On("UpdateNodebInfo", &updatedNb).Return(common.NewInternalError(fmt.Errorf("")))
+//     _, err := handler.Handle(models.SetupRequest{"127.0.0.1", 8080, RanName,})
+//     assert.IsType(t, /* &e2managererrors.RnibDbError{} */&common.InternalError{}, err)
+//     ranSetupManagerMock.AssertNotCalled(t, "ExecuteSetup")
+//}
+
+//func TestSetupExistingRanWithoutAssocE2TInstanceExecuteSetupFailure(t *testing.T) {
+//     readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock, _ := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
+//     nb := &entities.NodebInfo{RanName: RanName, AssociatedE2TInstanceAddress: ""}
+//     readerMock.On("GetNodeb", RanName).Return(nb, nil)
+//     e2tInstancesManagerMock.On("SelectE2TInstance").Return(E2TAddress, nil)
+//     e2tInstancesManagerMock.On("AddRansToInstance", E2TAddress, []string{RanName}).Return(nil)
+//     updatedNb := *nb
+//     updatedNb.AssociatedE2TInstanceAddress = E2TAddress
+//     writerMock.On("UpdateNodebInfo", &updatedNb).Return(nil)
+//     ranSetupManagerMock.On("ExecuteSetup", &updatedNb, entities.ConnectionStatus_CONNECTING).Return(e2managererrors.NewRnibDbError())
+//     _, err := handler.Handle(models.SetupRequest{"127.0.0.1", 8080, RanName,})
+//     assert.IsType(t, &e2managererrors.RnibDbError{}, err)
+//}
+//
+//func TestSetupExistingRanWithoutAssocE2TInstanceSuccess(t *testing.T) {
+//     readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock, _ := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
+//     nb := &entities.NodebInfo{RanName: RanName, AssociatedE2TInstanceAddress: ""}
+//     readerMock.On("GetNodeb", RanName).Return(nb, nil)
+//     e2tInstancesManagerMock.On("SelectE2TInstance").Return(E2TAddress, nil)
+//     e2tInstancesManagerMock.On("AddRansToInstance", E2TAddress, []string{RanName}).Return(nil)
+//     updatedNb := *nb
+//     updatedNb.AssociatedE2TInstanceAddress = E2TAddress
+//     writerMock.On("UpdateNodebInfo", &updatedNb).Return(nil)
+//     ranSetupManagerMock.On("ExecuteSetup", &updatedNb, entities.ConnectionStatus_CONNECTING).Return(nil)
+//     _, err := handler.Handle(models.SetupRequest{"127.0.0.1", 8080, RanName,})
+//     assert.Nil(t, err)
+//}
 
 func TestSetupExistingRanWithAssocE2TInstanceUpdateNodebFailure(t *testing.T) {
        readerMock, writerMock, handler, e2tInstancesManagerMock, ranSetupManagerMock, _ := initSetupRequestTest(t, entities.E2ApplicationProtocol_X2_SETUP_REQUEST)
        nb := &entities.NodebInfo{RanName: RanName, AssociatedE2TInstanceAddress: E2TAddress}
        readerMock.On("GetNodeb", RanName).Return(nb, nil)
        updatedNb := *nb
-       updatedNb.ConnectionAttempts = 0
        writerMock.On("UpdateNodebInfo", &updatedNb).Return(common.NewInternalError(fmt.Errorf("")))
        _, err := handler.Handle(models.SetupRequest{"127.0.0.1", 8080, RanName,})
        assert.IsType(t, &e2managererrors.RnibDbError{}, err)
@@ -407,17 +417,12 @@ func TestSetupExistingRanWithAssocE2TInstanceExecuteSetupRmrError(t *testing.T)
        nb := &entities.NodebInfo{RanName: RanName, AssociatedE2TInstanceAddress: E2TAddress, ConnectionStatus: entities.ConnectionStatus_CONNECTED, E2ApplicationProtocol:entities.E2ApplicationProtocol_X2_SETUP_REQUEST}
        readerMock.On("GetNodeb", RanName).Return(nb, nil)
        updatedNb := *nb
-       updatedNb.ConnectionAttempts = 0
-       updatedNb2 := updatedNb
-       updatedNb2.ConnectionAttempts++
-       updatedNb3 := updatedNb2
+       updatedNb3 := updatedNb
        updatedNb3.ConnectionStatus = entities.ConnectionStatus_DISCONNECTED
-       updatedNb3.ConnectionAttempts--
        writerMock.On("UpdateNodebInfo", &updatedNb).Return(nil)
-       writerMock.On("UpdateNodebInfo", &updatedNb2).Return(nil)
        payload := e2pdus.PackedX2setupRequest
        xaction := []byte(RanName)
-       msg := rmrCgo.NewMBuf(rmrCgo.RIC_X2_SETUP_REQ, len(payload), RanName, &payload, &xaction)
+       msg := rmrCgo.NewMBuf(rmrCgo.RIC_X2_SETUP_REQ, len(payload), RanName, &payload, &xaction, nil)
        rmrMessengerMock.On("SendMsg",mock.Anything, true).Return(msg, e2managererrors.NewRmrError())
        writerMock.On("UpdateNodebInfo", &updatedNb3).Return(nil)
        _, err := handler.Handle(models.SetupRequest{"127.0.0.1", 8080, RanName,})
@@ -430,7 +435,6 @@ func TestSetupExistingRanWithAssocE2TInstanceConnectedSuccess(t *testing.T) {
        nb := &entities.NodebInfo{RanName: RanName, AssociatedE2TInstanceAddress: E2TAddress, ConnectionStatus: entities.ConnectionStatus_CONNECTED}
        readerMock.On("GetNodeb", RanName).Return(nb, nil)
        updatedNb := *nb
-       updatedNb.ConnectionAttempts = 0
        writerMock.On("UpdateNodebInfo", &updatedNb).Return(nil)
        ranSetupManagerMock.On("ExecuteSetup", &updatedNb, entities.ConnectionStatus_CONNECTED).Return(nil)
        _, err := handler.Handle(models.SetupRequest{"127.0.0.1", 8080, RanName,})