本文整理汇总了Golang中github.com/facebookgo/inject.Graph类的典型用法代码示例。如果您正苦于以下问题:Golang Graph类的具体用法?Golang Graph怎么用?Golang Graph使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Graph类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: TestProvideWithFields
func TestProvideWithFields(t *testing.T) {
var g inject.Graph
a := &TypeAnswerStruct{}
err := g.Provide(&inject.Object{Value: a, Fields: map[string]*inject.Object{}})
ensure.NotNil(t, err)
ensure.DeepEqual(t, err.Error(), "fields were specified on object *inject_test.TypeAnswerStruct when it was provided")
}
开发者ID:stellar,项目名称:bridge-server,代码行数:7,代码来源:inject_test.go
示例2: Start
func Start(port int, fileLocation string) {
var router routers.Router
var graph inject.Graph
// Create database
db := data.NewJsonDB(fileLocation)
// Setup DI
if err := graph.Provide(
&inject.Object{Value: db},
&inject.Object{Value: repositories.NewCharacterRepository()},
&inject.Object{Value: &router}); err != nil {
log.Fatalf("Error providing dependencies: ", err.Error())
}
if err := graph.Populate(); err != nil {
log.Fatalf("Error populating dependencies: ", err.Error())
}
n := negroni.Classic()
n.UseHandler(router.NewRouter())
err := http.ListenAndServe(fmt.Sprintf(":%v", port), n)
if err != nil {
panic("Error: " + err.Error())
}
}
开发者ID:mattdotmatt,项目名称:bigstar,代码行数:29,代码来源:server.go
示例3: NewApp
// NewApp constructs an new App instance from the provided config.
func NewApp(config config.Config, migrateFlag bool) (app *App, err error) {
var g inject.Graph
var driver db.Driver
switch config.Database.Type {
case "mysql":
driver = &mysql.Driver{}
case "postgres":
driver = &postgres.Driver{}
default:
return nil, fmt.Errorf("%s database has no driver", config.Database.Type)
}
err = driver.Init(config.Database.URL)
if err != nil {
return
}
entityManager := db.NewEntityManager(driver)
repository := db.NewRepository(driver)
if migrateFlag {
var migrationsApplied int
migrationsApplied, err = driver.MigrateUp("compliance")
if err != nil {
return
}
log.Info("Applied migrations: ", migrationsApplied)
os.Exit(0)
return
}
requestHandler := handlers.RequestHandler{}
err = g.Provide(
&inject.Object{Value: &requestHandler},
&inject.Object{Value: &config},
&inject.Object{Value: &entityManager},
&inject.Object{Value: &repository},
&inject.Object{Value: &crypto.SignerVerifier{}},
&inject.Object{Value: &stellartoml.Resolver{}},
&inject.Object{Value: &federation.Resolver{}},
&inject.Object{Value: &http.Client{}},
)
if err != nil {
log.Fatal("Injector: ", err)
}
if err := g.Populate(); err != nil {
log.Fatal("Injector: ", err)
}
app = &App{
config: config,
requestHandler: requestHandler,
}
return
}
开发者ID:stellar,项目名称:bridge-server,代码行数:61,代码来源:app.go
示例4: TestInjectLogging
func TestInjectLogging() {
g := inject.Graph{
Logger: &logger{
Expected: []string{
"provided *main.TypeForLoggingCreated named name_for_logging",
"provided *main.TypeForLogging",
"provided embedded *main.TypeForLoggingEmbedded",
"created *main.TypeForLoggingCreated",
"assigned newly created *main.TypeForLoggingCreated to field TypeForLoggingCreated in *main.TypeForLogging",
"assigned existing *main.TypeForLoggingCreated to field TypeForLoggingCreated in *main.TypeForLoggingEmbedded",
"assigned *main.TypeForLoggingCreated named name_for_logging to field TypeForLoggingCreatedNamed in *main.TypeForLoggingEmbedded",
"made map for field Map in *main.TypeForLoggingEmbedded",
"assigned existing *main.TypeForLoggingCreated to interface field TypeForLoggingInterface in *main.TypeForLoggingEmbedded",
},
},
}
var v TypeForLogging
err := g.Provide(
&inject.Object{Value: &TypeForLoggingCreated{}, Name: "name_for_logging"},
&inject.Object{Value: &v},
)
if err != nil {
fmt.Println(err)
}
if err := g.Populate(); err != nil {
fmt.Println(err)
}
}
开发者ID:uileyar,项目名称:helloworld,代码行数:29,代码来源:injecttest.go
示例5: initiateTests
func initiateTests() {
var router routers.Router
var graph inject.Graph
setupTestData()
db := data.NewJsonDB("../data/testing/testingDB.json")
if err := graph.Provide(
&inject.Object{Value: db},
&inject.Object{Value: repositories.NewCharacterRepository()},
&inject.Object{Value: &router}); err != nil {
log.Fatalf("Error providing dependencies: ", err.Error())
}
if err := graph.Populate(); err != nil {
log.Fatalf("Error populating dependencies: ", err.Error())
}
n := negroni.Classic()
n.UseHandler(router.NewRouter())
ts = httptest.NewServer(n)
}
开发者ID:mattdotmatt,项目名称:bigstar,代码行数:25,代码来源:server_test.go
示例6: StartMyApp
func StartMyApp(port int, dbName string) {
var env Env.Env
var g inject.Graph
db, e := Data.NewDB(dbName)
log.Println(e)
err := g.Provide(
&inject.Object{Value: &env},
&inject.Object{Value: db},
)
if err != nil {
log.Fatalf("Error providing dependencies: ", err.Error())
}
if err := g.Populate(); err != nil {
log.Fatalf("Error providing dependencies: ", err.Error())
}
routes := Api.Routes(env)
routes.Run(fmt.Sprintf(":%v", port))
}
开发者ID:FanszHub,项目名称:test-site,代码行数:26,代码来源:Server.go
示例7: TestProvideNonPointer
func TestProvideNonPointer() {
var g inject.Graph
var i *int
err := g.Provide(&inject.Object{Value: i})
fmt.Println(err)
}
开发者ID:uileyar,项目名称:helloworld,代码行数:8,代码来源:injecttest.go
示例8: ProvideWithFields
func ProvideWithFields() {
var g inject.Graph
a := &TypeAnswerStruct{}
err := g.Provide(&inject.Object{Value: a, Fields: map[string]*inject.Object{}})
fmt.Println(err)
//ensure.NotNil(glog.Fatal, err)
//ensure.DeepEqual(fmt, err.Error(), "fields were specified on object *inject_test.TypeAnswerStruct when it was provided")
}
开发者ID:uileyar,项目名称:helloworld,代码行数:9,代码来源:injecttest.go
示例9: TestProvideTwoOfTheSame
func TestProvideTwoOfTheSame() {
var g inject.Graph
a := TypeAnswerStruct{}
err := g.Provide(&inject.Object{Value: &a})
fmt.Println(err)
err = g.Provide(&inject.Object{Value: &a})
fmt.Println(err)
}
开发者ID:uileyar,项目名称:helloworld,代码行数:10,代码来源:injecttest.go
示例10: TestInjectNamedTwoSatisfyInterface
func TestInjectNamedTwoSatisfyInterface() {
var g inject.Graph
var v TypeInjectNamedTwoSatisfyInterface
if err := g.Provide(&inject.Object{Name: "foo", Value: &v}); err != nil {
fmt.Println(err)
}
err := g.Populate()
fmt.Println(err)
}
开发者ID:uileyar,项目名称:helloworld,代码行数:10,代码来源:injecttest.go
示例11: TestObjectString
func TestObjectString(t *testing.T) {
var g inject.Graph
a := &TypeNestedStruct{}
if err := g.Provide(&inject.Object{Value: a, Name: "foo"}); err != nil {
t.Fatal(err)
}
var c TypeForObjectString
if err := g.Provide(&inject.Object{Value: &c}); err != nil {
t.Fatal(err)
}
if err := g.Populate(); err != nil {
t.Fatal(err)
}
var actual []string
for _, o := range g.Objects() {
actual = append(actual, fmt.Sprint(o))
}
ensure.SameElements(t, actual, []string{
"*inject_test.TypeForObjectString",
"*inject_test.TypeNestedStruct",
"*inject_test.TypeNestedStruct named foo",
"*inject_test.TypeAnswerStruct",
})
}
开发者ID:stellar,项目名称:bridge-server,代码行数:28,代码来源:inject_test.go
示例12: TestTwoNamedInstances
func TestTwoNamedInstances(t *testing.T) {
var g inject.Graph
a := &TypeAnswerStruct{}
b := &TypeAnswerStruct{}
if err := g.Provide(&inject.Object{Value: a, Name: "foo"}); err != nil {
t.Fatal(err)
}
if err := g.Provide(&inject.Object{Value: b, Name: "bar"}); err != nil {
t.Fatal(err)
}
var c struct {
A *TypeAnswerStruct `inject:"foo"`
B *TypeAnswerStruct `inject:"bar"`
}
if err := g.Provide(&inject.Object{Value: &c}); err != nil {
t.Fatal(err)
}
if err := g.Populate(); err != nil {
t.Fatal(err)
}
if c.A != a {
t.Fatal("did not find expected c.A")
}
if c.B != b {
t.Fatal("did not find expected c.B")
}
}
开发者ID:stellar,项目名称:bridge-server,代码行数:31,代码来源:inject_test.go
示例13: main
func main() {
// command line flags
confFile := flag.String("conf", "emerald.conf", "location of config-file")
flag.Parse()
conf := core.LoadConfiguration(*confFile)
var app core.EmeraldApp
mongoService := mongo.NewService(&conf)
ircClient := irc.NewClient()
var g inject.Graph
err := g.Provide(
&inject.Object{Value: &conf},
&inject.Object{Value: &app},
&inject.Object{Value: mongoService},
&inject.Object{Value: ircClient},
)
if err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
if err := g.Populate(); err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
//setup gin
gin.SetMode(gin.ReleaseMode)
router := gin.New()
//Middlewares
// router.Use(gin.Logger())
router.Use(gin.Recovery())
//static files
router.Static("/assets", "./assets")
router.StaticFile("/", "./assets/index.html")
//register all controllers
app.AddControllers(router)
//Start all jobs
app.StartJobs()
// Listen and server on 0.0.0.0:8080
addr := fmt.Sprintf(":%d", conf.Port)
log.Printf("Emerald started port %v\n", addr)
fmt.Printf("Emerald started port %v\n", addr)
err = router.Run(addr)
if err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
}
开发者ID:kahoona77,项目名称:emerald,代码行数:55,代码来源:main.go
示例14: TestObjectString
func TestObjectString() {
var g inject.Graph
a := &TypeNestedStruct{}
if err := g.Provide(&inject.Object{Value: a, Name: "foo"}); err != nil {
fmt.Println(err)
}
var c TypeForObjectString
if err := g.Provide(&inject.Object{Value: &c}); err != nil {
fmt.Println(err)
}
if err := g.Populate(); err != nil {
fmt.Println(err)
}
a.A.answer = 100
fmt.Printf("c.A.A = %#v, c.B.A = %#v\n", c.A.A, c.B.A)
var actual []string
for _, o := range g.Objects() {
fmt.Printf("%#v\n", o)
actual = append(actual, fmt.Sprint(o))
}
//fmt.Printf("%#v \n", actual)
}
开发者ID:uileyar,项目名称:helloworld,代码行数:30,代码来源:injecttest.go
示例15: TestProvideTwoWithTheSameName
func TestProvideTwoWithTheSameName() {
var g inject.Graph
const name = "foo"
a := TypeAnswerStruct{}
err := g.Provide(&inject.Object{Value: &a, Name: name})
fmt.Println(err)
err = g.Provide(&inject.Object{Value: &a, Name: name})
fmt.Println(err)
}
开发者ID:uileyar,项目名称:helloworld,代码行数:11,代码来源:injecttest.go
示例16: Injector
func Injector(params ...interface{}) (err error) {
var g inject.Graph
for _, v := range params {
if err = g.Provide(&inject.Object{Value: v}); err != nil {
return
}
}
if err = g.Populate(); err != nil {
return
}
return
}
开发者ID:go-rut,项目名称:utils,代码行数:12,代码来源:inject.go
示例17: TestProvideNonPointerStruct
func TestProvideNonPointerStruct(t *testing.T) {
var g inject.Graph
var i *int
err := g.Provide(&inject.Object{Value: i})
if err == nil {
t.Fatal("expected error")
}
const msg = "expected unnamed object value to be a pointer to a struct but got type *int with value <nil>"
if err.Error() != msg {
t.Fatalf("expected:\n%s\nactual:\n%s", msg, err.Error())
}
}
开发者ID:stellar,项目名称:bridge-server,代码行数:13,代码来源:inject_test.go
示例18: TestForSameNameButDifferentPackage
func TestForSameNameButDifferentPackage(t *testing.T) {
var g inject.Graph
err := g.Provide(
&inject.Object{Value: &injecttesta.Foo{}},
&inject.Object{Value: &injecttestb.Foo{}},
)
if err != nil {
t.Fatal(err)
}
if err := g.Populate(); err != nil {
t.Fatal(err)
}
}
开发者ID:stellar,项目名称:bridge-server,代码行数:13,代码来源:inject_test.go
示例19: TestCompleteNamedProvides
func TestCompleteNamedProvides(t *testing.T) {
var g inject.Graph
var v struct {
A *TypeAnswerStruct `inject:""`
}
if err := g.Provide(&inject.Object{Value: &v, Complete: true, Name: "foo"}); err != nil {
t.Fatal(err)
}
if err := g.Populate(); err != nil {
t.Fatal(err)
}
if v.A != nil {
t.Fatal("v.A was not nil")
}
}
开发者ID:stellar,项目名称:bridge-server,代码行数:16,代码来源:inject_test.go
示例20: Map
//Map map objects
func (p *Engine) Map(inj *inject.Graph) error {
enc, err := NewAesHmacEncryptor(Secret(120, 32), Secret(210, 32))
if err != nil {
return err
}
return inj.Provide(
&inject.Object{Value: enc},
&inject.Object{Value: Secret(320, 32), Name: "jwt.key"},
&inject.Object{Value: crypto.SigningMethodHS512, Name: "jwt.method"},
&inject.Object{Value: "cache", Name: "cache.prefix"},
&inject.Object{Value: "ga2", Name: "oauth2.google.state"},
)
}
开发者ID:itpkg,项目名称:chaos,代码行数:17,代码来源:engine.go
注:本文中的github.com/facebookgo/inject.Graph类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论