|
1 | 1 | package cluster
|
2 | 2 |
|
3 | 3 | import (
|
| 4 | + "sort" |
4 | 5 | "testing"
|
5 | 6 |
|
6 | 7 | "github.com/docker/docker/api/types"
|
| 8 | + "github.com/docker/docker/api/types/filters" |
7 | 9 | "github.com/stretchr/testify/assert"
|
8 | 10 | )
|
9 | 11 |
|
10 | 12 | func TestNetworksFilter(t *testing.T) {
|
11 | 13 | engine := &Engine{ID: "id"}
|
12 | 14 | networks := Networks{
|
13 | 15 | {types.NetworkResource{
|
14 |
| - ID: "ababababab", |
15 |
| - Name: "something", |
| 16 | + ID: "ababababab", |
| 17 | + Name: "something", |
| 18 | + Driver: "overlay", |
| 19 | + Labels: map[string]string{"testlabel": "testvalue1"}, |
16 | 20 | }, engine},
|
17 | 21 | {types.NetworkResource{
|
18 |
| - ID: "aaaaaaaaaa1", |
19 |
| - Name: "network_name", |
| 22 | + ID: "aaaaaaaaaa1", |
| 23 | + Name: "network_name", |
| 24 | + Driver: "bridge", |
| 25 | + Labels: map[string]string{"testlabel": "testvalue2"}, |
20 | 26 | }, engine},
|
21 | 27 | {types.NetworkResource{
|
22 |
| - ID: "bbbbbbbbbb", |
23 |
| - Name: "somethingelse", |
| 28 | + ID: "bbbbbbbbbb", |
| 29 | + Name: "somethingelse", |
| 30 | + Driver: "overlay", |
| 31 | + Labels: map[string]string{"testlabel": "testvalue3"}, |
24 | 32 | }, engine},
|
25 | 33 | {types.NetworkResource{
|
26 |
| - ID: "aaaaaaaaa2", |
27 |
| - Name: "foo", |
| 34 | + ID: "aaaaaaaaaa2", |
| 35 | + Name: "host", |
| 36 | + Driver: "bridge", |
28 | 37 | }, engine},
|
29 | 38 | }
|
30 | 39 |
|
31 |
| - filtered := networks.Filter([]string{"network_name"}, []string{"abababab"}, nil) |
32 |
| - assert.Equal(t, len(filtered), 2) |
33 |
| - for _, network := range filtered { |
34 |
| - assert.True(t, network.ID == "aaaaaaaaaa1" || network.ID == "ababababab") |
| 40 | + checkNetworks := func(t *testing.T, filtered Networks, expectedIDs ...string) { |
| 41 | + sort.Strings(expectedIDs) |
| 42 | + foundIDs := []string{} |
| 43 | + for _, network := range filtered { |
| 44 | + foundIDs = append(foundIDs, network.ID) |
| 45 | + } |
| 46 | + sort.Strings(foundIDs) |
| 47 | + assert.Equal(t, expectedIDs, foundIDs) |
35 | 48 | }
|
| 49 | + |
| 50 | + filter := filters.NewArgs() |
| 51 | + filter.Add("name", "network_name") |
| 52 | + filter.Add("id", "abababab") |
| 53 | + checkNetworks(t, networks.Filter(filter), "aaaaaaaaaa1", "ababababab") |
| 54 | + |
| 55 | + filter = filters.NewArgs() |
| 56 | + filter.Add("type", "builtin") |
| 57 | + checkNetworks(t, networks.Filter(filter), "aaaaaaaaaa2") |
| 58 | + |
| 59 | + filter = filters.NewArgs() |
| 60 | + filter.Add("type", "custom") |
| 61 | + checkNetworks(t, networks.Filter(filter), "aaaaaaaaaa1", "ababababab", "bbbbbbbbbb") |
| 62 | + |
| 63 | + filter = filters.NewArgs() |
| 64 | + filter.Add("driver", "overlay") |
| 65 | + checkNetworks(t, networks.Filter(filter), "ababababab", "bbbbbbbbbb") |
| 66 | + |
| 67 | + filter = filters.NewArgs() |
| 68 | + filter.Add("label", "testlabel") |
| 69 | + checkNetworks(t, networks.Filter(filter), "aaaaaaaaaa1", "ababababab", "bbbbbbbbbb") |
| 70 | + |
| 71 | + filter = filters.NewArgs() |
| 72 | + filter.Add("label", "testlabel=testvalue1") |
| 73 | + checkNetworks(t, networks.Filter(filter), "ababababab") |
36 | 74 | }
|
37 | 75 |
|
38 | 76 | func TestNetworkUniq(t *testing.T) {
|
|
0 commit comments