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.
17 // This source code is part of the near-RT RIC (RAN Intelligent Controller)
18 // platform project (RICP).
20 package rmrmsghandlers
32 const PackedX2EnbConfigurationUpdateAck = "200800080000010011400100"
33 const PackedX2EnbConfigurationUpdateFailure = "400800080000010005400142"
35 func initX2EnbConfigurationUpdateHandlerTest(t *testing.T) (X2EnbConfigurationUpdateHandler, *mocks.RmrMessengerMock) {
37 rmrMessengerMock := &mocks.RmrMessengerMock{}
38 rmrSender := initRmrSender(rmrMessengerMock, log)
39 h := NewX2EnbConfigurationUpdateHandler(log, rmrSender)
40 return h, rmrMessengerMock
43 func TestHandleX2EnbConfigUpdateSuccess(t *testing.T) {
44 h, rmrMessengerMock := initX2EnbConfigurationUpdateHandlerTest(t)
47 xAction := []byte("123456aa")
49 _, _ = fmt.Sscanf(PackedX2EnbConfigurationUpdateAck, "%x", &payload)
50 var msgSrc unsafe.Pointer
52 mBuf := rmrCgo.NewMBuf(rmrCgo.RIC_ENB_CONFIGURATION_UPDATE_ACK, len(payload), ranName, &payload, &xAction, msgSrc)
53 notificationRequest := models.NotificationRequest{RanName: mBuf.Meid, Len: mBuf.Len, Payload: *mBuf.Payload,
54 StartTime: time.Now(), TransactionId:xAction}
56 rmrMessengerMock.On("SendMsg", mBuf, true).Return(&rmrCgo.MBuf{}, err)
57 h.Handle(¬ificationRequest)
58 rmrMessengerMock.AssertCalled(t, "SendMsg", mBuf, true)
61 func TestHandleX2EnbConfigUpdateFailure(t *testing.T) {
62 h, rmrMessengerMock := initX2EnbConfigurationUpdateHandlerTest(t)
65 xAction := []byte("123456aa")
68 _, _ = fmt.Sscanf(PackedX2EnbConfigurationUpdateFailure, "%x", &payload)
69 var msgSrc unsafe.Pointer
71 mBuf := rmrCgo.NewMBuf(rmrCgo.RIC_ENB_CONFIGURATION_UPDATE_FAILURE, len(payload), ranName, &payload, &xAction, msgSrc)
72 notificationRequest := models.NotificationRequest{RanName: mBuf.Meid, Len: 0, Payload: []byte{0},
73 StartTime: time.Now(), TransactionId:xAction}
74 rmrMessengerMock.On("SendMsg", mBuf, true).Return(&rmrCgo.MBuf{}, fmt.Errorf("send failure"))
75 h.Handle(¬ificationRequest)
76 rmrMessengerMock.AssertCalled(t, "SendMsg", mBuf, true)