-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinject_test.go
50 lines (41 loc) · 926 Bytes
/
inject_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
package inject
import (
"reflect"
"testing"
"github.com/browny/inject/example"
"github.com/stretchr/testify/suite"
)
func TestInjectTestSuite(t *testing.T) {
suite.Run(t, new(InjectTestSuite))
}
type InjectTestSuite struct {
suite.Suite
}
func (s *InjectTestSuite) TestWeave() {
driver := example.Driver{}
farmer := example.Farmer{}
master := example.Master{}
myLogger := example.MyLogger{}
tillageMachine := example.TillageMachine{}
depMap := map[interface{}][]string{
&myLogger: []string{
"logger",
},
&driver: []string{
"example.Master.Transport",
},
&farmer: []string{
"example.Master.Food",
},
&tillageMachine: []string{
"example.TillageMachine.Machine",
},
&master: []string{},
}
graph, err := Weave(depMap)
s.NoError(err)
master.Food.GetRice()
master.Transport.Fly("C++", "Go")
f := graph[reflect.TypeOf(&example.Farmer{})].(*example.Farmer)
f.Machine.Run(5)
}