@@ -23,8 +23,13 @@ import (
2323var plugin NetPlugin
2424var mux * http.ServeMux
2525
26- var anyInterface = "test0 "
26+ var anyInterface = "dummy "
2727var anySubnet = "192.168.1.0/24"
28+ var ipnet = net.IPNet {IP : net .ParseIP ("192.168.1.0" ), Mask : net .IPv4Mask (255 , 255 , 255 , 0 )}
29+ var networkID = "N1"
30+
31+ // endpoint ID must contain 7 characters
32+ var endpointID = "E1-xxxx"
2833
2934// Wraps the test run with plugin setup and teardown.
3035func TestMain (m * testing.M ) {
@@ -52,7 +57,7 @@ func TestMain(m *testing.M) {
5257 err = netlink .AddLink (& netlink.DummyLink {
5358 LinkInfo : netlink.LinkInfo {
5459 Type : netlink .LINK_TYPE_DUMMY ,
55- Name : "dummy" ,
60+ Name : anyInterface ,
5661 },
5762 })
5863
@@ -67,6 +72,12 @@ func TestMain(m *testing.M) {
6772 os .Exit (4 )
6873 }
6974
75+ err = netlink .AddIpAddress (anyInterface , net .ParseIP ("192.168.1.4" ), & ipnet )
76+ if err != nil {
77+ fmt .Printf ("Failed to add test IP address, err:%v.\n " , err )
78+ os .Exit (5 )
79+ }
80+
7081 // Get the internal http mux as test hook.
7182 mux = plugin .(* netPlugin ).Listener .GetMux ()
7283
@@ -83,7 +94,7 @@ func TestMain(m *testing.M) {
8394// Decodes plugin's responses to test requests.
8495func decodeResponse (w * httptest.ResponseRecorder , response interface {}) error {
8596 if w .Code != http .StatusOK {
86- return fmt .Errorf ("Request failed with HTTP error %s " , w .Code )
97+ return fmt .Errorf ("Request failed with HTTP error %d " , w .Code )
8798 }
8899
89100 if w .Body == nil {
@@ -144,7 +155,7 @@ func TestCreateNetwork(t *testing.T) {
144155 _ , pool , _ := net .ParseCIDR (anySubnet )
145156
146157 info := & remoteApi.CreateNetworkRequest {
147- NetworkID : "N1" ,
158+ NetworkID : networkID ,
148159 IPv4Data : []driverApi.IPAMData {
149160 {
150161 Pool : pool ,
@@ -164,23 +175,25 @@ func TestCreateNetwork(t *testing.T) {
164175
165176 err = decodeResponse (w , & resp )
166177
167- if err != nil || resp .Err != "" {
178+ if err != nil || resp .Response . Err != "" {
168179 t .Errorf ("CreateNetwork response is invalid %+v" , resp )
169180 }
170181}
171182
172- // Tests NetworkDriver.DeleteNetwork functionality.
173- func TestDeleteNetwork (t * testing.T ) {
183+ // Tests NetworkDriver.CreateEndpoint functionality.
184+ func TestCreateEndpoint (t * testing.T ) {
174185 var body bytes.Buffer
175- var resp remoteApi.DeleteNetworkResponse
186+ var resp remoteApi.CreateEndpointResponse
176187
177- info := & remoteApi.DeleteNetworkRequest {
178- NetworkID : "N1" ,
188+ info := & remoteApi.CreateEndpointRequest {
189+ NetworkID : networkID ,
190+ EndpointID : endpointID ,
191+ Interface : & remoteApi.EndpointInterface {Address : anySubnet },
179192 }
180193
181194 json .NewEncoder (& body ).Encode (info )
182195
183- req , err := http .NewRequest (http .MethodGet , deleteNetworkPath , & body )
196+ req , err := http .NewRequest (http .MethodGet , createEndpointPath , & body )
184197 if err != nil {
185198 t .Fatal (err )
186199 }
@@ -190,8 +203,8 @@ func TestDeleteNetwork(t *testing.T) {
190203
191204 err = decodeResponse (w , & resp )
192205
193- if err != nil || resp .Err != "" {
194- t .Errorf ("DeleteNetwork response is invalid %+v" , resp )
206+ if err != nil || resp .Response . Err != "" {
207+ t .Errorf ("CreateEndpoint response is invalid %+v" , resp )
195208 }
196209}
197210
@@ -201,8 +214,8 @@ func TestEndpointOperInfo(t *testing.T) {
201214 var resp remoteApi.EndpointInfoResponse
202215
203216 info := & remoteApi.EndpointInfoRequest {
204- NetworkID : "N1" ,
205- EndpointID : "E1" ,
217+ NetworkID : networkID ,
218+ EndpointID : endpointID ,
206219 }
207220
208221 json .NewEncoder (& body ).Encode (info )
@@ -216,8 +229,33 @@ func TestEndpointOperInfo(t *testing.T) {
216229 mux .ServeHTTP (w , req )
217230
218231 err = decodeResponse (w , & resp )
219-
220232 if err != nil || resp .Err != "" {
221233 t .Errorf ("EndpointOperInfo response is invalid %+v" , resp )
222234 }
223235}
236+
237+ // Tests NetworkDriver.DeleteNetwork functionality.
238+ func TestDeleteNetwork (t * testing.T ) {
239+ var body bytes.Buffer
240+ var resp remoteApi.DeleteNetworkResponse
241+
242+ info := & remoteApi.DeleteNetworkRequest {
243+ NetworkID : networkID ,
244+ }
245+
246+ json .NewEncoder (& body ).Encode (info )
247+
248+ req , err := http .NewRequest (http .MethodGet , deleteNetworkPath , & body )
249+ if err != nil {
250+ t .Fatal (err )
251+ }
252+
253+ w := httptest .NewRecorder ()
254+ mux .ServeHTTP (w , req )
255+
256+ err = decodeResponse (w , & resp )
257+
258+ if err != nil || resp .Err != "" {
259+ t .Errorf ("DeleteNetwork response is invalid %+v" , resp )
260+ }
261+ }
0 commit comments