forked from influxdata/influxdb
-
Notifications
You must be signed in to change notification settings - Fork 1
/
secret_test.go
61 lines (58 loc) · 1.42 KB
/
secret_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package influxdb
import (
"encoding/json"
"testing"
"github.com/google/go-cmp/cmp"
)
func TestSecretFieldJSON(t *testing.T) {
cases := []struct {
name string
fld *SecretField
json string
target SecretField
}{
{
name: "regular",
fld: &SecretField{Key: "some key"},
json: `"secret: some key"`,
target: SecretField{Key: "some key"},
},
{name: "blank", fld: &SecretField{}, json: `""`},
{
name: "with value",
fld: &SecretField{
Key: "some key",
Value: strPtr("some value"),
},
json: `"secret: some key"`,
target: SecretField{
Key: "some key",
},
},
{
name: "unmarshal a post",
json: `"some value"`,
target: SecretField{
Value: strPtr("some value"),
},
},
}
for _, c := range cases {
if c.fld != nil {
serialized, err := json.Marshal(c.fld)
if err != nil {
t.Fatalf("%s failed, secret key marshal err: %q", c.name, err.Error())
}
if string(serialized) != c.json {
t.Fatalf("%s failed, secret key marshal result is unexpected, got %q, want %q", c.name, string(serialized), c.json)
}
}
var deserialized SecretField
if err := json.Unmarshal([]byte(c.json), &deserialized); err != nil {
t.Fatalf("%s failed, secret key unmarshal err: %q", c.name, err.Error())
}
if diff := cmp.Diff(deserialized, c.target); diff != "" {
t.Fatalf("%s failed, secret key unmarshal result is unexpected, diff %s", c.name, diff)
}
}
}