diff --git a/integration-cli/docker_api_network_test.go b/integration-cli/docker_api_network_test.go index 0188e5b7d4..9c1a889adc 100644 --- a/integration-cli/docker_api_network_test.go +++ b/integration-cli/docker_api_network_test.go @@ -5,11 +5,9 @@ import ( "fmt" "net" "net/http" - "net/url" "strings" "testing" - "github.com/moby/moby/api/types/filters" "github.com/moby/moby/api/types/network" "github.com/moby/moby/client" "github.com/moby/moby/v2/integration-cli/cli" @@ -18,21 +16,6 @@ import ( "gotest.tools/v3/assert" ) -func (s *DockerAPISuite) TestAPINetworkGetDefaults(c *testing.T) { - testRequires(c, DaemonIsLinux) - // By default docker daemon creates 3 networks. check if they are present - defaults := []string{"bridge", "host", "none"} - for _, nn := range defaults { - assert.Assert(c, isNetworkAvailable(c, nn)) - } -} - -func (s *DockerAPISuite) TestAPINetworkFilter(c *testing.T) { - testRequires(c, DaemonIsLinux) - nr := getNetworkResource(c, getNetworkIDByName(c, "bridge")) - assert.Equal(c, nr.Name, "bridge") -} - func (s *DockerAPISuite) TestAPINetworkInspectBridge(c *testing.T) { testRequires(c, DaemonIsLinux) // Inspect default bridge network @@ -222,31 +205,6 @@ func isNetworkAvailable(t *testing.T, name string) bool { return false } -func getNetworkIDByName(t *testing.T, name string) string { - filterJSON, err := filters.ToJSON(filters.NewArgs(filters.Arg("name", name))) - assert.NilError(t, err) - v := url.Values{} - v.Set("filters", filterJSON) - - resp, body, err := request.Get(testutil.GetContext(t), "/networks?"+v.Encode()) - assert.Equal(t, resp.StatusCode, http.StatusOK) - assert.NilError(t, err) - - var nJSON []network.Inspect - err = json.NewDecoder(body).Decode(&nJSON) - assert.NilError(t, err) - var res string - for _, n := range nJSON { - // Find exact match - if n.Name == name { - res = n.ID - } - } - assert.Assert(t, res != "") - - return res -} - func getNetworkResource(t *testing.T, id string) *network.Inspect { _, obj, err := request.Get(testutil.GetContext(t), "/networks/"+id) assert.NilError(t, err) diff --git a/integration/network/network_test.go b/integration/network/network_test.go index 87470e86e1..d174cbe8d8 100644 --- a/integration/network/network_test.go +++ b/integration/network/network_test.go @@ -2,13 +2,17 @@ package network import ( "encoding/json" + "fmt" "net/http" "testing" + "github.com/moby/moby/api/types/filters" networktypes "github.com/moby/moby/api/types/network" + "github.com/moby/moby/client" "github.com/moby/moby/v2/internal/testutil" "github.com/moby/moby/v2/internal/testutil/request" "gotest.tools/v3/assert" + is "gotest.tools/v3/assert/cmp" ) @@ -103,3 +107,41 @@ func TestNetworkList(t *testing.T) { }) } } + +func TestAPINetworkGetDefaults(t *testing.T) { + ctx := setupTest(t) + apiClient := testEnv.APIClient() + + defaults := []string{"bridge", "host", "none"} + if testEnv.DaemonInfo.OSType == "windows" { + defaults = []string{"nat", "none"} + } + + for _, netName := range defaults { + assert.Assert(t, IsNetworkAvailable(ctx, apiClient, netName)) + } +} + +func TestAPINetworkFilter(t *testing.T) { + networkName := "bridge" + if testEnv.DaemonInfo.OSType == "windows" { + networkName = "nat" + } + + ctx := setupTest(t) + apiClient := testEnv.APIClient() + + networks, err := apiClient.NetworkList(ctx, client.NetworkListOptions{ + Filters: filters.NewArgs(filters.Arg("name", networkName)), + }) + + assert.NilError(t, err) + + found := false + for _, network := range networks { + if network.Name == networkName { + found = true + } + } + assert.Assert(t, found, fmt.Sprintf("%s is not found", networkName)) +}