Skip to content

Commit 5e7ea7e

Browse files
Added test coverage for ini and json config files
1 parent 53ea24d commit 5e7ea7e

File tree

12 files changed

+500
-477
lines changed

12 files changed

+500
-477
lines changed

README.md

Lines changed: 241 additions & 187 deletions
Large diffs are not rendered by default.

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
v2.0.2
1+
v2.0.3

callback.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ func (tree *Tree) WithCallback(name string, whenCallback CallbackAfter, runThis
3636
if fruit == nil {
3737
return tree
3838
}
39-
fruit.CallbackAfter = whenCallback
4039
fruit.Callbacks = append(fruit.Callbacks, Callback{
4140
CallbackAfter: whenCallback,
4241
CallbackFunc: runThis,

figs_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ func TestTree_PollinateString(t *testing.T) {
309309
mutation, ok := <-figs.Mutations()
310310
if ok {
311311
assert.Equal(t, "test", mutation.Property)
312-
assert.Equal(t, "string", mutation.Kind)
312+
assert.Equal(t, "string", mutation.Mutagenesis)
313313
assert.Equal(t, "StoreString", mutation.Way)
314314
assert.Equal(t, "initial", mutation.Old)
315315
assert.Equal(t, "updated", mutation.New)

internals.go

Lines changed: 86 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -69,139 +69,123 @@ func (tree *Tree) loadYAML(data []byte) error {
6969
switch d.(type) {
7070
case *string:
7171
tree.figs[n] = &Fig{
72-
Flesh: d,
73-
Mutagenesis: tString,
74-
Mutations: make([]Mutation, 0),
75-
Validators: make([]ValidatorFunc, 0),
76-
Callbacks: make([]Callback, 0),
77-
CallbackAfter: CallbackAfterVerify,
72+
Flesh: d,
73+
Mutagenesis: tString,
74+
Mutations: make([]Mutation, 0),
75+
Validators: make([]ValidatorFunc, 0),
76+
Callbacks: make([]Callback, 0),
7877
}
7978
tree.withered[n] = Fig{
80-
Flesh: d,
81-
Mutagenesis: tString,
82-
Mutations: make([]Mutation, 0),
83-
Validators: make([]ValidatorFunc, 0),
84-
Callbacks: make([]Callback, 0),
85-
CallbackAfter: CallbackAfterVerify,
79+
Flesh: d,
80+
Mutagenesis: tString,
81+
Mutations: make([]Mutation, 0),
82+
Validators: make([]ValidatorFunc, 0),
83+
Callbacks: make([]Callback, 0),
8684
}
8785
case *bool:
8886
tree.figs[n] = &Fig{
89-
Flesh: d,
90-
Mutagenesis: tBool,
91-
Mutations: make([]Mutation, 0),
92-
Validators: make([]ValidatorFunc, 0),
93-
Callbacks: make([]Callback, 0),
94-
CallbackAfter: CallbackAfterVerify,
87+
Flesh: d,
88+
Mutagenesis: tBool,
89+
Mutations: make([]Mutation, 0),
90+
Validators: make([]ValidatorFunc, 0),
91+
Callbacks: make([]Callback, 0),
9592
}
9693
tree.withered[n] = Fig{
97-
Flesh: d,
98-
Mutagenesis: tBool,
99-
Mutations: make([]Mutation, 0),
100-
Validators: make([]ValidatorFunc, 0),
101-
Callbacks: make([]Callback, 0),
102-
CallbackAfter: CallbackAfterVerify,
94+
Flesh: d,
95+
Mutagenesis: tBool,
96+
Mutations: make([]Mutation, 0),
97+
Validators: make([]ValidatorFunc, 0),
98+
Callbacks: make([]Callback, 0),
10399
}
104100
case *int:
105101
tree.figs[n] = &Fig{
106-
Flesh: d,
107-
Mutagenesis: tInt,
108-
Mutations: make([]Mutation, 0),
109-
Validators: make([]ValidatorFunc, 0),
110-
Callbacks: make([]Callback, 0),
111-
CallbackAfter: CallbackAfterVerify,
102+
Flesh: d,
103+
Mutagenesis: tInt,
104+
Mutations: make([]Mutation, 0),
105+
Validators: make([]ValidatorFunc, 0),
106+
Callbacks: make([]Callback, 0),
112107
}
113108
tree.withered[n] = Fig{
114-
Flesh: d,
115-
Mutagenesis: tInt,
116-
Mutations: make([]Mutation, 0),
117-
Validators: make([]ValidatorFunc, 0),
118-
Callbacks: make([]Callback, 0),
119-
CallbackAfter: CallbackAfterVerify,
109+
Flesh: d,
110+
Mutagenesis: tInt,
111+
Mutations: make([]Mutation, 0),
112+
Validators: make([]ValidatorFunc, 0),
113+
Callbacks: make([]Callback, 0),
120114
}
121115
case *int64:
122116
tree.figs[n] = &Fig{
123-
Flesh: d,
124-
Mutagenesis: tInt64,
125-
Mutations: make([]Mutation, 0),
126-
Validators: make([]ValidatorFunc, 0),
127-
Callbacks: make([]Callback, 0),
128-
CallbackAfter: CallbackAfterVerify,
117+
Flesh: d,
118+
Mutagenesis: tInt64,
119+
Mutations: make([]Mutation, 0),
120+
Validators: make([]ValidatorFunc, 0),
121+
Callbacks: make([]Callback, 0),
129122
}
130123
tree.withered[n] = Fig{
131-
Flesh: d,
132-
Mutagenesis: tInt64,
133-
Mutations: make([]Mutation, 0),
134-
Validators: make([]ValidatorFunc, 0),
135-
Callbacks: make([]Callback, 0),
136-
CallbackAfter: CallbackAfterVerify,
124+
Flesh: d,
125+
Mutagenesis: tInt64,
126+
Mutations: make([]Mutation, 0),
127+
Validators: make([]ValidatorFunc, 0),
128+
Callbacks: make([]Callback, 0),
137129
}
138130
case *float64:
139131
tree.figs[n] = &Fig{
140-
Flesh: d,
141-
Mutagenesis: tFloat64,
142-
Mutations: make([]Mutation, 0),
143-
Validators: make([]ValidatorFunc, 0),
144-
Callbacks: make([]Callback, 0),
145-
CallbackAfter: CallbackAfterVerify,
132+
Flesh: d,
133+
Mutagenesis: tFloat64,
134+
Mutations: make([]Mutation, 0),
135+
Validators: make([]ValidatorFunc, 0),
136+
Callbacks: make([]Callback, 0),
146137
}
147138
tree.withered[n] = Fig{
148-
Flesh: d,
149-
Mutagenesis: tFloat64,
150-
Mutations: make([]Mutation, 0),
151-
Validators: make([]ValidatorFunc, 0),
152-
Callbacks: make([]Callback, 0),
153-
CallbackAfter: CallbackAfterVerify,
139+
Flesh: d,
140+
Mutagenesis: tFloat64,
141+
Mutations: make([]Mutation, 0),
142+
Validators: make([]ValidatorFunc, 0),
143+
Callbacks: make([]Callback, 0),
154144
}
155145
case *time.Duration:
156146
tree.figs[n] = &Fig{
157-
Flesh: d,
158-
Mutagenesis: tDuration,
159-
Mutations: make([]Mutation, 0),
160-
Validators: make([]ValidatorFunc, 0),
161-
Callbacks: make([]Callback, 0),
162-
CallbackAfter: CallbackAfterVerify,
147+
Flesh: d,
148+
Mutagenesis: tDuration,
149+
Mutations: make([]Mutation, 0),
150+
Validators: make([]ValidatorFunc, 0),
151+
Callbacks: make([]Callback, 0),
163152
}
164153
tree.withered[n] = Fig{
165-
Flesh: d,
166-
Mutagenesis: tDuration,
167-
Mutations: make([]Mutation, 0),
168-
Validators: make([]ValidatorFunc, 0),
169-
Callbacks: make([]Callback, 0),
170-
CallbackAfter: CallbackAfterVerify,
154+
Flesh: d,
155+
Mutagenesis: tDuration,
156+
Mutations: make([]Mutation, 0),
157+
Validators: make([]ValidatorFunc, 0),
158+
Callbacks: make([]Callback, 0),
171159
}
172160
case *[]string:
173161
tree.figs[n] = &Fig{
174-
Flesh: d,
175-
Mutagenesis: tList,
176-
Mutations: make([]Mutation, 0),
177-
Validators: make([]ValidatorFunc, 0),
178-
Callbacks: make([]Callback, 0),
179-
CallbackAfter: CallbackAfterVerify,
162+
Flesh: d,
163+
Mutagenesis: tList,
164+
Mutations: make([]Mutation, 0),
165+
Validators: make([]ValidatorFunc, 0),
166+
Callbacks: make([]Callback, 0),
180167
}
181168
tree.withered[n] = Fig{
182-
Flesh: d,
183-
Mutagenesis: tList,
184-
Mutations: make([]Mutation, 0),
185-
Validators: make([]ValidatorFunc, 0),
186-
Callbacks: make([]Callback, 0),
187-
CallbackAfter: CallbackAfterVerify,
169+
Flesh: d,
170+
Mutagenesis: tList,
171+
Mutations: make([]Mutation, 0),
172+
Validators: make([]ValidatorFunc, 0),
173+
Callbacks: make([]Callback, 0),
188174
}
189175
case *map[string]string:
190176
tree.figs[n] = &Fig{
191-
Flesh: d,
192-
Mutagenesis: tMap,
193-
Mutations: make([]Mutation, 0),
194-
Validators: make([]ValidatorFunc, 0),
195-
Callbacks: make([]Callback, 0),
196-
CallbackAfter: CallbackAfterVerify,
177+
Flesh: d,
178+
Mutagenesis: tMap,
179+
Mutations: make([]Mutation, 0),
180+
Validators: make([]ValidatorFunc, 0),
181+
Callbacks: make([]Callback, 0),
197182
}
198183
tree.withered[n] = Fig{
199-
Flesh: d,
200-
Mutagenesis: tMap,
201-
Mutations: make([]Mutation, 0),
202-
Validators: make([]ValidatorFunc, 0),
203-
Callbacks: make([]Callback, 0),
204-
CallbackAfter: CallbackAfterVerify,
184+
Flesh: d,
185+
Mutagenesis: tMap,
186+
Mutations: make([]Mutation, 0),
187+
Validators: make([]ValidatorFunc, 0),
188+
Callbacks: make([]Callback, 0),
205189
}
206190
}
207191
}
@@ -365,12 +349,12 @@ func (tree *Tree) mutateFig(name string, value interface{}) error {
365349
// if tree.tracking && old != dead && dead != value
366350
if tree.tracking && !reflect.DeepEqual(old, dead) && !reflect.DeepEqual(dead, value) {
367351
tree.mutationsCh <- Mutation{
368-
Property: name,
369-
Kind: fmt.Sprintf("%T", value),
370-
Way: "mutateFig",
371-
Old: old,
372-
New: value,
373-
When: time.Now(),
352+
Property: name,
353+
Mutagenesis: fmt.Sprintf("%T", value),
354+
Way: "mutateFig",
355+
Old: old,
356+
New: value,
357+
When: time.Now(),
374358
}
375359
}
376360
return nil

miracles.go

Lines changed: 25 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,11 @@ func (tree *Tree) Resurrect(name string) {
4242
ptr := new(string)
4343
*ptr = strings.Clone(val) // Use strings.Clone as requested
4444
tree.figs[name] = &Fig{
45-
Flesh: ptr,
46-
Mutagenesis: tree.MutagensisOf(val),
47-
Validators: make([]ValidatorFunc, 0),
48-
Callbacks: make([]Callback, 0),
49-
Mutations: make([]Mutation, 0),
50-
CallbackAfter: CallbackAfterRead,
45+
Flesh: ptr,
46+
Mutagenesis: tree.MutagensisOf(val),
47+
Validators: make([]ValidatorFunc, 0),
48+
Callbacks: make([]Callback, 0),
49+
Mutations: make([]Mutation, 0),
5150
}
5251
flag.String(name, val, "Resurrected from environment")
5352
return
@@ -83,12 +82,11 @@ func (tree *Tree) Resurrect(name string) {
8382
ptr := new(string)
8483
*ptr = strings.Clone(strVal)
8584
tree.figs[name] = &Fig{
86-
Flesh: ptr,
87-
Mutagenesis: tree.MutagensisOf(ptr),
88-
Validators: make([]ValidatorFunc, 0),
89-
Callbacks: make([]Callback, 0),
90-
Mutations: make([]Mutation, 0),
91-
CallbackAfter: CallbackAfterRead,
85+
Flesh: ptr,
86+
Mutagenesis: tree.MutagensisOf(ptr),
87+
Validators: make([]ValidatorFunc, 0),
88+
Callbacks: make([]Callback, 0),
89+
Mutations: make([]Mutation, 0),
9290
}
9391
flag.String(name, strVal, "Resurrected from JSON")
9492
return
@@ -100,12 +98,11 @@ func (tree *Tree) Resurrect(name string) {
10098
ptr := new(string)
10199
*ptr = strings.Clone(strVal)
102100
tree.figs[name] = &Fig{
103-
Flesh: ptr,
104-
Mutagenesis: tree.MutagensisOf(ptr),
105-
Validators: make([]ValidatorFunc, 0),
106-
Callbacks: make([]Callback, 0),
107-
Mutations: make([]Mutation, 0),
108-
CallbackAfter: CallbackAfterRead,
101+
Flesh: ptr,
102+
Mutagenesis: tree.MutagensisOf(ptr),
103+
Validators: make([]ValidatorFunc, 0),
104+
Callbacks: make([]Callback, 0),
105+
Mutations: make([]Mutation, 0),
109106
}
110107
flag.String(name, strVal, "Resurrected from YAML")
111108
return
@@ -117,12 +114,11 @@ func (tree *Tree) Resurrect(name string) {
117114
ptr := new(string)
118115
*ptr = strings.Clone(val)
119116
tree.figs[name] = &Fig{
120-
Flesh: ptr,
121-
Mutagenesis: tree.MutagensisOf(ptr),
122-
Validators: make([]ValidatorFunc, 0),
123-
Callbacks: make([]Callback, 0),
124-
Mutations: make([]Mutation, 0),
125-
CallbackAfter: CallbackAfterRead,
117+
Flesh: ptr,
118+
Mutagenesis: tree.MutagensisOf(ptr),
119+
Validators: make([]ValidatorFunc, 0),
120+
Callbacks: make([]Callback, 0),
121+
Mutations: make([]Mutation, 0),
126122
}
127123
flag.String(name, val, "Resurrected from INI")
128124
return
@@ -137,12 +133,11 @@ func (tree *Tree) Resurrect(name string) {
137133
ptr := new(string)
138134
*ptr = ""
139135
tree.figs[name] = &Fig{
140-
Flesh: ptr,
141-
Mutagenesis: tree.MutagensisOf(ptr),
142-
Validators: make([]ValidatorFunc, 0),
143-
Callbacks: make([]Callback, 0),
144-
Mutations: make([]Mutation, 0),
145-
CallbackAfter: CallbackAfterRead,
136+
Flesh: ptr,
137+
Mutagenesis: tree.MutagensisOf(ptr),
138+
Validators: make([]ValidatorFunc, 0),
139+
Callbacks: make([]Callback, 0),
140+
Mutations: make([]Mutation, 0),
146141
}
147142
flag.String(name, "", "Resurrected configuration")
148143
}

0 commit comments

Comments
 (0)