package cluster import ( "testing" "github.com/samalba/dockerclient" "github.com/stretchr/testify/assert" ) func TestNetworksFilter(t *testing.T) { engine := &Engine{ID: "id"} networks := Networks{ {dockerclient.NetworkResource{ ID: "ababababab", Name: "something", }, engine}, {dockerclient.NetworkResource{ ID: "aaaaaaaaaa1", Name: "network_name", }, engine}, {dockerclient.NetworkResource{ ID: "bbbbbbbbbb", Name: "somethingelse", }, engine}, {dockerclient.NetworkResource{ ID: "aaaaaaaaa2", Name: "foo", }, engine}, } filtered := networks.Filter([]string{"network_name"}, []string{"abababab"}) assert.Equal(t, len(filtered), 2) for _, network := range filtered { assert.True(t, network.ID == "aaaaaaaaaa1" || network.ID == "ababababab") } } func TestNetworkUniq(t *testing.T) { engine1 := &Engine{ID: "id1"} engine2 := &Engine{ID: "id2"} networks := Networks{ {dockerclient.NetworkResource{ ID: "global", Name: "global", Containers: map[string]dockerclient.EndpointResource{ "c1": {}, }, }, engine1}, {dockerclient.NetworkResource{ ID: "global", Name: "global", Containers: map[string]dockerclient.EndpointResource{ "c2": {}, }, }, engine2}, {dockerclient.NetworkResource{ ID: "local1", Name: "local", Containers: map[string]dockerclient.EndpointResource{ "c3": {}, }, }, engine1}, {dockerclient.NetworkResource{ ID: "local2", Name: "local", Containers: map[string]dockerclient.EndpointResource{ "c4": {}, }, }, engine2}, } global := networks.Uniq().Get("global") assert.NotNil(t, global) assert.Equal(t, 2, len(global.Containers)) local1 := networks.Uniq().Get("local1") assert.NotNil(t, local1) assert.Equal(t, 1, len(local1.Containers)) local3 := networks.Uniq().Get("local3") assert.Nil(t, local3) }