RIC-997: ErrorIndication handling in e2mgr
[ric-plt/e2mgr.git] / E2Manager / managers / ran_status_change_manager_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 //  This source code is part of the near-RT RIC (RAN Intelligent Controller)
18 //  platform project (RICP).
19
20 package managers
21
22 import (
23         "e2mgr/enums"
24         "e2mgr/logger"
25         "e2mgr/mocks"
26         "e2mgr/rmrCgo"
27         "e2mgr/services/rmrsender"
28         "gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/entities"
29         "github.com/stretchr/testify/assert"
30         "github.com/stretchr/testify/mock"
31         "testing"
32 )
33
34 func initRanStatusChangeManagerTest(t *testing.T) (*logger.Logger, *mocks.RmrMessengerMock, *rmrsender.RmrSender) {
35         DebugLevel := int8(4)
36         logger, err := logger.InitLogger(DebugLevel)
37         if err != nil {
38                 t.Fatalf("#initStatusChangeManagerTest - failed to initialize logger, error: %s", err)
39         }
40
41         rmrMessengerMock := &mocks.RmrMessengerMock{}
42         rmrSender := initRmrSender(rmrMessengerMock, logger)
43
44         return logger, rmrMessengerMock, rmrSender
45 }
46
47 func TestMarshalFailure(t *testing.T) {
48         logger, _, rmrSender := initRanStatusChangeManagerTest(t)
49         m := NewRanStatusChangeManager(logger, rmrSender)
50
51         nodebInfo := entities.NodebInfo{}
52         err := m.Execute(123, 4, &nodebInfo)
53
54         assert.NotNil(t, err)
55 }
56
57 func TestMarshalSuccess(t *testing.T) {
58         logger, rmrMessengerMock, rmrSender := initRanStatusChangeManagerTest(t)
59         m := NewRanStatusChangeManager(logger, rmrSender)
60
61         nodebInfo := entities.NodebInfo{NodeType: entities.Node_ENB}
62         var err error
63         rmrMessengerMock.On("SendMsg", mock.Anything, true).Return(&rmrCgo.MBuf{}, err)
64         err  = m.Execute(rmrCgo.RAN_CONNECTED, enums.RIC_TO_RAN, &nodebInfo)
65
66         assert.Nil(t, err)
67 }