2 ==================================================================================
3 Copyright (c) 2019 AT&T Intellectual Property.
4 Copyright (c) 2019 Nokia
6 Licensed under the Apache License, Version 2.0 (the "License");
7 you may not use this file except in compliance with the License.
8 You may obtain a copy of the License at
10 http://www.apache.org/licenses/LICENSE-2.0
12 Unless required by applicable law or agreed to in writing, software
13 distributed under the License is distributed on an "AS IS" BASIS,
14 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 See the License for the specific language governing permissions and
16 limitations under the License.
18 This source code is part of the near-RT RIC (RAN Intelligent Controller)
19 platform project (RICP).
21 ==================================================================================
24 Mnemonic: nngpush_test.go
32 "routing-manager/pkg/rtmgr"
33 "routing-manager/pkg/stub"
38 Returns an error free Socket instance
40 func createNewStubPushSocket() (NngSocket, error) {
41 socket := stub.MangosSocket{}
48 func createNewStubPushSocketError() (NngSocket, error) {
49 return nil, errors.New("stub generated Create Socket error")
53 Returns a Socket which always generates error on Close()
55 func createNewStubPushSocketCloseError() (NngSocket, error) {
56 socket := stub.MangosSocket{}
57 socket.GenerateSocketCloseError = true
62 Returns a Socket which always generates error on Send()
64 func createNewStubPushSocketSendError() (NngSocket, error) {
65 socket := stub.MangosSocket{}
66 socket.GenerateSocketSendError = true
71 Returns a Socket which always generates error on Dial()
73 func createNewStubPushSocketDialError() (NngSocket, error) {
74 socket := stub.MangosSocket{}
75 socket.GenerateSocketDialError = true
80 Resets the EndpointList according to argumnets
82 func resetTestPushDataset(instance NngPush, testdata []rtmgr.Endpoint) {
83 rtmgr.Eps = make(map[string]*rtmgr.Endpoint)
84 for _, endpoint := range testdata {
86 ep.Socket, _ = instance.NewSocket()
87 rtmgr.Eps[ep.Uuid] = &ep
92 nngpush.Initialize() method is empty, nothing to be tested
94 func TestNngPushInitialize(t *testing.T) {
95 var nngpush = NngPush{}
96 nngpush.NewSocket = createNewStubPushSocket
98 _ = nngpush.Initialize("")
102 nngpush.Terminate() method is empty, nothing to be tested
104 func TestNngPushTerminate(t *testing.T) {
105 var nngpush = NngPush{}
106 nngpush.NewSocket = createNewStubPushSocket
108 _ = nngpush.Terminate()
112 nngpush.UpdateEndpoints() is testd against stub.ValidXApps dataset
114 func TestNngPushUpdateEndpoints(t *testing.T) {
115 var nngpush = NngPush{}
116 nngpush.NewSocket = createNewStubPushSocket
117 rtmgr.Eps = make(rtmgr.Endpoints)
119 nngpush.UpdateEndpoints(&stub.ValidRicComponents)
120 if rtmgr.Eps == nil {
121 t.Errorf("nngpush.UpdateEndpoints() result was incorrect, got: %v, want: %v.", nil, "rtmgr.Endpoints")
126 nngpush.AddEndpoint() is tested for happy path case
128 func TestNngPushAddEndpoint(t *testing.T) {
130 var nngpush = NngPush{}
131 nngpush.NewSocket = createNewStubPushSocket
132 resetTestPushDataset(nngpush, stub.ValidEndpoints)
134 err = nngpush.AddEndpoint(rtmgr.Eps["10.0.0.1:0"])
136 t.Errorf("nngpush.AddEndpoint() return was incorrect, got: %v, want: %v.", err, "nil")
138 if rtmgr.Eps["10.0.0.1:0"].Socket == nil {
139 t.Errorf("nngpush.AddEndpoint() was incorrect, got: %v, want: %v.", nil, "Socket")
144 nngpush.AddEndpoint() is tested for Socket creating error case
146 func TestNngPushAddEndpointWithSocketError(t *testing.T) {
148 var nngpush = NngPush{}
149 nngpush.NewSocket = createNewStubPushSocketError
150 resetTestPushDataset(nngpush, stub.ValidEndpoints)
152 err = nngpush.AddEndpoint(rtmgr.Eps["10.0.0.1:0"])
154 t.Errorf("nngpush.AddEndpoint() was incorrect, got: %v, want: %v.", nil, "error")
156 if rtmgr.Eps["10.0.0.1:0"].Socket != nil {
157 t.Errorf("nngpush.AddEndpoint() was incorrect, got: %v, want: %v.", rtmgr.Eps["10.0.0.1:0"].Socket, nil)
162 nngpush.AddEndpoint() is tested for Dialing error case
164 func TestNngPushAddEndpointWithSocketDialError(t *testing.T) {
166 var nngpush = NngPush{}
167 nngpush.NewSocket = createNewStubPushSocketDialError
168 resetTestPushDataset(nngpush, stub.ValidEndpoints)
170 err = nngpush.AddEndpoint(rtmgr.Eps["10.0.0.1:0"])
172 t.Errorf("nngpush.AddEndpoint() was incorrect, got: %v, want: %v.", nil, "error")
177 nngpush.DistributeAll() is tested for happy path case
179 func TestNngPushDistributeAll(t *testing.T) {
181 var nngpush = NngPush{}
182 nngpush.NewSocket = createNewStubPushSocket
183 resetTestPushDataset(nngpush, stub.ValidEndpoints)
185 err = nngpush.DistributeAll(stub.ValidPolicies)
187 t.Errorf("nngpush.DistributeAll(policies) was incorrect, got: %v, want: %v.", err, "nil")
192 nngpush.DistributeAll() is tested for Sending error case
194 func TestNngPushDistributeAllSocketSendError(t *testing.T) {
196 var nngpush = NngPush{}
197 nngpush.NewSocket = createNewStubPushSocketSendError
198 resetTestPushDataset(nngpush, stub.ValidEndpoints)
200 err = nngpush.DistributeAll(stub.ValidPolicies)
202 t.Errorf("nngpush.DistributeAll(policies) was incorrect, got: %v, want: %v.", err, "nil")
206 func TestNngPushDeleteEndpoint(t *testing.T) {
208 var nngpush = NngPush{}
209 nngpush.NewSocket = createNewStubPushSocket
210 resetTestPushDataset(nngpush, stub.ValidEndpoints)
212 err = nngpush.DeleteEndpoint(rtmgr.Eps["10.0.0.1:0"])
214 t.Errorf("nngpush.DeleteEndpoint() was incorrect, got: %v, want: %v.", err, "nil")
218 func TestNngPushDeleteEndpointWithSocketCloseError(t *testing.T) {
220 var nngpush = NngPush{}
221 nngpush.NewSocket = createNewStubPushSocketCloseError
222 resetTestPushDataset(nngpush, stub.ValidEndpoints)
224 err = nngpush.DeleteEndpoint(rtmgr.Eps["10.1.1.1:0"])
226 t.Errorf("nngpush.DeleteEndpoint() was incorrect, got: %v, want: %v.", nil, "error")