test: migrate test api network get defaults and filter

Signed-off-by: Muhammad Daffa Dinaya <muhammaddaffadinaya@gmail.com>
This commit is contained in:
Muhammad Daffa Dinaya
2025-09-20 05:58:35 +00:00
parent 2f87bb4410
commit 87d1da50f0
2 changed files with 42 additions and 42 deletions

View File

@@ -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)

View File

@@ -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))
}