MCPcopy
hub / github.com/moby/moby / TestNetworkInspect

Function TestNetworkInspect

client/network_inspect_test.go:14–89  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

12)
13
14func TestNetworkInspect(t *testing.T) {
15 const expectedURL = "/networks/network_id"
16
17 client, err := New(WithMockClient(func(req *http.Request) (*http.Response, error) {
18 if req.URL.Path == defaultAPIPath+"/networks/" {
19 return errorMock(http.StatusInternalServerError, "client should not make a request for empty IDs")(req)
20 }
21 if strings.HasPrefix(req.URL.Path, defaultAPIPath+"/networks/unknown") {
22 return errorMock(http.StatusNotFound, "Error: No such network: unknown")(req)
23 }
24 if strings.HasPrefix(req.URL.Path, defaultAPIPath+"/networks/test-500-response") {
25 return errorMock(http.StatusInternalServerError, "Server error")(req)
26 }
27
28 // other test-cases all use "network_id"
29 if err := assertRequest(req, http.MethodGet, expectedURL); err != nil {
30 return nil, err
31 }
32 if strings.Contains(req.URL.RawQuery, "scope=global") {
33 return errorMock(http.StatusNotFound, "Error: No such network: network_id")(req)
34 }
35 var resp network.Inspect
36 if strings.Contains(req.URL.RawQuery, "verbose=true") {
37 resp = network.Inspect{
38 Network: network.Network{Name: "mynetwork"},
39 Services: map[string]network.ServiceInfo{
40 "web": {},
41 },
42 }
43 } else {
44 resp = network.Inspect{
45 Network: network.Network{Name: "mynetwork"},
46 }
47 }
48 return mockJSONResponse(http.StatusOK, nil, resp)(req)
49 }))
50 assert.NilError(t, err)
51
52 t.Run("empty ID", func(t *testing.T) {
53 // verify that the client does not create a request if the network-ID/name is empty.
54 _, err := client.NetworkInspect(t.Context(), "", NetworkInspectOptions{})
55 assert.Check(t, is.ErrorType(err, cerrdefs.IsInvalidArgument))
56 assert.Check(t, is.ErrorContains(err, "value is empty"))
57
58 _, err = client.NetworkInspect(t.Context(), " ", NetworkInspectOptions{})
59 assert.Check(t, is.ErrorType(err, cerrdefs.IsInvalidArgument))
60 assert.Check(t, is.ErrorContains(err, "value is empty"))
61 })
62 t.Run("no options", func(t *testing.T) {
63 r, err := client.NetworkInspect(t.Context(), "network_id", NetworkInspectOptions{})
64 assert.NilError(t, err)
65 assert.Check(t, is.Equal(r.Network.Name, "mynetwork"))
66 })
67 t.Run("verbose", func(t *testing.T) {
68 r, err := client.NetworkInspect(t.Context(), "network_id", NetworkInspectOptions{Verbose: true})
69 assert.NilError(t, err)
70 assert.Check(t, is.Equal(r.Network.Name, "mynetwork"))
71 _, ok := r.Network.Services["web"]

Callers

nothing calls this directly

Calls 11

WithMockClientFunction · 0.85
errorMockFunction · 0.85
assertRequestFunction · 0.85
mockJSONResponseFunction · 0.85
CheckMethod · 0.80
EqualMethod · 0.80
NewFunction · 0.70
RunMethod · 0.65
NetworkInspectMethod · 0.65
ContextMethod · 0.65
ContainsMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…