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.
17 ==================================================================================
20 Mnemonic: nngpush_test.go
28 "routing-manager/pkg/rtmgr"
29 "routing-manager/pkg/stub"
34 Returns an error free Socket instance
36 func createNewStubPushSocket() (NngSocket, error) {
37 socket := stub.MangosSocket{}
44 func createNewStubPushSocketError() (NngSocket, error) {
45 return nil, errors.New("stub generated Create Socket error")
49 Returns a Socket which always generates error on Close()
51 func createNewStubPushSocketCloseError() (NngSocket, error) {
52 socket := stub.MangosSocket{}
53 socket.GenerateSocketCloseError = true
58 Returns a Socket which always generates error on Send()
60 func createNewStubPushSocketSendError() (NngSocket, error) {
61 socket := stub.MangosSocket{}
62 socket.GenerateSocketSendError = true
67 Returns a Socket which always generates error on Dial()
69 func createNewStubPushSocketDialError() (NngSocket, error) {
70 socket := stub.MangosSocket{}
71 socket.GenerateSocketDialError = true
76 Resets the EndpointList according to argumnets
78 func resetTestPushDataset(instance NngPush, testdata []rtmgr.Endpoint) {
79 rtmgr.Eps = make(map[string]*rtmgr.Endpoint)
80 for _, endpoint := range testdata {
82 ep.Socket, _ = instance.NewSocket()
83 rtmgr.Eps[ep.Uuid] = &ep
88 nngpush.Initialize() method is empty, nothing to be tested
90 func TestNngPushInitialize(t *testing.T) {
91 var nngpush = NngPush{}
92 nngpush.NewSocket = createNewStubPushSocket
94 _ = nngpush.Initialize("")
98 nngpush.Terminate() method is empty, nothing to be tested
100 func TestNngPushTerminate(t *testing.T) {
101 var nngpush = NngPush{}
102 nngpush.NewSocket = createNewStubPushSocket
104 _ = nngpush.Terminate()
108 nngpush.UpdateEndpoints() is testd against stub.ValidXapps dataset
110 func TestNngPushUpdateEndpoints(t *testing.T) {
111 var nngpush = NngPush{}
112 nngpush.NewSocket = createNewStubPushSocket
113 rtmgr.Eps = make(rtmgr.Endpoints)
115 nngpush.UpdateEndpoints(&stub.ValidRicComponents)
116 if rtmgr.Eps == nil {
117 t.Errorf("nngpush.UpdateEndpoints() result was incorrect, got: %v, want: %v.", nil, "rtmgr.Endpoints")
122 nngpush.AddEndpoint() is tested for happy path case
124 func TestNngPushAddEndpoint(t *testing.T) {
126 var nngpush = NngPush{}
127 nngpush.NewSocket = createNewStubPushSocket
128 resetTestPushDataset(nngpush, stub.ValidEndpoints)
130 err = nngpush.AddEndpoint(rtmgr.Eps["10.0.0.1:0"])
132 t.Errorf("nngpush.AddEndpoint() return was incorrect, got: %v, want: %v.", err, "nil")
134 if rtmgr.Eps["10.0.0.1:0"].Socket == nil {
135 t.Errorf("nngpush.AddEndpoint() was incorrect, got: %v, want: %v.", nil, "Socket")
140 nngpush.AddEndpoint() is tested for Socket creating error case
142 func TestNngPushAddEndpointWithSocketError(t *testing.T) {
144 var nngpush = NngPush{}
145 nngpush.NewSocket = createNewStubPushSocketError
146 resetTestPushDataset(nngpush, stub.ValidEndpoints)
148 err = nngpush.AddEndpoint(rtmgr.Eps["10.0.0.1:0"])
150 t.Errorf("nngpush.AddEndpoint() was incorrect, got: %v, want: %v.", nil, "error")
152 if rtmgr.Eps["10.0.0.1:0"].Socket != nil {
153 t.Errorf("nngpush.AddEndpoint() was incorrect, got: %v, want: %v.", rtmgr.Eps["10.0.0.1:0"].Socket, nil)
158 nngpush.AddEndpoint() is tested for Dialing error case
160 func TestNngPushAddEndpointWithSocketDialError(t *testing.T) {
162 var nngpush = NngPush{}
163 nngpush.NewSocket = createNewStubPushSocketDialError
164 resetTestPushDataset(nngpush, stub.ValidEndpoints)
166 err = nngpush.AddEndpoint(rtmgr.Eps["10.0.0.1:0"])
168 t.Errorf("nngpush.AddEndpoint() was incorrect, got: %v, want: %v.", nil, "error")
173 nngpush.DistributeAll() is tested for happy path case
175 func TestNngPushDistributeAll(t *testing.T) {
177 var nngpush = NngPush{}
178 nngpush.NewSocket = createNewStubPushSocket
179 resetTestPushDataset(nngpush, stub.ValidEndpoints)
181 err = nngpush.DistributeAll(stub.ValidPolicies)
183 t.Errorf("nngpush.DistributeAll(policies) was incorrect, got: %v, want: %v.", err, "nil")
188 nngpush.DistributeAll() is tested for Sending error case
190 func TestNngPushDistributeAllSocketSendError(t *testing.T) {
192 var nngpush = NngPush{}
193 nngpush.NewSocket = createNewStubPushSocketSendError
194 resetTestPushDataset(nngpush, stub.ValidEndpoints)
196 err = nngpush.DistributeAll(stub.ValidPolicies)
198 t.Errorf("nngpush.DistributeAll(policies) was incorrect, got: %v, want: %v.", err, "nil")
202 func TestNngPushDeleteEndpoint(t *testing.T) {
204 var nngpush = NngPush{}
205 nngpush.NewSocket = createNewStubPushSocket
206 resetTestPushDataset(nngpush, stub.ValidEndpoints)
208 err = nngpush.DeleteEndpoint(rtmgr.Eps["10.0.0.1:0"])
210 t.Errorf("nngpush.DeleteEndpoint() was incorrect, got: %v, want: %v.", err, "nil")
214 func TestNngPushDeleteEndpointWithSocketCloseError(t *testing.T) {
216 var nngpush = NngPush{}
217 nngpush.NewSocket = createNewStubPushSocketCloseError
218 resetTestPushDataset(nngpush, stub.ValidEndpoints)
220 err = nngpush.DeleteEndpoint(rtmgr.Eps["10.1.1.1:0"])
222 t.Errorf("nngpush.DeleteEndpoint() was incorrect, got: %v, want: %v.", nil, "error")