Skip to content

Commit

Permalink
This pattern is the same for all merged factories and bindings. (#18)
Browse files Browse the repository at this point in the history
  • Loading branch information
michaelquigley committed Jan 10, 2020
1 parent 3b9a93c commit ef61094
Showing 1 changed file with 30 additions and 0 deletions.
30 changes: 30 additions & 0 deletions kernel/model/parent_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,11 @@ func TestParentBase(t *testing.T) {
aHost := value.(*Host)
assert.Equal(t, 1, len(aHost.Tags))
assert.Equal(t, "0", aHost.Tags[0])

assert.Equal(t, 1, len(m.Factories))
assert.Nil(t, m.Data["factory"])
m.Factories[0].Build(m)
assert.Equal(t, "base", m.Data["factory"])
}

func TestParentMerge(t *testing.T) {
Expand All @@ -69,6 +74,9 @@ func TestParentMerge(t *testing.T) {
},
},
},
Factories: []Factory{
&factory{name: "merge"},
},
}
assert.Nil(t, m.Merge(m.Parent))

Expand Down Expand Up @@ -98,6 +106,13 @@ func TestParentMerge(t *testing.T) {
assert.Equal(t, 2, len(aHost.Tags))
assert.Equal(t, "0", aHost.Tags[0])
assert.Equal(t, "1", aHost.Tags[1])

assert.Equal(t, 2, len(m.Factories))
assert.Nil(t, m.Data["factory"])
m.Factories[0].Build(m)
assert.Equal(t, "base", m.Data["factory"])
m.Factories[1].Build(m)
assert.Equal(t, "merge", m.Data["factory"])
}

func parentTestModel() *Model {
Expand All @@ -118,5 +133,20 @@ func parentTestModel() *Model {
},
},
},
Factories: []Factory{
&factory{name: "base"},
},
}
}

type factory struct{
name string
}

func (f *factory) Build(m *Model) error {
if m.Data == nil {
m.Data = make(Data)
}
m.Data["factory"] = f.name
return nil
}

0 comments on commit ef61094

Please sign in to comment.