30ba64571d123188316586ba9617c58c59c6b7cd
[ric-plt/e2mgr.git] / E2Manager / handlers / rmrmsghandlers / x2enb_configuration_update_handler_test.go
1 //
2 // Copyright 2019 AT&T Intellectual Property
3 // Copyright 2019 Nokia
4 //
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
8 //
9 //      http://www.apache.org/licenses/LICENSE-2.0
10 //
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.
16 //
17 package rmrmsghandlers
18
19 import (
20         "e2mgr/mocks"
21         "e2mgr/models"
22         "e2mgr/rmrCgo"
23         "fmt"
24         "testing"
25         "time"
26 )
27
28 const PackedX2EnbConfigurationUpdateAck = "200800080000010011400100"
29 const PackedX2EnbConfigurationUpdateFailure = "400800080000010005400142"
30
31 func initX2EnbConfigurationUpdateHandlerTest(t *testing.T) (X2EnbConfigurationUpdateHandler, *mocks.RmrMessengerMock) {
32         log := initLog(t)
33         rmrMessengerMock := &mocks.RmrMessengerMock{}
34         rmrSender := initRmrSender(rmrMessengerMock, log)
35         h := NewX2EnbConfigurationUpdateHandler(log, rmrSender)
36         return h, rmrMessengerMock
37 }
38
39 func TestHandleX2EnbConfigUpdateSuccess(t *testing.T) {
40         h, rmrMessengerMock := initX2EnbConfigurationUpdateHandlerTest(t)
41
42         ranName := "test"
43         xaction := []byte(ranName)
44
45         var payload []byte
46         _, _ = fmt.Sscanf(PackedX2EnbConfigurationUpdateAck, "%x", &payload)
47
48         mBuf := rmrCgo.NewMBuf(rmrCgo.RIC_ENB_CONFIGURATION_UPDATE_ACK, len(payload), ranName, &payload, &xaction)
49         notificationRequest := models.NotificationRequest{RanName: mBuf.Meid, Len: mBuf.Len, Payload: *mBuf.Payload, StartTime: time.Now()}
50         var err error
51         rmrMessengerMock.On("SendMsg", mBuf).Return(&rmrCgo.MBuf{}, err)
52         h.Handle(&notificationRequest)
53         rmrMessengerMock.AssertCalled(t, "SendMsg", mBuf)
54 }
55
56 func TestHandleX2EnbConfigUpdateFailure(t *testing.T) {
57         h, rmrMessengerMock := initX2EnbConfigurationUpdateHandlerTest(t)
58
59         ranName := "test"
60         xaction := []byte(ranName)
61
62         var payload []byte
63         _, _ = fmt.Sscanf(PackedX2EnbConfigurationUpdateFailure, "%x", &payload)
64
65         mBuf := rmrCgo.NewMBuf(rmrCgo.RIC_ENB_CONFIGURATION_UPDATE_FAILURE, len(payload), ranName, &payload, &xaction)
66         notificationRequest := models.NotificationRequest{RanName: mBuf.Meid, Len: 0, Payload: []byte{0}, StartTime: time.Now()}
67         rmrMessengerMock.On("SendMsg", mBuf).Return(&rmrCgo.MBuf{}, fmt.Errorf("send failure"))
68         h.Handle(&notificationRequest)
69         rmrMessengerMock.AssertCalled(t, "SendMsg", mBuf)
70 }