github.com/campoy/docker@v1.8.0-rc1/integration-cli/docker_api_network_test.go (about) 1 // +build experimental 2 3 package main 4 5 import ( 6 "encoding/json" 7 "fmt" 8 "net/http" 9 10 "github.com/go-check/check" 11 ) 12 13 func isNetworkAvailable(c *check.C, name string) bool { 14 status, body, err := sockRequest("GET", "/networks", nil) 15 c.Assert(status, check.Equals, http.StatusOK) 16 c.Assert(err, check.IsNil) 17 18 var inspectJSON []struct { 19 Name string 20 ID string 21 Type string 22 } 23 if err = json.Unmarshal(body, &inspectJSON); err != nil { 24 c.Fatalf("unable to unmarshal response body: %v", err) 25 } 26 for _, n := range inspectJSON { 27 if n.Name == name { 28 return true 29 } 30 } 31 return false 32 33 } 34 35 func (s *DockerSuite) TestNetworkApiGetAll(c *check.C) { 36 defaults := []string{"bridge", "host", "none"} 37 for _, nn := range defaults { 38 if !isNetworkAvailable(c, nn) { 39 c.Fatalf("Missing Default network : %s", nn) 40 } 41 } 42 } 43 44 func (s *DockerSuite) TestNetworkApiCreateDelete(c *check.C) { 45 name := "testnetwork" 46 config := map[string]interface{}{ 47 "name": name, 48 "network_type": "bridge", 49 } 50 51 status, resp, err := sockRequest("POST", "/networks", config) 52 c.Assert(status, check.Equals, http.StatusCreated) 53 c.Assert(err, check.IsNil) 54 55 if !isNetworkAvailable(c, name) { 56 c.Fatalf("Network %s not found", name) 57 } 58 59 var id string 60 err = json.Unmarshal(resp, &id) 61 if err != nil { 62 c.Fatal(err) 63 } 64 65 status, _, err = sockRequest("DELETE", fmt.Sprintf("/networks/%s", id), nil) 66 c.Assert(status, check.Equals, http.StatusOK) 67 c.Assert(err, check.IsNil) 68 69 if isNetworkAvailable(c, name) { 70 c.Fatalf("Network %s not deleted", name) 71 } 72 }