mirror of
https://github.com/docker/cli.git
synced 2025-08-30 12:01:10 +03:00
- make it possible to extract the formatter implementation from the "common" code, that way, the formatter package stays small - extract some formatter into their own packages This is essentially moving the "formatter" implementation of each type in their respective packages. The *main* reason to do that, is to be able to depend on `cli/command/formatter` without depending of the implementation detail of the formatter. As of now, depending on `cli/command/formatter` means we depend on `docker/docker/api/types`, `docker/licensing`, … — that should not be the case. `formatter` should hold the common code (or helpers) to easily create formatter, not all formatter implementations. Signed-off-by: Vincent Demeester <vincent@sbr.pm>
30 lines
890 B
Go
30 lines
890 B
Go
package test
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
|
|
"gotest.tools/assert"
|
|
is "gotest.tools/assert/cmp"
|
|
)
|
|
|
|
// CompareMultipleValues compares comma-separated values, whatever the order is
|
|
func CompareMultipleValues(t *testing.T, value, expected string) {
|
|
// comma-separated values means probably a map input, which won't
|
|
// be guaranteed to have the same order as our expected value
|
|
// We'll create maps and use reflect.DeepEquals to check instead:
|
|
entriesMap := make(map[string]string)
|
|
expMap := make(map[string]string)
|
|
entries := strings.Split(value, ",")
|
|
expectedEntries := strings.Split(expected, ",")
|
|
for _, entry := range entries {
|
|
keyval := strings.Split(entry, "=")
|
|
entriesMap[keyval[0]] = keyval[1]
|
|
}
|
|
for _, expected := range expectedEntries {
|
|
keyval := strings.Split(expected, "=")
|
|
expMap[keyval[0]] = keyval[1]
|
|
}
|
|
assert.Check(t, is.DeepEqual(expMap, entriesMap))
|
|
}
|