@@ -7,72 +7,97 @@ import (
7
7
"testing"
8
8
)
9
9
10
- var rawData = `
11
- ---
12
- a: Easy!
13
- b:
14
- c: 2
15
- d:
16
- - 3
17
- - 4
18
- e:
19
- -
20
- name: Fred
21
- thing: cat
22
- -
23
- name: Sam
24
- thing: dog
25
- `
26
-
27
- var parsedData map [interface {}]interface {}
28
-
29
- func TestMain (m * testing.M ) {
10
+ func parseData (rawData string ) map [interface {}]interface {} {
11
+ var parsedData map [interface {}]interface {}
30
12
err := yaml .Unmarshal ([]byte (rawData ), & parsedData )
31
13
if err != nil {
32
14
fmt .Println ("Error parsing yaml: %v" , err )
33
15
os .Exit (1 )
34
16
}
35
-
36
- os .Exit (m .Run ())
17
+ return parsedData
37
18
}
38
19
39
20
func TestReadMap_simple (t * testing.T ) {
40
- assertResult (t , 2 , readMap (parsedData , "b" , []string {"c" }))
21
+ var data = parseData (`
22
+ ---
23
+ b:
24
+ c: 2
25
+ ` )
26
+ assertResult (t , 2 , readMap (data , "b" , []string {"c" }))
41
27
}
42
28
43
29
func TestReadMap_key_doesnt_exist (t * testing.T ) {
44
- assertResult (t , nil , readMap (parsedData , "b.x.f" , []string {"c" }))
30
+ var data = parseData (`
31
+ ---
32
+ b:
33
+ c: 2
34
+ ` )
35
+ assertResult (t , nil , readMap (data , "b.x.f" , []string {"c" }))
45
36
}
46
37
47
38
func TestReadMap_recurse_against_string (t * testing.T ) {
48
- assertResult (t , nil , readMap (parsedData , "a" , []string {"b" }))
39
+ var data = parseData (`
40
+ ---
41
+ a: cat
42
+ ` )
43
+ assertResult (t , nil , readMap (data , "a" , []string {"b" }))
49
44
}
50
45
51
46
func TestReadMap_with_array (t * testing.T ) {
52
- assertResult (t , 4 , readMap (parsedData , "b" , []string {"d" , "1" }))
47
+ var data = parseData (`
48
+ ---
49
+ b:
50
+ d:
51
+ - 3
52
+ - 4
53
+ ` )
54
+ assertResult (t , 4 , readMap (data , "b" , []string {"d" , "1" }))
53
55
}
54
56
55
57
func TestReadMap_with_array_out_of_bounds (t * testing.T ) {
56
- assertResult (t , nil , readMap (parsedData , "b" , []string {"d" , "3" }))
58
+ var data = parseData (`
59
+ ---
60
+ b:
61
+ d:
62
+ - 3
63
+ - 4
64
+ ` )
65
+ assertResult (t , nil , readMap (data , "b" , []string {"d" , "3" }))
57
66
}
58
67
59
68
func TestReadMap_with_array_splat (t * testing.T ) {
60
- assertResult (t , "[Fred Sam]" , fmt .Sprintf ("%v" , readMap (parsedData , "e" , []string {"*" , "name" })))
69
+ var data = parseData (`
70
+ e:
71
+ -
72
+ name: Fred
73
+ thing: cat
74
+ -
75
+ name: Sam
76
+ thing: dog
77
+ ` )
78
+ assertResult (t , "[Fred Sam]" , fmt .Sprintf ("%v" , readMap (data , "e" , []string {"*" , "name" })))
61
79
}
62
80
63
81
func TestWrite_simple (t * testing.T ) {
82
+ var data = parseData (`
83
+ b:
84
+ c: 2
85
+ ` )
64
86
65
- write (parsedData , "b" , []string {"c" }, "4" )
87
+ write (data , "b" , []string {"c" }, "4" )
66
88
67
- b := parsedData ["b" ].(map [interface {}]interface {})
89
+ b := data ["b" ].(map [interface {}]interface {})
68
90
assertResult (t , "4" , b ["c" ].(string ))
69
91
}
70
92
71
93
func TestWrite_with_no_tail (t * testing.T ) {
94
+ var data = parseData (`
95
+ b:
96
+ c: 2
97
+ ` )
98
+ write (data , "b" , []string {}, "4" )
72
99
73
- write (parsedData , "b" , []string {}, "4" )
74
-
75
- b := parsedData ["b" ]
100
+ b := data ["b" ]
76
101
assertResult (t , "4" , fmt .Sprintf ("%v" , b ))
77
102
}
78
103
0 commit comments