Skip to content

Commit

Permalink
Add sharedByDefault to NewManager
Browse files Browse the repository at this point in the history
  • Loading branch information
vahid-sohrabloo committed Mar 16, 2016
1 parent 5a233d6 commit c2b795b
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 18 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,5 @@ _testmain.go
*.exe
*.test
*.prof

coverage.out
4 changes: 2 additions & 2 deletions manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -116,9 +116,9 @@ func (sm *Manager) Get(name string) (service interface{}, err error) {
}

//NewManager Create New Manager Struct
func NewManager() *Manager {
func NewManager(shareByDefault bool) *Manager {
return &Manager{
ShareByDefault: true,
ShareByDefault: shareByDefault,
shared: SharedMap{items: make(map[string]bool)},
aliases: AliasesMap{items: make(map[string]string)},
factories: FactoriesMap{items: make(map[string]func(*Manager) interface{})},
Expand Down
31 changes: 15 additions & 16 deletions manager_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ type YourStruct struct {

func TestService(t *testing.T) {
Convey("get service", t, func() {
serviceManager := NewManager()
serviceManager := NewManager(true)
serviceManager.SetFacgtory("MyStruct", func(sm *Manager) interface{} {
return &MyStruct{
Name: "foo",
Expand All @@ -29,7 +29,7 @@ func TestService(t *testing.T) {
})

Convey("shared service", t, func() {
serviceManager := NewManager()
serviceManager := NewManager(true)
serviceManager.SetFacgtory("MyStruct", func(sm *Manager) interface{} {
return &MyStruct{
Name: "foo",
Expand All @@ -48,8 +48,7 @@ func TestService(t *testing.T) {
})

Convey("not shared service", t, func() {
serviceManager := NewManager()
serviceManager.ShareByDefault = false
serviceManager := NewManager(false)
serviceManager.SetFacgtory("MyStruct", func(sm *Manager) interface{} {
return &MyStruct{
Name: "foo",
Expand All @@ -68,7 +67,7 @@ func TestService(t *testing.T) {
})

Convey("not shared service", t, func() {
serviceManager := NewManager()
serviceManager := NewManager(true)
serviceManager.ShareByDefault = false
serviceManager.SetFacgtory("MyStruct", func(sm *Manager) interface{} {
return &MyStruct{
Expand All @@ -88,7 +87,7 @@ func TestService(t *testing.T) {
})

Convey("Allow overide service", t, func() {
serviceManager := NewManager()
serviceManager := NewManager(true)
serviceManager.AllowOverride = true
serviceManager.SetFacgtory("service", func(sm *Manager) interface{} {
return "foo"
Expand All @@ -104,7 +103,7 @@ func TestService(t *testing.T) {
})

Convey("Allow overide service with alias", t, func() {
serviceManager := NewManager()
serviceManager := NewManager(true)
serviceManager.AllowOverride = true
serviceManager.SetFacgtory("service", func(sm *Manager) interface{} {
return "foo"
Expand All @@ -122,7 +121,7 @@ func TestService(t *testing.T) {
})

Convey("check exists service", t, func() {
serviceManager := NewManager()
serviceManager := NewManager(true)
serviceManager.SetFacgtory("service", func(sm *Manager) interface{} {
return "foo"
})
Expand All @@ -135,7 +134,7 @@ func TestService(t *testing.T) {
})

Convey("check already init", t, func() {
serviceManager := NewManager()
serviceManager := NewManager(true)
serviceManager.SetFacgtory("service", func(sm *Manager) interface{} {
return "foo"
})
Expand All @@ -148,7 +147,7 @@ func TestService(t *testing.T) {
})

Convey("Initializers", t, func() {
serviceManager := NewManager()
serviceManager := NewManager(true)
serviceManager.SetFacgtory("MyStruct", func(sm *Manager) interface{} {
return &MyStruct{
Name: "foo",
Expand Down Expand Up @@ -188,7 +187,7 @@ func TestService(t *testing.T) {
})

Convey("test alias", t, func() {
serviceManager := NewManager()
serviceManager := NewManager(true)
serviceManager.SetAlias("MyAlias", "MyStruct")
serviceManager.SetFacgtory("MyStruct", func(sm *Manager) interface{} {
return &MyStruct{
Expand All @@ -211,7 +210,7 @@ func TestService(t *testing.T) {

func TestFailService(t *testing.T) {
Convey("duplicate service", t, func() {
serviceManager := NewManager()
serviceManager := NewManager(true)
serviceManager.SetFacgtory("service1", func(sm *Manager) interface{} {
return "baz"
})
Expand All @@ -224,7 +223,7 @@ func TestFailService(t *testing.T) {
})

Convey("duplicate alias with factory service", t, func() {
serviceManager := NewManager()
serviceManager := NewManager(true)
serviceManager.SetFacgtory("service1", func(sm *Manager) interface{} {
return "baz"
})
Expand All @@ -234,7 +233,7 @@ func TestFailService(t *testing.T) {
})

Convey("duplicate factory service with alias", t, func() {
serviceManager := NewManager()
serviceManager := NewManager(true)

serviceManager.SetAlias("service1", "AnotherService")

Expand All @@ -246,13 +245,13 @@ func TestFailService(t *testing.T) {
})

Convey("not found service", t, func() {
serviceManager := NewManager()
serviceManager := NewManager(true)
_, err := serviceManager.Get("MyStruct")
So(err, ShouldNotBeNil)
})

Convey("not found target alias service", t, func() {
serviceManager := NewManager()
serviceManager := NewManager(true)
serviceManager.SetAlias("MyAlias", "AnotherService")
_, err := serviceManager.Get("MyAlias")
So(err, ShouldNotBeNil)
Expand Down

0 comments on commit c2b795b

Please sign in to comment.