-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathcli_test.go
62 lines (54 loc) · 1.46 KB
/
cli_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
62
package main
import (
"reflect"
"testing"
"text/template"
"github.com/natefinch/graffiti/tags"
)
func TestMakeOptions(t *testing.T) {
isTempl := false
dryRun := true
types := "foo,bar"
mapping := "ID=_id;Bar=notbar"
args := []string{"json,yaml", "foo.go"}
o, err := makeOptions(types, mapping, isTempl, dryRun, args)
if err != nil {
t.Fatalf("Unexpected error from makeOptions: %s", err)
}
expected := tags.Options{
Target: "foo.go",
Tags: []string{"json", "yaml"},
Mapping: map[string]string{"ID": "_id", "Bar": "notbar"},
Types: []string{"foo", "bar"},
DryRun: dryRun,
}
if !reflect.DeepEqual(o, expected) {
t.Errorf("Expected:\n%#v\ngot:\n%#v", expected, o)
}
}
func TestMakeOptionsTemplate(t *testing.T) {
isTempl := true
dryRun := false
types := "foo,bar"
mapping := "ID=_id;Bar=notbar"
args := []string{`json:"{{.F}}"`}
o, err := makeOptions(types, mapping, isTempl, dryRun, args)
if err != nil {
t.Fatalf("Unexpected error from makeOptions: %s", err)
}
expected := tags.Options{
Target: ".",
Mapping: map[string]string{"ID": "_id", "Bar": "notbar"},
Types: []string{"foo", "bar"},
DryRun: dryRun,
}
expectedT := template.Must(template.New("tag template").Parse(`json:"{{.F}}"`))
gotT := o.Template
o.Template = nil
if !reflect.DeepEqual(o, expected) {
t.Errorf("Expected:\n%#v\ngot:\n%#v", expected, o)
}
if !reflect.DeepEqual(*gotT, *expectedT) {
t.Errorf("Expected:\n%#v\ngot:\n%#v", expected, o)
}
}