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: nngpub_test.go
28 "routing-manager/pkg/rtmgr"
29 "routing-manager/pkg/stub"
34 Returns an error free Socket instance
36 func createNewStubPubSocket() (NngSocket, error) {
37 socket := stub.MangosSocket{}
44 func createNewStubPubSocketError() (NngSocket, error) {
45 return nil, errors.New("stub generated Create Socket error")
49 Returns a Socket which always generates error on Close()
51 func createNewStubPubSocketCloseError() (NngSocket, error) {
52 socket := stub.MangosSocket{}
53 socket.GenerateSocketCloseError = true
58 Returns a Socket which always generates error on Listen()
60 func createNewStubPubSocketListenError() (NngSocket, error) {
61 socket := stub.MangosSocket{}
62 socket.GenerateSocketListenError = true
67 Returns a Socket which always generates error on Send()
69 func createNewStubPubSocketSendError() (NngSocket, error) {
70 socket := stub.MangosSocket{}
71 socket.GenerateSocketSendError = true
76 Resets the EndpointList according to argumnets
78 func resetTestPubDataset(instance NngPub, 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 nngPub.Initialize() method is tested for happy path case
90 func TestNngPubInitialize(t *testing.T) {
92 nngpub.NewSocket = createNewStubPubSocket
94 err := nngpub.Initialize("")
96 t.Errorf("nngPub.Initialize() was incorrect, got: %v, want: %v.", err, nil)
101 nngPub.Initialize() is tested for Socket creating error case
103 func TestNngPubInitializeWithSocketError(t *testing.T) {
104 var nngpub = NngPub{}
105 nngpub.NewSocket = createNewStubPubSocketError
107 err := nngpub.Initialize("")
109 t.Errorf("nngPub.Initialize() was incorrect, got: %v, want: %v.", nil, "error")
114 nngPub.Initialize() is tested for Socket listening error case
116 func TestNngPubInitializeWithSocketListenError(t *testing.T) {
117 var nngpub = NngPub{}
118 nngpub.NewSocket = createNewStubPubSocketListenError
120 err := nngpub.Initialize("")
122 t.Errorf("nngPub.Initialize() was incorrect, got: %v, want: %v.", nil, "error")
127 nngPub.Terminate() method is empty, nothing to be tested
129 func TestNngPubTerminate(t *testing.T) {
130 var nngpub = NngPub{}
131 nngpub.NewSocket = createNewStubPubSocket
132 nngpub.Initialize("")
134 err := nngpub.Terminate()
136 t.Errorf("nngPub.Terminate() was incorrect, got: %v, want: %v.", err, nil)
141 nngPub.Terminate() is tested for Socket closing error case
143 func TestNngPubTerminateWithSocketCloseError(t *testing.T) {
144 var nngpub = NngPub{}
145 nngpub.NewSocket = createNewStubPubSocketCloseError
146 nngpub.Initialize("")
148 err := nngpub.Terminate()
150 t.Errorf("nngPub.Terminate() was incorrect, got: %v, want: %v.", nil, "error")
155 nngPub.UpdateEndpoints() is testd against stub.ValidXapps dataset
157 func TestNngPubUpdateEndpoints(t *testing.T) {
158 var nngpub = NngPub{}
159 nngpub.NewSocket = createNewStubPubSocket
160 nngpub.Initialize("")
161 rtmgr.Eps = make(rtmgr.Endpoints)
162 nngpub.UpdateEndpoints(&stub.ValidRicComponents)
163 if rtmgr.Eps == nil {
164 t.Errorf("nngPub.UpdateEndpoints() result was incorrect, got: %v, want: %v.", nil, "rtmgr.Endpoints")
169 nngPub.AddEndpoint() method is empty, nothing to be tested
171 func TestNngPubAddEndpoint(t *testing.T) {
172 var nngpub = NngPub{}
173 nngpub.NewSocket = createNewStubPubSocket
175 _ = nngpub.AddEndpoint(new(rtmgr.Endpoint))
179 nngPub.DeleteEndpoint() method is empty, nothing to be tested
181 func TestNngPubDeleteEndpoint(t *testing.T) {
182 var nngpub = NngPub{}
183 nngpub.NewSocket = createNewStubPubSocket
185 _ = nngpub.DeleteEndpoint(new(rtmgr.Endpoint))
189 nngPub.DistributeAll() is tested for happy path case
191 func TestNngPubDistributeAll(t *testing.T) {
192 var nngpub = NngPub{}
193 nngpub.NewSocket = createNewStubPubSocket
194 nngpub.Initialize("")
195 resetTestPubDataset(nngpub, stub.ValidEndpoints)
197 err := nngpub.DistributeAll(stub.ValidPolicies)
199 t.Errorf("nngPub.DistributeAll(policies) was incorrect, got: %v, want: %v.", err, nil)
204 nngPub.DistributeAll() is tested for Sending error case
206 func TestNngPubDistributeAllSocketSendError(t *testing.T) {
207 var nngpub = NngPub{}
208 nngpub.NewSocket = createNewStubPubSocketSendError
209 nngpub.Initialize("")
210 resetTestPubDataset(nngpub, stub.ValidEndpoints)
212 err := nngpub.DistributeAll(stub.ValidPolicies)
214 t.Errorf("nngPub.DistributeAll(policies) was incorrect, got: %v, want: %v.", nil, "error")