|
|
- package container
-
- import (
- "fmt"
- "leit.com/LAPP_CHEERSSON_BACKEND/global"
- "reflect"
- "testing"
- )
-
- func TestFactory_Create_NullContext(t *testing.T) {
-
- factory := Factory(reflect.ValueOf(FactoryOfTestElement))
-
- _, err := factory.Create(nil)
- if err == nil {
- t.Fatalf("意外的没有错误!")
- }
- if err.Error() != fmt.Sprintf("会话上下文不能为空!") {
- t.Fatalf("意外错误:%s", err.Error())
- }
- }
-
- func TestFactory_Create_WithContext(t *testing.T) {
-
- userId := "userId"
- user := &global.User{UserId: userId}
- context, err := NewSessionContext(user, transactionHandlerFactoryMock)
- if err != nil {
- t.Fatalf("意外错误:%s", err.Error())
- }
- factory := Factory(reflect.ValueOf(FactoryOfTestServiceWithContext))
-
- instance, err := factory.Create(context)
- if err != nil {
- t.Fatalf("意外错误:%s", err.Error())
- }
- impl, ok := (reflect.Value(instance)).Interface().(*TestServiceImplementWithContext)
- if !ok {
- t.Fatalf("实例类型错误!")
- }
- if impl.context == nil {
- t.Fatalf("会话上下文不能为空!")
- }
- if impl.context != context {
- t.Fatalf("会话上下文设置错误!")
- }
- if impl.context.user.UserId != userId {
- t.Fatalf("会话上下文内容错误!")
- }
- }
-
- func TestFactory_Create_WithContextUsingPointer(t *testing.T) {
-
- userId := "userId"
- user := &global.User{UserId: userId}
- context, err := NewSessionContext(user, transactionHandlerFactoryMock)
- if err != nil {
- t.Fatalf("意外错误:%s", err.Error())
- }
- factory := Factory(reflect.ValueOf(FactoryOfTestServiceImplementWithContext))
-
- instance, err := factory.Create(context)
- if err != nil {
- t.Fatalf("意外错误:%s", err.Error())
- }
- impl, ok := (reflect.Value(instance)).Interface().(*TestServiceImplementWithContext)
- if !ok {
- t.Fatalf("实例类型错误!")
- }
- if impl.context == nil {
- t.Fatalf("会话上下文不能为空!")
- }
- if impl.context != context {
- t.Fatalf("会话上下文设置错误!")
- }
- if impl.context.user.UserId != userId {
- t.Fatalf("会话上下文内容错误!")
- }
- }
-
- func TestFactory_Create_WithContextUsingStruct(t *testing.T) {
-
- userId := "userId"
- user := &global.User{UserId: userId}
- context, err := NewSessionContext(user, transactionHandlerFactoryMock)
- if err != nil {
- t.Fatalf("意外错误:%s", err.Error())
- }
- factory := Factory(reflect.ValueOf(FactoryOfTestServiceImplementWithContextStruct))
-
- _, err = factory.Create(context)
- if err != nil {
- t.Fatalf("意外错误:%s", err.Error())
- }
- }
-
- func TestFactory_Create_UsingStructFactory(t *testing.T) {
-
- userId := "userId"
- user := &global.User{UserId: userId}
- context, err := NewSessionContext(user, transactionHandlerFactoryMock)
- if err != nil {
- t.Fatalf("意外错误:%s", err.Error())
- }
- factory := Factory(reflect.ValueOf(FactoryOfTestToString))
-
- _, err = factory.Create(context)
- if err != nil {
- t.Fatalf("意外错误:%s", err.Error())
- }
- }
-
- func TestFactory_Create_UsingIntFactory(t *testing.T) {
-
- userId := "userId"
- user := &global.User{UserId: userId}
- context, err := NewSessionContext(user, transactionHandlerFactoryMock)
- if err != nil {
- t.Fatalf("意外错误:%s", err.Error())
- }
- factory := Factory(reflect.ValueOf(FactoryOfInt))
-
- _, err = factory.Create(context)
- if err != nil {
- t.Fatalf("意外错误:%s", err.Error())
- }
- }
-
- func TestFactory_Create_WithFactoryOfNullInterface(t *testing.T) {
-
- userId := "userId"
- user := &global.User{UserId: userId}
- context, err := NewSessionContext(user, transactionHandlerFactoryMock)
- if err != nil {
- t.Fatalf("意外错误:%s", err.Error())
- }
-
- factory := Factory(reflect.ValueOf(FactoryOfNullTestService))
-
- _, err = factory.Create(context)
- if err == nil {
- t.Fatalf("意外的没有错误!")
- }
- if err.Error() != fmt.Sprintf("实际值不能是空接口!") {
- t.Fatalf("意外错误:%s", err.Error())
- }
- }
-
- func TestFactory_Create_WithFactoryOfNullPointer(t *testing.T) {
-
- userId := "userId"
- user := &global.User{UserId: userId}
- context, err := NewSessionContext(user, transactionHandlerFactoryMock)
- if err != nil {
- t.Fatalf("意外错误:%s", err.Error())
- }
-
- factory := Factory(reflect.ValueOf(FactoryOfNullTestServiceImplementWithContext))
-
- _, err = factory.Create(context)
- if err == nil {
- t.Fatalf("意外的没有错误!")
- }
- if err.Error() != fmt.Sprintf("实际值不能是空指针!") {
- t.Fatalf("意外错误:%s", err.Error())
- }
- }
-
- func TestFactory_Create_WithTooManyIn(t *testing.T) {
-
- userId := "userId"
- user := &global.User{UserId: userId}
- context, err := NewSessionContext(user, transactionHandlerFactoryMock)
- if err != nil {
- t.Fatalf("意外错误:%s", err.Error())
- }
-
- factory := Factory(reflect.ValueOf(FactoryOfTestWithTooManyInSetContext))
-
- _, err = factory.Create(context)
- if err == nil {
- t.Fatalf("意外的没有错误!")
- }
- if err.Error() != fmt.Sprintf("设置器参数数量不正确!") {
- t.Fatalf("意外错误:%s", err.Error())
- }
- }
-
- func TestFactory_Create_WithNoIn(t *testing.T) {
-
- userId := "userId"
- user := &global.User{UserId: userId}
- context, err := NewSessionContext(user, transactionHandlerFactoryMock)
- if err != nil {
- t.Fatalf("意外错误:%s", err.Error())
- }
-
- factory := Factory(reflect.ValueOf(FactoryOfTestWithNoInSetContext))
-
- _, err = factory.Create(context)
- if err == nil {
- t.Fatalf("意外的没有错误!")
- }
- if err.Error() != fmt.Sprintf("设置器参数数量不正确!") {
- t.Fatalf("意外错误:%s", err.Error())
- }
- }
-
- func TestFactory_Create_WithReturnValue(t *testing.T) {
-
- userId := "userId"
- user := &global.User{UserId: userId}
- context, err := NewSessionContext(user, transactionHandlerFactoryMock)
- if err != nil {
- t.Fatalf("意外错误:%s", err.Error())
- }
-
- factory := Factory(reflect.ValueOf(FactoryOfTestWithReturnValueSetContext))
-
- _, err = factory.Create(context)
- if err == nil {
- t.Fatalf("意外的没有错误!")
- }
- if err.Error() != fmt.Sprintf("设置器返回值数量不正确!") {
- t.Fatalf("意外错误:%s", err.Error())
- }
- }
-
- func TestFactory_Create_WithErrorIn(t *testing.T) {
-
- userId := "userId"
- user := &global.User{UserId: userId}
- context, err := NewSessionContext(user, transactionHandlerFactoryMock)
- if err != nil {
- t.Fatalf("意外错误:%s", err.Error())
- }
-
- factory := Factory(reflect.ValueOf(FactoryOfTestWithErrorInSetContext))
-
- _, err = factory.Create(context)
- if err == nil {
- t.Fatalf("意外的没有错误!")
- }
- if err.Error() != fmt.Sprintf("设置器类型不正确!") {
- t.Fatalf("意外错误:%s", err.Error())
- }
- }
-
- func TestFactory_SetReferences_WithEmptyMap(t *testing.T) {
-
- factory := Factory(reflect.ValueOf(FactoryOfTestServiceWithContext))
- instanceValue := reflect.Value(factory).Call(emptyParameters)[0]
-
- err := factory.setReferences(instanceValue, map[reflect.Type]reflect.Value{})
- if err != nil {
- t.Fatalf("意外错误:%s", err.Error())
- }
- }
-
- func TestFactory_SetReferences_WithTooManyIn(t *testing.T) {
-
- userId := "userId"
- user := &global.User{UserId: userId}
- context, err := NewSessionContext(user, transactionHandlerFactoryMock)
- if err != nil {
- t.Fatalf("意外错误:%s", err.Error())
- }
-
- factory := Factory(reflect.ValueOf(FactoryOfTestWithTooManyInSetContext))
- instanceValue := reflect.Value(factory).Call(emptyParameters)[0]
-
- err = factory.setReferences(instanceValue, map[reflect.Type]reflect.Value{sessionContextType: reflect.ValueOf(context)})
- if err == nil {
- t.Fatalf("意外的没有错误!")
- }
- if err.Error() != fmt.Sprintf("设置器参数数量不正确!") {
- t.Fatalf("意外错误:%s", err.Error())
- }
- }
-
- func TestFactory_SetReferences_WithNoIn(t *testing.T) {
-
- userId := "userId"
- user := &global.User{UserId: userId}
- context, err := NewSessionContext(user, transactionHandlerFactoryMock)
- if err != nil {
- t.Fatalf("意外错误:%s", err.Error())
- }
-
- factory := Factory(reflect.ValueOf(FactoryOfTestWithNoInSetContext))
- instanceValue := reflect.Value(factory).Call(emptyParameters)[0]
-
- err = factory.setReferences(instanceValue, map[reflect.Type]reflect.Value{sessionContextType: reflect.ValueOf(context)})
- if err == nil {
- t.Fatalf("意外的没有错误!")
- }
- if err.Error() != fmt.Sprintf("设置器参数数量不正确!") {
- t.Fatalf("意外错误:%s", err.Error())
- }
- }
-
- func TestFactory_SetReferences_WithReturnValue(t *testing.T) {
-
- userId := "userId"
- user := &global.User{UserId: userId}
- context, err := NewSessionContext(user, transactionHandlerFactoryMock)
- if err != nil {
- t.Fatalf("意外错误:%s", err.Error())
- }
-
- factory := Factory(reflect.ValueOf(FactoryOfTestWithReturnValueSetContext))
- instanceValue := reflect.Value(factory).Call(emptyParameters)[0]
-
- err = factory.setReferences(instanceValue, map[reflect.Type]reflect.Value{sessionContextType: reflect.ValueOf(context)})
- if err == nil {
- t.Fatalf("意外的没有错误!")
- }
- if err.Error() != fmt.Sprintf("设置器返回值数量不正确!") {
- t.Fatalf("意外错误:%s", err.Error())
- }
- }
-
- func TestFactory_SetReferences_WithErrorIn(t *testing.T) {
-
- userId := "userId"
- user := &global.User{UserId: userId}
- context, err := NewSessionContext(user, transactionHandlerFactoryMock)
- if err != nil {
- t.Fatalf("意外错误:%s", err.Error())
- }
-
- factory := Factory(reflect.ValueOf(FactoryOfTestWithErrorInSetContext))
- instanceValue := reflect.Value(factory).Call(emptyParameters)[0]
-
- err = factory.setReferences(instanceValue, map[reflect.Type]reflect.Value{sessionContextType: reflect.ValueOf(context)})
- if err == nil {
- t.Fatalf("意外的没有错误!")
- }
- if err.Error() != fmt.Sprintf("设置器类型不正确!") {
- t.Fatalf("意外错误:%s", err.Error())
- }
- }
|