2 //// Copyright 2019 AT&T Intellectual Property
3 //// Copyright 2019 Nokia
5 //// Licensed under the Apache License, Version 2.0 (the "License");
6 //// you may not use this file except in compliance with the License.
7 //// You may obtain a copy of the License at
9 //// http://www.apache.org/licenses/LICENSE-2.0
11 //// Unless required by applicable law or agreed to in writing, software
12 //// distributed under the License is distributed on an "AS IS" BASIS,
13 //// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 //// See the License for the specific language governing permissions and
15 //// limitations under the License.
24 "github.com/pkg/errors"
28 func TestLostConnectionHandlerSuccess(t *testing.T) {
29 logger, _ := logger.InitLogger(logger.InfoLevel)
31 notificationRequest := models.NotificationRequest{RanName: ranName}
32 ranReconnectionManagerMock := &mocks.RanReconnectionManagerMock{}
33 ranReconnectionManagerMock.On("ReconnectRan", ranName).Return(nil)
34 handler := NewRanLostConnectionHandler(ranReconnectionManagerMock)
35 handler.Handle(logger, make(sessions.E2Sessions), ¬ificationRequest, nil)
36 ranReconnectionManagerMock.AssertCalled(t, "ReconnectRan", ranName)
39 func TestLostConnectionHandlerFailure(t *testing.T) {
40 logger, _ := logger.InitLogger(logger.InfoLevel)
42 notificationRequest := models.NotificationRequest{RanName: ranName}
43 ranReconnectionManagerMock := &mocks.RanReconnectionManagerMock{}
44 ranReconnectionManagerMock.On("ReconnectRan", ranName).Return(errors.New("error"))
45 handler := NewRanLostConnectionHandler(ranReconnectionManagerMock)
46 handler.Handle(logger, make(sessions.E2Sessions), ¬ificationRequest, nil)
47 ranReconnectionManagerMock.AssertCalled(t, "ReconnectRan", ranName)
51 //func TestHandleUnsolicitedDisconnectionNotConnectedSuccess(t *testing.T){
52 // log, err := logger.InitLogger(logger.DebugLevel)
54 // t.Errorf("#sctp_errors_notification_handler_test.TestHandleNoSession - failed to initialize logger, error: %s", err)
57 // readerMock :=&mocks.RnibReaderMock{}
58 // rnibReaderProvider := func() reader.RNibReader {
61 // writerMock := &mocks.RnibWriterMock{}
62 // rnibWriterProvider := func() rNibWriter.RNibWriter {
65 // h := NewRanLostConnectionHandler(rnibReaderProvider,rnibWriterProvider)
67 // e2Sessions := make(sessions.E2Sessions)
68 // transactionId := "1234"
69 // xaction := []byte(fmt.Sprintf("%32s", transactionId+"6"))
70 // e2Sessions[transactionId] = sessions.E2SessionDetails{SessionStart: time.Now()}
71 // payload := []byte("Error")
72 // mBuf := rmrCgo.NewMBuf(tests.MessageType, len(payload),"RanName", &payload, &xaction)
73 // notificationRequest := models.NotificationRequest{RanName: mBuf.Meid, Len: mBuf.Len, Payload: *mBuf.Payload, StartTime: time.Now(),
74 // TransactionId: string(xaction)}
75 // var messageChannel chan<- *models.NotificationResponse
77 // nb := &entities.NodebInfo{RanName:mBuf.Meid, ConnectionStatus:entities.ConnectionStatus_DISCONNECTED,}
78 // var rnibErr common.IRNibError
79 // readerMock.On("GetNodeb", mBuf.Meid).Return(nb, rnibErr)
80 // updatedNb := &entities.NodebInfo{RanName:mBuf.Meid, ConnectionStatus:entities.ConnectionStatus_DISCONNECTED,}
81 // writerMock.On("SaveNodeb", mock.Anything, updatedNb).Return(rnibErr)
83 // h.Handle(log,e2Sessions, ¬ificationRequest, messageChannel)
86 //func TestHandleUnsolicitedDisconnectionShuttingDownSuccess(t *testing.T){
87 // log, err := logger.InitLogger(logger.DebugLevel)
89 // t.Errorf("#sctp_errors_notification_handler_test.TestHandleNoSession - failed to initialize logger, error: %s", err)
92 // readerMock :=&mocks.RnibReaderMock{}
93 // rnibReaderProvider := func() reader.RNibReader {
96 // writerMock := &mocks.RnibWriterMock{}
97 // rnibWriterProvider := func() rNibWriter.RNibWriter {
100 // h := NewRanLostConnectionHandler(rnibReaderProvider,rnibWriterProvider)
102 // e2Sessions := make(sessions.E2Sessions)
103 // transactionId := "1234"
104 // xaction := []byte(fmt.Sprintf("%32s", transactionId+"6"))
105 // e2Sessions[transactionId] = sessions.E2SessionDetails{SessionStart: time.Now()}
106 // payload := []byte("Error")
107 // mBuf := rmrCgo.NewMBuf(tests.MessageType, len(payload),"RanName", &payload, &xaction)
108 // notificationRequest := models.NotificationRequest{RanName: mBuf.Meid, Len: mBuf.Len, Payload: *mBuf.Payload, StartTime: time.Now(),
109 // TransactionId: string(xaction)}
110 // var messageChannel chan<- *models.NotificationResponse
112 // nb := &entities.NodebInfo{RanName:mBuf.Meid, ConnectionStatus:entities.ConnectionStatus_SHUTTING_DOWN,}
113 // var rnibErr common.IRNibError
114 // readerMock.On("GetNodeb", mBuf.Meid).Return(nb, rnibErr)
115 // updatedNb := &entities.NodebInfo{RanName:mBuf.Meid, ConnectionStatus:entities.ConnectionStatus_SHUT_DOWN,}
116 // writerMock.On("SaveNodeb", mock.Anything, updatedNb).Return(rnibErr)
118 // h.Handle(log,e2Sessions, ¬ificationRequest, messageChannel)
121 //func TestHandleUnsolicitedDisconnectionShutDownSuccess(t *testing.T){
122 // log, err := logger.InitLogger(logger.DebugLevel)
124 // t.Errorf("#sctp_errors_notification_handler_test.TestHandleNoSession - failed to initialize logger, error: %s", err)
127 // readerMock :=&mocks.RnibReaderMock{}
128 // rnibReaderProvider := func() reader.RNibReader {
131 // writerMock := &mocks.RnibWriterMock{}
132 // rnibWriterProvider := func() rNibWriter.RNibWriter {
135 // h := NewRanLostConnectionHandler(rnibReaderProvider,rnibWriterProvider)
137 // e2Sessions := make(sessions.E2Sessions)
138 // transactionId := "1234"
139 // xaction := []byte(fmt.Sprintf("%32s", transactionId+"6"))
140 // e2Sessions[transactionId] = sessions.E2SessionDetails{SessionStart: time.Now()}
141 // payload := []byte("Error")
142 // mBuf := rmrCgo.NewMBuf(tests.MessageType, len(payload),"RanName", &payload, &xaction)
143 // notificationRequest := models.NotificationRequest{RanName: mBuf.Meid, Len: mBuf.Len, Payload: *mBuf.Payload, StartTime: time.Now(),
144 // TransactionId: string(xaction)}
145 // var messageChannel chan<- *models.NotificationResponse
147 // nb := &entities.NodebInfo{RanName:mBuf.Meid, ConnectionStatus:entities.ConnectionStatus_SHUT_DOWN,}
148 // var rnibErr common.IRNibError
149 // readerMock.On("GetNodeb", mBuf.Meid).Return(nb, rnibErr)
150 // updatedNb := &entities.NodebInfo{RanName:mBuf.Meid, ConnectionStatus:entities.ConnectionStatus_SHUT_DOWN,}
151 // writerMock.On("SaveNodeb", mock.Anything, updatedNb).Return(rnibErr)
153 // h.Handle(log,e2Sessions, ¬ificationRequest, messageChannel)
156 //func TestHandleUnsolicitedDisconnectionReaderFailure(t *testing.T){
157 // log, err := logger.InitLogger(logger.DebugLevel)
159 // t.Errorf("#sctp_errors_notification_handler_test.TestHandleNoSession - failed to initialize logger, error: %s", err)
162 // readerMock :=&mocks.RnibReaderMock{}
163 // rnibReaderProvider := func() reader.RNibReader {
166 // writerMock := &mocks.RnibWriterMock{}
167 // rnibWriterProvider := func() rNibWriter.RNibWriter {
170 // h := NewRanLostConnectionHandler(rnibReaderProvider,rnibWriterProvider)
172 // e2Sessions := make(sessions.E2Sessions)
173 // transactionId := "1234"
174 // xaction := []byte(fmt.Sprintf("%32s", transactionId+"6"))
175 // e2Sessions[transactionId] = sessions.E2SessionDetails{SessionStart: time.Now()}
176 // payload := []byte("Error")
177 // mBuf := rmrCgo.NewMBuf(tests.MessageType, len(payload),"RanName", &payload, &xaction)
178 // notificationRequest := models.NotificationRequest{RanName: mBuf.Meid, Len: mBuf.Len, Payload: *mBuf.Payload, StartTime: time.Now(),
179 // TransactionId: string(xaction)}
180 // var messageChannel chan<- *models.NotificationResponse
182 // var nb *entities.NodebInfo
183 // rnibErr := common.RNibError{}
184 // readerMock.On("GetNodeb", mBuf.Meid).Return(nb, rnibErr)
185 // h.Handle(log,e2Sessions, ¬ificationRequest, messageChannel)
188 //func TestHandleUnsolicitedDisconnectionWriterFailure(t *testing.T){
189 // log, err := logger.InitLogger(logger.DebugLevel)
191 // t.Errorf("#sctp_errors_notification_handler_test.TestHandleNoSession - failed to initialize logger, error: %s", err)
194 // readerMock :=&mocks.RnibReaderMock{}
195 // rnibReaderProvider := func() reader.RNibReader {
198 // writerMock := &mocks.RnibWriterMock{}
199 // rnibWriterProvider := func() rNibWriter.RNibWriter {
202 // h := NewRanLostConnectionHandler(rnibReaderProvider,rnibWriterProvider)
204 // e2Sessions := make(sessions.E2Sessions)
205 // transactionId := "1234"
206 // xaction := []byte(fmt.Sprintf("%32s", transactionId+"6"))
207 // e2Sessions[transactionId] = sessions.E2SessionDetails{SessionStart: time.Now()}
208 // payload := []byte("Error")
209 // mBuf := rmrCgo.NewMBuf(tests.MessageType, len(payload),"RanName", &payload, &xaction)
210 // notificationRequest := models.NotificationRequest{RanName: mBuf.Meid, Len: mBuf.Len, Payload: *mBuf.Payload, StartTime: time.Now(),
211 // TransactionId: string(xaction)}
212 // var messageChannel chan<- *models.NotificationResponse
214 // nb := &entities.NodebInfo{RanName:mBuf.Meid, ConnectionStatus:entities.ConnectionStatus_CONNECTED,}
215 // var rnibErr common.IRNibError
216 // readerMock.On("GetNodeb", mBuf.Meid).Return(nb, rnibErr)
217 // updatedNb := &entities.NodebInfo{RanName:mBuf.Meid, ConnectionStatus:entities.ConnectionStatus_DISCONNECTED,}
218 // writerMock.On("SaveNodeb", mock.Anything, updatedNb).Return(common.RNibError{})
220 // h.Handle(log,e2Sessions, ¬ificationRequest, messageChannel)