diff options
Diffstat (limited to 'spew/dump_test.go')
| -rw-r--r-- | spew/dump_test.go | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/spew/dump_test.go b/spew/dump_test.go index 31b7b6b..354c71c 100644 --- a/spew/dump_test.go +++ b/spew/dump_test.go @@ -65,6 +65,7 @@ import ( "bytes" "fmt" "github.com/davecgh/go-spew/spew" + "reflect" "testing" "unsafe" ) @@ -896,3 +897,44 @@ func TestDump(t *testing.T) { } } } + +func TestSortValues(t *testing.T) { + v := reflect.ValueOf + + a := v("a") + b := v("b") + c := v("c") + tests := []struct { + input []reflect.Value + expected []reflect.Value + }{ + {[]reflect.Value{v(2), v(1), v(3)}, + []reflect.Value{v(1), v(2), v(3)}}, + {[]reflect.Value{v(2.), v(1.), v(3.)}, + []reflect.Value{v(1.), v(2.), v(3.)}}, + {[]reflect.Value{v(false), v(true), v(false)}, + []reflect.Value{v(false), v(false), v(true)}}, + {[]reflect.Value{b, a, c}, + []reflect.Value{a, b, c}}, + } + for _, test := range tests { + spew.SortValues(test.input) + if !reflect.DeepEqual(test.input, test.expected) { + t.Errorf("Sort mismatch:\n %v != %v", test.input, test.expected) + } + } +} + +func TestDumpSortedKeys(t *testing.T) { + cfg := spew.ConfigState{SortKeys: true} + s := cfg.Sdump(map[int]string{1: "1", 3: "3", 2: "2"}) + expected := `(map[int]string) { +(int) 1: (string) "1", +(int) 2: (string) "2", +(int) 3: (string) "3" +} +` + if s != expected { + t.Errorf("Sorted keys mismatch:\n %v %v", s, expected) + } +} |
