di/registry/registry_test.go
crusader 1a82266014 ing
2018-03-15 22:19:44 +09:00

49 lines
1.0 KiB
Go

package registry
import (
"log"
"reflect"
"testing"
"git.loafle.net/commons_go/di/annotation"
)
func TestRegisterType(t *testing.T) {
RegisterType(reflect.TypeOf((*AService)(nil)))
RegisterType(reflect.TypeOf((*BService)(nil)))
// RegisterType(reflect.TypeOf((*TestStruct2)(nil)), &cda.ComponentAnnotation{
// Name: "test1",
// })
// RegisterType(reflect.TypeOf((*TestStruct3)(nil)), &cda.ComponentAnnotation{
// Name: "test2",
// })
// fs := getFields(reflect.TypeOf((*TestStruct3)(nil)))
// log.Printf("%v", fs)
RegisterResource("List", []string{"dfdkf", "skgkfg"})
cs := GetInstance(reflect.TypeOf((*CService)(nil))).(*CService)
log.Printf("%v", cs)
}
type AService struct {
annotation.TypeAnnotation `annotation:"@Component(name=dkdkdf)"`
NameA string
}
type BService struct {
annotation.TypeAnnotation `annotation:"@Component()"`
NameB string
}
type CService struct {
AService *AService `annotation:"@Inject()"`
BService *BService `annotation:"@Inject()"`
List []string `annotation:"@Resource()"`
}