Esempio n. 1
0
        public void SourceOfEntityContainerElementIsCorrect()
        {
            var configuration = new DomainConfiguration();
            var modelMapper   = new TestModelMapper();

            configuration.AddHookPoint(typeof(IModelMapper), modelMapper);
            configuration.EnsureCommitted();
            var context   = new DomainContext(configuration);
            var arguments = new object[0];

            var source = Domain.Source(context, "Test", arguments);

            Assert.Equal(typeof(string), source.ElementType);
            Assert.True(source.Expression is MethodCallExpression);
            var methodCall = source.Expression as MethodCallExpression;

            Assert.Null(methodCall.Object);
            Assert.Equal(typeof(DomainData), methodCall.Method.DeclaringType);
            Assert.Equal("Source", methodCall.Method.Name);
            Assert.Equal(typeof(string), methodCall.Method.GetGenericArguments()[0]);
            Assert.Equal(2, methodCall.Arguments.Count);
            Assert.True(methodCall.Arguments[0] is ConstantExpression);
            Assert.Equal("Test", (methodCall.Arguments[0] as ConstantExpression).Value);
            Assert.True(methodCall.Arguments[1] is ConstantExpression);
            Assert.Equal(arguments, (methodCall.Arguments[1] as ConstantExpression).Value);
            Assert.Equal(source.Expression.ToString(), source.ToString());
        }
Esempio n. 2
0
        public async Task QueryAsyncCorrectlyUsesQueryHandler()
        {
            var configuration = new DomainConfiguration();
            var modelHandler  = new TestModelHandler();
            var modelMapper   = new TestModelMapper();
            var queryHandler  = new TestQueryHandler();

            configuration.SetHookPoint(typeof(IModelHandler), modelHandler);
            configuration.SetHookPoint(typeof(IModelMapper), modelMapper);
            configuration.SetHookPoint(typeof(IQueryHandler), queryHandler);
            configuration.EnsureCommitted();
            var context = new DomainContext(configuration);

            modelHandler.DomainContext = context;
            modelHandler.Model         = new EdmModel();
            queryHandler.DomainContext = context;
            queryHandler.Results       = new string[] { "Test" };

            var queryRequest = new QueryRequest(
                Domain.Source <string>(context, "Test"), true);
            var queryResult = await Domain.QueryAsync(context, queryRequest);

            Assert.True(queryResult.Results.Cast <string>()
                        .SequenceEqual(new string[] { "Test" }));
        }
Esempio n. 3
0
        public void GenericSourceOfComposableFunctionIsCorrect()
        {
            var configuration = new DomainConfiguration();
            var modelMapper   = new TestModelMapper();

            configuration.SetHookPoint(typeof(IModelMapper), modelMapper);
            configuration.EnsureCommitted();
            var context   = new DomainContext(configuration);
            var arguments = new object[0];

            var source = Domain.Source <DateTime>(context,
                                                  "Namespace", "Function", arguments);

            Assert.Equal(typeof(DateTime), source.ElementType);
            Assert.True(source.Expression is MethodCallExpression);
            var methodCall = source.Expression as MethodCallExpression;

            Assert.Null(methodCall.Object);
            Assert.Equal(typeof(DomainData), methodCall.Method.DeclaringType);
            Assert.Equal("Source", methodCall.Method.Name);
            Assert.Equal(typeof(DateTime), methodCall.Method.GetGenericArguments()[0]);
            Assert.Equal(3, methodCall.Arguments.Count);
            Assert.True(methodCall.Arguments[0] is ConstantExpression);
            Assert.Equal("Namespace", (methodCall.Arguments[0] as ConstantExpression).Value);
            Assert.True(methodCall.Arguments[1] is ConstantExpression);
            Assert.Equal("Function", (methodCall.Arguments[1] as ConstantExpression).Value);
            Assert.True(methodCall.Arguments[2] is ConstantExpression);
            Assert.Equal(arguments, (methodCall.Arguments[2] as ConstantExpression).Value);
            Assert.Equal(source.Expression.ToString(), source.ToString());
        }
Esempio n. 4
0
        public void GenericSourceOfComposableFunctionIsCorrect()
        {
            var modelMapper   = new TestModelMapper();
            var configuration = new ServiceCollection()
                                .CutoffPrevious <IModelMapper>(modelMapper)
                                .BuildApiConfiguration();
            var context   = new ApiContext(configuration);
            var arguments = new object[0];

            var source = context.Source <DateTime>("Namespace", "Function", arguments);

            Assert.Equal(typeof(DateTime), source.ElementType);
            Assert.True(source.Expression is MethodCallExpression);
            var methodCall = source.Expression as MethodCallExpression;

            Assert.Null(methodCall.Object);
            Assert.Equal(typeof(DataSourceStubs), methodCall.Method.DeclaringType);
            Assert.Equal("Source", methodCall.Method.Name);
            Assert.Equal(typeof(DateTime), methodCall.Method.GetGenericArguments()[0]);
            Assert.Equal(3, methodCall.Arguments.Count);
            Assert.True(methodCall.Arguments[0] is ConstantExpression);
            Assert.Equal("Namespace", (methodCall.Arguments[0] as ConstantExpression).Value);
            Assert.True(methodCall.Arguments[1] is ConstantExpression);
            Assert.Equal("Function", (methodCall.Arguments[1] as ConstantExpression).Value);
            Assert.True(methodCall.Arguments[2] is ConstantExpression);
            Assert.Equal(arguments, (methodCall.Arguments[2] as ConstantExpression).Value);
            Assert.Equal(source.Expression.ToString(), source.ToString());
        }
Esempio n. 5
0
        public void GenericSourceOfComposableFunctionThrowsIfWrongType()
        {
            var modelMapper   = new TestModelMapper();
            var configuration = new ServiceCollection()
                                .CutoffPrevious <IModelMapper>(modelMapper)
                                .BuildApiConfiguration();
            var context   = new ApiContext(configuration);
            var arguments = new object[0];

            Assert.Throws <ArgumentException>(() => context.Source <object>("Namespace", "Function", arguments));
        }
Esempio n. 6
0
        public void GenericSourceOfEntityContainerElementThrowsIfWrongType()
        {
            var modelMapper   = new TestModelMapper();
            var configuration = new ServiceCollection()
                                .CutoffPrevious <IModelMapper>(modelMapper)
                                .BuildApiConfiguration();
            var context   = new ApiContext(configuration);
            var arguments = new object[0];

            Assert.Throws <ArgumentException>(() => context.Source <object>("Test", arguments));
        }
Esempio n. 7
0
        public void GenericSourceOfComposableFunctionThrowsIfWrongType()
        {
            var configuration = new DomainConfiguration();
            var modelMapper   = new TestModelMapper();

            configuration.SetHookPoint(typeof(IModelMapper), modelMapper);
            configuration.EnsureCommitted();
            var context   = new DomainContext(configuration);
            var arguments = new object[0];

            Assert.Throws <ArgumentException>(() => Domain.Source <object>(context, "Namespace", "Function", arguments));
        }
Esempio n. 8
0
        public void SourceQueryProviderCannotExecute()
        {
            var modelMapper   = new TestModelMapper();
            var configuration = new ServiceCollection()
                                .CutoffPrevious <IModelMapper>(modelMapper)
                                .BuildApiConfiguration();
            var context = new ApiContext(configuration);

            var source = context.Source <string>("Test");

            Assert.Throws <NotSupportedException>(() => source.Provider.Execute(null));
        }
Esempio n. 9
0
        public void SourceQueryableCannotEnumerate()
        {
            var modelMapper   = new TestModelMapper();
            var configuration = new ServiceCollection()
                                .CutoffPrevious <IModelMapper>(modelMapper)
                                .BuildApiConfiguration();
            var context = new ApiContext(configuration);

            var source = context.Source <string>("Test");

            Assert.Throws <NotSupportedException>(() => (source as IEnumerable).GetEnumerator());
        }
Esempio n. 10
0
        public void GenericSourceOfEntityContainerElementThrowsIfWrongType()
        {
            var configuration = new ApiConfiguration();
            var modelMapper   = new TestModelMapper();

            configuration.AddHookHandler <IModelMapper>(modelMapper);
            configuration.EnsureCommitted();
            var context   = new ApiContext(configuration);
            var arguments = new object[0];

            Assert.Throws <ArgumentException>(() => Api.Source <object>(context, "Test", arguments));
        }
Esempio n. 11
0
        public void GenericSourceOfComposableFunctionThrowsIfWrongType()
        {
            var configuration = new ApiConfiguration();
            var modelMapper   = new TestModelMapper();

            configuration.AddHookHandler <IModelMapper>(modelMapper);
            configuration.EnsureCommitted();
            var context   = new ApiContext(configuration);
            var arguments = new object[0];

            Assert.Throws <ArgumentException>(() => Api.Source <object>(context, "Namespace", "Function", arguments));
        }
Esempio n. 12
0
        public void SourceQueryableCannotEnumerate()
        {
            var configuration = new DomainConfiguration();
            var modelMapper   = new TestModelMapper();

            configuration.SetHookPoint(typeof(IModelMapper), modelMapper);
            configuration.EnsureCommitted();
            var context = new DomainContext(configuration);

            var source = Domain.Source <string>(context, "Test");

            Assert.Throws <NotSupportedException>(() => (source as IEnumerable).GetEnumerator());
        }
Esempio n. 13
0
        public void SourceQueryProviderCannotExecute()
        {
            var configuration = new DomainConfiguration();
            var modelMapper   = new TestModelMapper();

            configuration.SetHookPoint(typeof(IModelMapper), modelMapper);
            configuration.EnsureCommitted();
            var context = new DomainContext(configuration);

            var source = Domain.Source <string>(context, "Test");

            Assert.Throws <NotSupportedException>(() => source.Provider.Execute(null));
        }
Esempio n. 14
0
        public void SourceQueryProviderCannotExecute()
        {
            var configuration = new ApiConfiguration();
            var modelMapper   = new TestModelMapper();

            configuration.AddHookHandler <IModelMapper>(modelMapper);
            configuration.EnsureCommitted();
            var context = new ApiContext(configuration);

            var source = Api.Source <string>(context, "Test");

            Assert.Throws <NotSupportedException>(() => source.Provider.Execute(null));
        }
Esempio n. 15
0
        public void SourceQueryableCannotEnumerate()
        {
            var configuration = new ApiConfiguration();
            var modelMapper   = new TestModelMapper();

            configuration.AddHookHandler <IModelMapper>(modelMapper);
            configuration.EnsureCommitted();
            var context = new ApiContext(configuration);

            var source = Api.Source <string>(context, "Test");

            Assert.Throws <NotSupportedException>(() => (source as IEnumerable).GetEnumerator());
        }
Esempio n. 16
0
            public static new IServiceCollection ConfigureApi(Type apiType, IServiceCollection services)
            {
                var modelBuilder = new TestModelBuilder();
                var modelMapper = new TestModelMapper();
                var querySourcer = new TestQuerySourcer();
                var changeSetPreparer = new TestChangeSetInitializer();
                var submitExecutor = new TestSubmitExecutor();

                services.AddCoreServices(apiType);
                services.AddService<IModelBuilder>((sp, next) => modelBuilder);
                services.AddService<IModelMapper>((sp, next) => modelMapper);
                services.AddService<IQueryExpressionSourcer>((sp, next) => querySourcer);
                services.AddService<IChangeSetInitializer>((sp, next) => changeSetPreparer);
                services.AddService<ISubmitExecutor>((sp, next) => submitExecutor);

                return services;
            }
Esempio n. 17
0
            protected override IServiceCollection ConfigureApi(IServiceCollection services)
            {
                var modelBuilder      = new TestModelBuilder();
                var modelMapper       = new TestModelMapper();
                var querySourcer      = new TestQuerySourcer();
                var changeSetPreparer = new TestChangeSetInitializer();
                var submitExecutor    = new TestSubmitExecutor();

                services.AddCoreServices(this.GetType());
                services.AddService <IModelBuilder>((sp, next) => modelBuilder);
                services.AddService <IModelMapper>((sp, next) => modelMapper);
                services.AddService <IQueryExpressionSourcer>((sp, next) => querySourcer);
                services.AddService <IChangeSetInitializer>((sp, next) => changeSetPreparer);
                services.AddService <ISubmitExecutor>((sp, next) => submitExecutor);

                return(services);
            }
Esempio n. 18
0
            protected override IServiceCollection ConfigureApi(IServiceCollection services)
            {
                var modelBuilder = new TestModelBuilder();
                var modelMapper = new TestModelMapper();
                var querySourcer = new TestQuerySourcer();
                var changeSetPreparer = new TestChangeSetPreparer();
                var submitExecutor = new TestSubmitExecutor();

                services.CutoffPrevious<IQueryExecutor>(DefaultQueryExecutor.Instance);
                services.CutoffPrevious<IModelBuilder>(modelBuilder);
                services.CutoffPrevious<IModelMapper>(modelMapper);
                services.CutoffPrevious<IQueryExpressionSourcer>(querySourcer);
                services.CutoffPrevious<IChangeSetPreparer>(changeSetPreparer);
                services.CutoffPrevious<ISubmitExecutor>(submitExecutor);

                return services;
            }
Esempio n. 19
0
            protected override IServiceCollection ConfigureApi(IServiceCollection services)
            {
                var modelBuilder      = new TestModelBuilder();
                var modelMapper       = new TestModelMapper();
                var querySourcer      = new TestQuerySourcer();
                var changeSetPreparer = new TestChangeSetPreparer();
                var submitExecutor    = new TestSubmitExecutor();

                services.CutoffPrevious <IQueryExecutor>(DefaultQueryExecutor.Instance);
                services.CutoffPrevious <IModelBuilder>(modelBuilder);
                services.CutoffPrevious <IModelMapper>(modelMapper);
                services.CutoffPrevious <IQueryExpressionSourcer>(querySourcer);
                services.CutoffPrevious <IChangeSetPreparer>(changeSetPreparer);
                services.CutoffPrevious <ISubmitExecutor>(submitExecutor);

                return(services);
            }
Esempio n. 20
0
            public static new IServiceCollection ConfigureApi(Type apiType, IServiceCollection services)
            {
                var modelBuilder      = new TestModelBuilder();
                var modelMapper       = new TestModelMapper();
                var querySourcer      = new TestQuerySourcer();
                var changeSetPreparer = new TestChangeSetInitializer();
                var submitExecutor    = new TestSubmitExecutor();

                services.AddCoreServices(apiType);
                services.AddService <IModelBuilder>((sp, next) => modelBuilder);
                services.AddService <IModelMapper>((sp, next) => modelMapper);
                services.AddService <IQueryExpressionSourcer>((sp, next) => querySourcer);
                services.AddService <IChangeSetInitializer>((sp, next) => changeSetPreparer);
                services.AddService <ISubmitExecutor>((sp, next) => submitExecutor);

                return(services);
            }
Esempio n. 21
0
        public async Task SubmitAsyncCorrectlyUsesSubmitHandler()
        {
            var configuration = new DomainConfiguration();
            var modelHandler  = new TestModelHandler();
            var modelMapper   = new TestModelMapper();
            var submitHandler = new TestSubmitHandler();

            configuration.SetHookPoint(typeof(IModelHandler), modelHandler);
            configuration.SetHookPoint(typeof(IModelMapper), modelMapper);
            configuration.SetHookPoint(typeof(ISubmitHandler), submitHandler);
            configuration.EnsureCommitted();
            var context = new DomainContext(configuration);

            modelHandler.DomainContext  = context;
            modelHandler.Model          = new EdmModel();
            submitHandler.DomainContext = context;
            submitHandler.ChangeSet     = new ChangeSet();

            var submitResult = await Domain.SubmitAsync(context);

            Assert.Same(submitHandler.ChangeSet,
                        submitResult.CompletedChangeSet);
        }
Esempio n. 22
0
        public void GenericSourceOfEntityContainerElementThrowsIfWrongType()
        {
            var modelMapper = new TestModelMapper();
            var configuration = new ServiceCollection()
                .CutoffPrevious<IModelMapper>(modelMapper)
                .BuildApiConfiguration();
            var context = new ApiContext(configuration);
            var arguments = new object[0];

            Assert.Throws<ArgumentException>(() => context.Source<object>("Test", arguments));
        }
Esempio n. 23
0
        public void GenericSourceOfComposableFunctionIsCorrect()
        {
            var modelMapper = new TestModelMapper();
            var configuration = new ServiceCollection()
                .CutoffPrevious<IModelMapper>(modelMapper)
                .BuildApiConfiguration();
            var context = new ApiContext(configuration);
            var arguments = new object[0];

            var source = context.Source<DateTime>("Namespace", "Function", arguments);
            Assert.Equal(typeof(DateTime), source.ElementType);
            Assert.True(source.Expression is MethodCallExpression);
            var methodCall = source.Expression as MethodCallExpression;
            Assert.Null(methodCall.Object);
            Assert.Equal(typeof(DataSourceStubs), methodCall.Method.DeclaringType);
            Assert.Equal("Source", methodCall.Method.Name);
            Assert.Equal(typeof(DateTime), methodCall.Method.GetGenericArguments()[0]);
            Assert.Equal(3, methodCall.Arguments.Count);
            Assert.True(methodCall.Arguments[0] is ConstantExpression);
            Assert.Equal("Namespace", (methodCall.Arguments[0] as ConstantExpression).Value);
            Assert.True(methodCall.Arguments[1] is ConstantExpression);
            Assert.Equal("Function", (methodCall.Arguments[1] as ConstantExpression).Value);
            Assert.True(methodCall.Arguments[2] is ConstantExpression);
            Assert.Equal(arguments, (methodCall.Arguments[2] as ConstantExpression).Value);
            Assert.Equal(source.Expression.ToString(), source.ToString());
        }
Esempio n. 24
0
        public void SourceQueryableCannotEnumerate()
        {
            var modelMapper = new TestModelMapper();
            var configuration = new ServiceCollection()
                .CutoffPrevious<IModelMapper>(modelMapper)
                .BuildApiConfiguration();
            var context = new ApiContext(configuration);

            var source = context.Source<string>("Test");
            Assert.Throws<NotSupportedException>(() => (source as IEnumerable).GetEnumerator());
        }
Esempio n. 25
0
        public void SourceQueryProviderCannotExecute()
        {
            var modelMapper = new TestModelMapper();
            var configuration = new ServiceCollection()
                .CutoffPrevious<IModelMapper>(modelMapper)
                .BuildApiConfiguration();
            var context = new ApiContext(configuration);

            var source = context.Source<string>("Test");
            Assert.Throws<NotSupportedException>(() => source.Provider.Execute(null));
        }
Esempio n. 26
0
        public void GenericSourceOfComposableFunctionThrowsIfWrongType()
        {
            var modelMapper = new TestModelMapper();
            var configuration = new ServiceCollection()
                .CutoffPrevious<IModelMapper>(modelMapper)
                .BuildApiConfiguration();
            var context = new ApiContext(configuration);
            var arguments = new object[0];

            Assert.Throws<ArgumentException>(() => context.Source<object>("Namespace", "Function", arguments));
        }
Esempio n. 27
0
 public CollectionsType()
 {
     TestModelMappersList  = new List <TestModelMapper>();
     TestModelMappersArray = new TestModelMapper[0];
     ValueTypeArray        = new string[0];
 }