github.com/wulonghui/docker@v1.8.0-rc2/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  }