[RICPLT-1853] Add UT & more
[ric-plt/e2mgr.git] / E2Manager / handlers / ranLostConnectionHandler_test.go
index 0a315ff..ea735b2 100644 (file)
 //// See the License for the specific language governing permissions and
 //// limitations under the License.
 ////
-//
 package handlers
-//
-//import (
-//     "e2mgr/logger"
-//     "e2mgr/mocks"
-//     "e2mgr/models"
-//     "e2mgr/rNibWriter"
-//     "e2mgr/rmrCgo"
-//     "e2mgr/sessions"
-//     "e2mgr/tests"
-//     "fmt"
-//     "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/common"
-//     "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities"
-//     "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader"
-//     "github.com/stretchr/testify/mock"
-//     "testing"
-//     "time"
-//)
-//
-///*
-// * Test an error response while in an x2 setup request session
-// */
-//func TestHandleInSession(t *testing.T){
-//     log, err := logger.InitLogger(logger.InfoLevel)
-//     if err!=nil{
-//             t.Errorf("#sctp_errors_notification_handler_test.TestHandleInSession - failed to initialize logger, error: %s", err)
-//     }
-//
-//     readerMock :=&mocks.RnibReaderMock{}
-//     rnibReaderProvider := func() reader.RNibReader {
-//             return readerMock
-//     }
-//     writerMock := &mocks.RnibWriterMock{}
-//     rnibWriterProvider := func() rNibWriter.RNibWriter {
-//             return writerMock
-//     }
-//     h := NewRanLostConnectionHandler(rnibReaderProvider,rnibWriterProvider)
-//
-//     e2Sessions := make(sessions.E2Sessions)
-//     xaction := []byte(fmt.Sprintf("%32s", "1234"))
-//     e2Sessions[string(xaction)] = sessions.E2SessionDetails{SessionStart: time.Now()}
-//     payload := []byte("Error")
-//     mBuf := rmrCgo.NewMBuf(tests.MessageType, len(payload),"RanName", &payload, &xaction)
-//     notificationRequest := models.NotificationRequest{RanName: mBuf.Meid, Len: mBuf.Len, Payload: *mBuf.Payload,
-//             StartTime: time.Now(), TransactionId: string(xaction)}
-//     var messageChannel chan<- *models.NotificationResponse
-//
-//     nb := &entities.NodebInfo{RanName:mBuf.Meid, ConnectionStatus:entities.ConnectionStatus_CONNECTED,}
-//     var rnibErr common.IRNibError
-//     readerMock.On("GetNodeb", mBuf.Meid).Return(nb, rnibErr)
-//     updatedNb := &entities.NodebInfo{RanName:mBuf.Meid, ConnectionStatus:entities.ConnectionStatus_DISCONNECTED,}
-//     writerMock.On("SaveNodeb", mock.Anything, updatedNb).Return(rnibErr)
-//
-//     h.Handle(log,e2Sessions, &notificationRequest, messageChannel)
-//
-//     if _, ok := e2Sessions[string(xaction)]; ok {
-//             t.Errorf("want: no session entry, got: session entry for: %s", string(xaction) )
-//     }
-//}
-//
-///*
-// * Test an error response triggered by the E2 Term
-// */
-//
-//func TestHandleNoSession(t *testing.T){
-//     log, err := logger.InitLogger(logger.InfoLevel)
-//     if err!=nil{
-//             t.Errorf("#sctp_errors_notification_handler_test.TestHandleNoSession - failed to initialize logger, error: %s", err)
-//     }
-//
-//     readerMock :=&mocks.RnibReaderMock{}
-//     rnibReaderProvider := func() reader.RNibReader {
-//             return readerMock
-//     }
-//     writerMock := &mocks.RnibWriterMock{}
-//     rnibWriterProvider := func() rNibWriter.RNibWriter {
-//             return writerMock
-//     }
-//     h := NewRanLostConnectionHandler(rnibReaderProvider,rnibWriterProvider)
-//
-//     e2Sessions := make(sessions.E2Sessions)
-//     transactionId := "1234"
-//     xaction := []byte(fmt.Sprintf("%32s", transactionId+"6"))
-//     e2Sessions[transactionId] = sessions.E2SessionDetails{SessionStart: time.Now()}
-//     payload := []byte("Error")
-//     mBuf := rmrCgo.NewMBuf(tests.MessageType, len(payload),"RanName", &payload, &xaction)
-//     notificationRequest := models.NotificationRequest{RanName: mBuf.Meid, Len: mBuf.Len, Payload: *mBuf.Payload, StartTime: time.Now(),
-//                     TransactionId: string(xaction)}
-//     var messageChannel chan<- *models.NotificationResponse
-//
-//     nb := &entities.NodebInfo{RanName:mBuf.Meid, ConnectionStatus:entities.ConnectionStatus_CONNECTED,}
-//     var rnibErr common.IRNibError
-//     readerMock.On("GetNodeb", mBuf.Meid).Return(nb, rnibErr)
-//     updatedNb := &entities.NodebInfo{RanName:mBuf.Meid, ConnectionStatus:entities.ConnectionStatus_DISCONNECTED,}
-//     writerMock.On("SaveNodeb", mock.Anything, updatedNb).Return(rnibErr)
-//
-//     h.Handle(log,e2Sessions, &notificationRequest, messageChannel)
-//
-//     if _, ok := e2Sessions[transactionId]; !ok {
-//             t.Errorf("want: session entry for %s, got: no session entry", transactionId )
-//     }
-//}
-///*
-// * Test an error response triggered by the E2 Term
-// */
-//func TestHandleUnsolicitedDisconnectionConnectedSuccess(t *testing.T){
-//     log, err := logger.InitLogger(logger.DebugLevel)
-//     if err!=nil{
-//             t.Errorf("#sctp_errors_notification_handler_test.TestHandleNoSession - failed to initialize logger, error: %s", err)
-//     }
-//
-//     readerMock :=&mocks.RnibReaderMock{}
-//     rnibReaderProvider := func() reader.RNibReader {
-//             return readerMock
-//     }
-//     writerMock := &mocks.RnibWriterMock{}
-//     rnibWriterProvider := func() rNibWriter.RNibWriter {
-//             return writerMock
-//     }
-//     h := NewRanLostConnectionHandler(rnibReaderProvider,rnibWriterProvider)
-//
-//     e2Sessions := make(sessions.E2Sessions)
-//     transactionId := "1234"
-//     xaction := []byte(fmt.Sprintf("%32s", transactionId+"6"))
-//     e2Sessions[transactionId] = sessions.E2SessionDetails{SessionStart: time.Now()}
-//     payload := []byte("Error")
-//     mBuf := rmrCgo.NewMBuf(tests.MessageType, len(payload),"RanName", &payload, &xaction)
-//     notificationRequest := models.NotificationRequest{RanName: mBuf.Meid, Len: mBuf.Len, Payload: *mBuf.Payload, StartTime: time.Now(),
-//             TransactionId: string(xaction)}
-//     var messageChannel chan<- *models.NotificationResponse
-//
-//     nb := &entities.NodebInfo{RanName:mBuf.Meid, ConnectionStatus:entities.ConnectionStatus_CONNECTED,}
-//     var rnibErr common.IRNibError
-//     readerMock.On("GetNodeb", mBuf.Meid).Return(nb, rnibErr)
-//     updatedNb := &entities.NodebInfo{RanName:mBuf.Meid, ConnectionStatus:entities.ConnectionStatus_DISCONNECTED,}
-//     writerMock.On("SaveNodeb", mock.Anything, updatedNb).Return(rnibErr)
-//
-//     h.Handle(log,e2Sessions, &notificationRequest, messageChannel)
-//}
+
+import (
+       "e2mgr/logger"
+       "e2mgr/mocks"
+       "e2mgr/models"
+       "e2mgr/sessions"
+       "github.com/pkg/errors"
+       "testing"
+)
+
+func TestLostConnectionHandlerSuccess(t *testing.T) {
+       logger, _ := logger.InitLogger(logger.InfoLevel)
+       ranName := "test"
+       notificationRequest := models.NotificationRequest{RanName: ranName}
+       ranReconnectionManagerMock := &mocks.RanReconnectionManagerMock{}
+       ranReconnectionManagerMock.On("ReconnectRan", ranName).Return(nil)
+       handler := NewRanLostConnectionHandler(ranReconnectionManagerMock)
+       handler.Handle(logger, make(sessions.E2Sessions), &notificationRequest, nil)
+       ranReconnectionManagerMock.AssertCalled(t, "ReconnectRan", ranName)
+}
+
+func TestLostConnectionHandlerFailure(t *testing.T) {
+       logger, _ := logger.InitLogger(logger.InfoLevel)
+       ranName := "test"
+       notificationRequest := models.NotificationRequest{RanName: ranName}
+       ranReconnectionManagerMock := &mocks.RanReconnectionManagerMock{}
+       ranReconnectionManagerMock.On("ReconnectRan", ranName).Return(errors.New("error"))
+       handler := NewRanLostConnectionHandler(ranReconnectionManagerMock)
+       handler.Handle(logger, make(sessions.E2Sessions), &notificationRequest, nil)
+       ranReconnectionManagerMock.AssertCalled(t, "ReconnectRan", ranName)
+}
+
 //
 //func TestHandleUnsolicitedDisconnectionNotConnectedSuccess(t *testing.T){
 //     log, err := logger.InitLogger(logger.DebugLevel)