ECS provider refactoring
This commit is contained in:
parent
b0a0e16136
commit
9ce4f94818
4 changed files with 420 additions and 183 deletions
|
@ -1,80 +1,144 @@
|
|||
package ecs
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestClustersSet(t *testing.T) {
|
||||
checkMap := map[string]Clusters{
|
||||
"cluster": {"cluster"},
|
||||
"cluster1,cluster2": {"cluster1", "cluster2"},
|
||||
"cluster1;cluster2": {"cluster1", "cluster2"},
|
||||
"cluster1,cluster2;cluster3": {"cluster1", "cluster2", "cluster3"},
|
||||
tests := []struct {
|
||||
desc string
|
||||
value string
|
||||
expected Clusters
|
||||
}{
|
||||
{
|
||||
desc: "One value should return Clusters of size 1",
|
||||
value: "cluster",
|
||||
expected: Clusters{"cluster"},
|
||||
},
|
||||
{
|
||||
desc: "Two values separated by comma should return Clusters of size 2",
|
||||
value: "cluster1,cluster2",
|
||||
expected: Clusters{"cluster1", "cluster2"},
|
||||
},
|
||||
{
|
||||
desc: "Two values separated by semicolon should return Clusters of size 2",
|
||||
value: "cluster1;cluster2",
|
||||
expected: Clusters{"cluster1", "cluster2"},
|
||||
},
|
||||
{
|
||||
desc: "Three values separated by comma and semicolon should return Clusters of size 3",
|
||||
value: "cluster1,cluster2;cluster3",
|
||||
expected: Clusters{"cluster1", "cluster2", "cluster3"},
|
||||
},
|
||||
}
|
||||
for str, check := range checkMap {
|
||||
var clusters Clusters
|
||||
if err := clusters.Set(str); err != nil {
|
||||
t.Fatalf("Error :%s", err)
|
||||
}
|
||||
if !reflect.DeepEqual(clusters, check) {
|
||||
t.Fatalf("Expected:%s\ngot:%s", check, clusters)
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
test := test
|
||||
t.Run(test.desc, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
var clusters Clusters
|
||||
err := clusters.Set(test.value)
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, test.expected, clusters)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestClustersGet(t *testing.T) {
|
||||
slices := []Clusters{
|
||||
{"cluster"},
|
||||
{"cluster1", "cluster2"},
|
||||
{"cluster1", "cluster2", "cluster3"},
|
||||
tests := []struct {
|
||||
desc string
|
||||
clusters Clusters
|
||||
expected Clusters
|
||||
}{
|
||||
{
|
||||
desc: "Should return 1 cluster",
|
||||
clusters: Clusters{"cluster"},
|
||||
expected: Clusters{"cluster"},
|
||||
},
|
||||
{
|
||||
desc: "Should return 2 clusters",
|
||||
clusters: Clusters{"cluster1", "cluster2"},
|
||||
expected: Clusters{"cluster1", "cluster2"},
|
||||
},
|
||||
{
|
||||
desc: "Should return 3 clusters",
|
||||
clusters: Clusters{"cluster1", "cluster2", "cluster3"},
|
||||
expected: Clusters{"cluster1", "cluster2", "cluster3"},
|
||||
},
|
||||
}
|
||||
check := []Clusters{
|
||||
{"cluster"},
|
||||
{"cluster1", "cluster2"},
|
||||
{"cluster1", "cluster2", "cluster3"},
|
||||
}
|
||||
for i, slice := range slices {
|
||||
if !reflect.DeepEqual(slice.Get(), check[i]) {
|
||||
t.Fatalf("Expected:%s\ngot:%s", check[i], slice)
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
test := test
|
||||
t.Run(test.desc, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
actual := test.clusters.Get()
|
||||
assert.Equal(t, test.expected, actual)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestClustersString(t *testing.T) {
|
||||
slices := []Clusters{
|
||||
{"cluster"},
|
||||
{"cluster1", "cluster2"},
|
||||
{"cluster1", "cluster2", "cluster3"},
|
||||
tests := []struct {
|
||||
desc string
|
||||
clusters Clusters
|
||||
expected string
|
||||
}{
|
||||
{
|
||||
desc: "Should return 1 cluster",
|
||||
clusters: Clusters{"cluster"},
|
||||
expected: "[cluster]",
|
||||
},
|
||||
{
|
||||
desc: "Should return 2 clusters",
|
||||
clusters: Clusters{"cluster1", "cluster2"},
|
||||
expected: "[cluster1 cluster2]",
|
||||
},
|
||||
{
|
||||
desc: "Should return 3 clusters",
|
||||
clusters: Clusters{"cluster1", "cluster2", "cluster3"},
|
||||
expected: "[cluster1 cluster2 cluster3]",
|
||||
},
|
||||
}
|
||||
check := []string{
|
||||
"[cluster]",
|
||||
"[cluster1 cluster2]",
|
||||
"[cluster1 cluster2 cluster3]",
|
||||
}
|
||||
for i, slice := range slices {
|
||||
if !reflect.DeepEqual(slice.String(), check[i]) {
|
||||
t.Fatalf("Expected:%s\ngot:%s", check[i], slice)
|
||||
}
|
||||
for _, test := range tests {
|
||||
test := test
|
||||
t.Run(test.desc, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
actual := test.clusters.String()
|
||||
assert.Equal(t, test.expected, actual)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestClustersSetValue(t *testing.T) {
|
||||
check := []Clusters{
|
||||
{"cluster"},
|
||||
{"cluster1", "cluster2"},
|
||||
{"cluster1", "cluster2", "cluster3"},
|
||||
tests := []struct {
|
||||
desc string
|
||||
clusters Clusters
|
||||
expected Clusters
|
||||
}{
|
||||
{
|
||||
desc: "Should return Clusters of size 1",
|
||||
clusters: Clusters{"cluster"},
|
||||
expected: Clusters{"cluster"},
|
||||
},
|
||||
{
|
||||
desc: "Should return Clusters of size 2",
|
||||
clusters: Clusters{"cluster1", "cluster2"},
|
||||
expected: Clusters{"cluster1", "cluster2"},
|
||||
},
|
||||
{
|
||||
desc: "Should return Clusters of size 3",
|
||||
clusters: Clusters{"cluster1", "cluster2", "cluster3"},
|
||||
expected: Clusters{"cluster1", "cluster2", "cluster3"},
|
||||
},
|
||||
}
|
||||
slices := []Clusters{
|
||||
{"cluster"},
|
||||
{"cluster1", "cluster2"},
|
||||
{"cluster1", "cluster2", "cluster3"},
|
||||
}
|
||||
for i, s := range slices {
|
||||
var slice Clusters
|
||||
slice.SetValue(s)
|
||||
if !reflect.DeepEqual(slice, check[i]) {
|
||||
t.Fatalf("Expected:%s\ngot:%s", check[i], slice)
|
||||
}
|
||||
for _, test := range tests {
|
||||
test := test
|
||||
t.Run(test.desc, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
var slice Clusters
|
||||
slice.SetValue(test.clusters)
|
||||
assert.Equal(t, test.expected, slice)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue