本文整理汇总了Golang中github.com/facebookgo/inject.Populate函数的典型用法代码示例。如果您正苦于以下问题:Golang Populate函数的具体用法?Golang Populate怎么用?Golang Populate使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Populate函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: TestDoesNotOverwriteInterface
func TestDoesNotOverwriteInterface() {
i := 100
a := &TypeAnswerStruct{}
var v struct {
K *int `inject:""`
A Answerable `inject:""`
B *TypeNestedStruct `inject:""`
}
fmt.Println(v)
v.A = a
v.K = &i
/*
var g inject.Graph
if err := g.Provide(&inject.Object{Name: "inttest", Value: &i}); err != nil {
fmt.Println(err)
}
*/
if err := inject.Populate(&v); err != nil {
fmt.Println(err)
}
a.answer = 1
i = 99
fmt.Println(v.A)
fmt.Println(v.B)
fmt.Println(*v.K)
if v.A != a {
fmt.Println("original A was lost")
}
if v.B == nil {
fmt.Println("v.B is nil")
}
}
开发者ID:uileyar,项目名称:helloworld,代码行数:32,代码来源:injecttest.go
示例2: init
func init() {
// Filters is the default set of global filters.
revel.Filters = []revel.Filter{
CorsFilter,
revel.PanicFilter, // Recover from panics and display an error page instead.
revel.RouterFilter, // Use the routing table to select the right Action
revel.FilterConfiguringFilter, // A hook for adding or removing per-Action filters.
revel.ParamsFilter, // Parse parameters into Controller.Params.
// revel.SessionFilter, // Restore and write the session cookie.
// revel.FlashFilter, // Restore and write the flash cookie.
revel.ValidationFilter, // Restore kept validation errors and save new ones from cookie.
revel.I18nFilter, // Resolve the requested language
HeaderFilter, // Add some security based headers
revel.InterceptorFilter, // Run interceptors around the action.
revel.CompressFilter, // Compress the result.
revel.ActionInvoker, // Invoke the action.
}
persistence.InitDb()
var app controllers.AccountController
if err := inject.Populate(&app); err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
}
开发者ID:stsmedia,项目名称:ThingBricks,代码行数:27,代码来源:init.go
示例3: TestInjectWithStructValue
func TestInjectWithStructValue() {
var v TypeWithStructValue
if err := inject.Populate(&v); err != nil {
fmt.Println(err)
}
fmt.Println(v)
}
开发者ID:uileyar,项目名称:helloworld,代码行数:7,代码来源:injecttest.go
示例4: TestInterfaceIncludingPrivate
func TestInterfaceIncludingPrivate(t *testing.T) {
var v struct {
A Answerable `inject:""`
B *TypeNestedStruct `inject:"private"`
C *TypeAnswerStruct `inject:""`
}
if err := inject.Populate(&v); err != nil {
t.Fatal(err)
}
if v.A == nil {
t.Fatal("v.A is nil")
}
if v.B == nil {
t.Fatal("v.B is nil")
}
if v.C == nil {
t.Fatal("v.C is nil")
}
if v.A != v.C {
t.Fatal("v.A != v.C")
}
if v.A == v.B {
t.Fatal("v.A == v.B")
}
}
开发者ID:stellar,项目名称:bridge-server,代码行数:25,代码来源:inject_test.go
示例5: TestInterfaceIncludingPrivate
func TestInterfaceIncludingPrivate() {
var v struct {
A Answerable `inject:""`
B *TypeNestedStruct `inject:"private"`
C *TypeAnswerStruct `inject:""`
}
if err := inject.Populate(&v); err != nil {
fmt.Println(err)
}
fmt.Println(v)
if v.A == nil {
fmt.Println("v.A is nil")
}
if v.B == nil {
fmt.Println("v.B is nil")
}
if v.C == nil {
fmt.Println("v.C is nil")
}
if v.A != v.C {
fmt.Println("v.A != v.C")
}
if v.A == v.B {
fmt.Println("v.A == v.B")
}
}
开发者ID:uileyar,项目名称:helloworld,代码行数:27,代码来源:injecttest.go
示例6: TestInjectWithStructValue
func TestInjectWithStructValue(t *testing.T) {
var v TypeWithStructValue
if err := inject.Populate(&v); err != nil {
t.Fatal(err)
}
if v.Inline.A == nil {
t.Fatal("v.Inline.A is nil")
}
}
开发者ID:stellar,项目名称:bridge-server,代码行数:9,代码来源:inject_test.go
示例7: TagWithJustColon
func TagWithJustColon() {
var a TypeWithJustColon
err := inject.Populate(&a)
if err == nil {
fmt.Println(a)
} else {
fmt.Println(err)
}
}
开发者ID:uileyar,项目名称:helloworld,代码行数:9,代码来源:injecttest.go
示例8: initApp
func initApp() HomomorphicEncryptionBackendApp {
var app HomomorphicEncryptionBackendApp
inject.Populate(&app)
app.Router.init()
return app
}
开发者ID:VJftw,项目名称:homomorphic-encryption,代码行数:10,代码来源:main.go
示例9: TestInjectMap
func TestInjectMap(t *testing.T) {
var v struct {
A map[string]int `inject:"private"`
}
if err := inject.Populate(&v); err != nil {
t.Fatal(err)
}
if v.A == nil {
t.Fatal("v.A is nil")
}
}
开发者ID:stellar,项目名称:bridge-server,代码行数:11,代码来源:inject_test.go
示例10: TestErrorOnNonPointerStructInject
func TestErrorOnNonPointerStructInject(t *testing.T) {
var a TypeWithNonPointerStructInject
err := inject.Populate(&a)
if err == nil {
t.Fatalf("expected error for %+v", a)
}
const msg = "found inject tag on unsupported field A in type *inject_test.TypeWithNonPointerStructInject"
if err.Error() != msg {
t.Fatalf("expected:\n%s\nactual:\n%s", msg, err.Error())
}
}
开发者ID:stellar,项目名称:bridge-server,代码行数:12,代码来源:inject_test.go
示例11: TestProvideTwoOfTheSameWithPopulate
func TestProvideTwoOfTheSameWithPopulate(t *testing.T) {
a := TypeAnswerStruct{}
err := inject.Populate(&a, &a)
if err == nil {
t.Fatal("expected error")
}
const msg = "provided two unnamed instances of type *github.com/facebookgo/inject_test.TypeAnswerStruct"
if err.Error() != msg {
t.Fatalf("expected:\n%s\nactual:\n%s", msg, err.Error())
}
}
开发者ID:stellar,项目名称:bridge-server,代码行数:12,代码来源:inject_test.go
示例12: TestPrivateIsFollowed
func TestPrivateIsFollowed(t *testing.T) {
var v struct {
A *TypeNestedStruct `inject:"private"`
}
if err := inject.Populate(&v); err != nil {
t.Fatal(err)
}
if v.A.A == nil {
t.Fatal("v.A.A is nil")
}
}
开发者ID:stellar,项目名称:bridge-server,代码行数:12,代码来源:inject_test.go
示例13: TestInjectInterfaceMissing
func TestInjectInterfaceMissing(t *testing.T) {
var v TypeInjectInterfaceMissing
err := inject.Populate(&v)
if err == nil {
t.Fatal("did not find expected error")
}
const msg = "found no assignable value for field Answerable in type *inject_test.TypeInjectInterfaceMissing"
if err.Error() != msg {
t.Fatalf("expected:\n%s\nactual:\n%s", msg, err.Error())
}
}
开发者ID:stellar,项目名称:bridge-server,代码行数:12,代码来源:inject_test.go
示例14: TestInjectTwoSatisfyInterface
func TestInjectTwoSatisfyInterface(t *testing.T) {
var v TypeInjectTwoSatisfyInterface
err := inject.Populate(&v)
if err == nil {
t.Fatal("did not find expected error")
}
const msg = "found two assignable values for field Answerable in type *inject_test.TypeInjectTwoSatisfyInterface. one type *inject_test.TypeAnswerStruct with value &{0 0} and another type *inject_test.TypeNestedStruct with value <*inject_test.TypeNestedStruct Value>"
if err.Error() != msg {
t.Fatalf("expected:\n%s\nactual:\n%s", msg, err.Error())
}
}
开发者ID:stellar,项目名称:bridge-server,代码行数:12,代码来源:inject_test.go
示例15: TestInjectPrivateInterface
func TestInjectPrivateInterface(t *testing.T) {
var v TypeInjectPrivateInterface
err := inject.Populate(&v)
if err == nil {
t.Fatal("did not find expected error")
}
const msg = "found private inject tag on interface field Answerable in type *inject_test.TypeInjectPrivateInterface"
if err.Error() != msg {
t.Fatalf("expected:\n%s\nactual:\n%s", msg, err.Error())
}
}
开发者ID:stellar,项目名称:bridge-server,代码行数:12,代码来源:inject_test.go
示例16: TestInjectOnPrivateInterfaceField
func TestInjectOnPrivateInterfaceField(t *testing.T) {
var a TypeWithInjectOnPrivateField
err := inject.Populate(&a)
if err == nil {
t.Fatal("did not find expected error")
}
const msg = "inject requested on unexported field a in type *inject_test.TypeWithInjectOnPrivateField"
if err.Error() != msg {
t.Fatalf("expected:\n%s\nactual:\n%s", msg, err.Error())
}
}
开发者ID:stellar,项目名称:bridge-server,代码行数:12,代码来源:inject_test.go
示例17: TestInjectMapWithoutPrivate
func TestInjectMapWithoutPrivate(t *testing.T) {
var v TypeInjectWithMapWithoutPrivate
err := inject.Populate(&v)
if err == nil {
t.Fatalf("expected error for %+v", v)
}
const msg = "inject on map field A in type *inject_test.TypeInjectWithMapWithoutPrivate must be named or private"
if err.Error() != msg {
t.Fatalf("expected:\n%s\nactual:\n%s", msg, err.Error())
}
}
开发者ID:stellar,项目名称:bridge-server,代码行数:12,代码来源:inject_test.go
示例18: TestInjectInlinePrivate
func TestInjectInlinePrivate(t *testing.T) {
var v TypeWithInlineStructWithPrivate
err := inject.Populate(&v)
if err == nil {
t.Fatal("was expecting an error")
}
const msg = "cannot use private inject on inline struct on field Inline in type *inject_test.TypeWithInlineStructWithPrivate"
if err.Error() != msg {
t.Fatalf("expected:\n%s\nactual:\n%s", msg, err.Error())
}
}
开发者ID:stellar,项目名称:bridge-server,代码行数:12,代码来源:inject_test.go
示例19: TestTagWithMissingNamed
func TestTagWithMissingNamed(t *testing.T) {
var a TypeWithMissingNamed
err := inject.Populate(&a)
if err == nil {
t.Fatalf("expected error for %+v", a)
}
const msg = "did not find object named foo required by field A in type *inject_test.TypeWithMissingNamed"
if err.Error() != msg {
t.Fatalf("expected:\n%s\nactual:\n%s", msg, err.Error())
}
}
开发者ID:stellar,项目名称:bridge-server,代码行数:12,代码来源:inject_test.go
示例20: TestTagWithOpenQuote
func TestTagWithOpenQuote(t *testing.T) {
var a TypeWithOpenQuote
err := inject.Populate(&a)
if err == nil {
t.Fatalf("expected error for %+v", a)
}
const msg = "unexpected tag format `inject:\"` for field A in type *inject_test.TypeWithOpenQuote"
if err.Error() != msg {
t.Fatalf("expected:\n%s\nactual:\n%s", msg, err.Error())
}
}
开发者ID:stellar,项目名称:bridge-server,代码行数:12,代码来源:inject_test.go
注:本文中的github.com/facebookgo/inject.Populate函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论