Basic DI (dependency injection) working! Yay!!

This commit is contained in:
Deluan
2016-03-01 09:38:43 -05:00
parent 4efb8ab031
commit 4df6c43be8
5 changed files with 68 additions and 0 deletions
+23
View File
@@ -0,0 +1,23 @@
package api
import (
"github.com/astaxie/beego"
"github.com/deluan/gosonic/repositories"
"github.com/deluan/gosonic/utils"
"github.com/karlkfi/inject"
)
type GetIndexesController struct {
beego.Controller
repo repositories.ArtistIndex
}
func (c *GetIndexesController) Prepare() {
inject.ExtractAssignable(utils.Graph, &c.repo)
}
func (c *GetIndexesController) Get() {
if c.repo == nil {
c.CustomAbort(500, "INJECTION NOT WORKING")
}
}
+20
View File
@@ -0,0 +1,20 @@
package api_test
import (
"testing"
. "github.com/smartystreets/goconvey/convey"
"github.com/deluan/gosonic/tests"
)
func TestGetIndexes(t *testing.T) {
tests.Init(t, false)
_, w := Get(AddParams("/rest/getIndexes.view"), "TestGetIndexes")
Convey("Subject: GetIndexes Endpoint", t, func() {
Convey("Status code should be 200", func() {
So(w.Code, ShouldEqual, 200)
})
})
}