...
1
2
3
4
5
6
7
8
9
10
11
12
13 package driver
14
15 import (
16 "encoding/json"
17 "testing"
18
19 "gitlab.com/flimzy/testy"
20 )
21
22 func TestChangesUnmarshal(t *testing.T) {
23 tests := []struct {
24 name string
25 input string
26 expected ChangedRevs
27 err string
28 }{
29 {
30 name: "invalid JSON",
31 input: `{"foo":"bar"}`,
32 err: `json: cannot unmarshal object into Go value of type []struct { Rev string "json:\"rev\"" }`,
33 },
34 {
35 name: "success",
36 input: `[
37 {"rev": "6-460637e73a6288cb24d532bf91f32969"},
38 {"rev": "5-eeaa298781f60b7bcae0c91bdedd1b87"}
39 ]`,
40 expected: ChangedRevs{"6-460637e73a6288cb24d532bf91f32969", "5-eeaa298781f60b7bcae0c91bdedd1b87"},
41 },
42 }
43 for _, test := range tests {
44 t.Run(test.name, func(t *testing.T) {
45 var result ChangedRevs
46 err := json.Unmarshal([]byte(test.input), &result)
47 if !testy.ErrorMatches(test.err, err) {
48 t.Errorf("Unexpected error: %s", err)
49 }
50 if d := testy.DiffInterface(test.expected, result); d != nil {
51 t.Error(d)
52 }
53 })
54 }
55 }
56
View as plain text