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()); }
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" })); }
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()); }
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()); }
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)); }
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)); }
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)); }
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)); }
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()); }
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)); }
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)); }
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()); }
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)); }
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)); }
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()); }
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; }
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); }
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; }
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); }
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); }
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); }
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)); }
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()); }
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()); }
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)); }
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)); }
public CollectionsType() { TestModelMappersList = new List <TestModelMapper>(); TestModelMappersArray = new TestModelMapper[0]; ValueTypeArray = new string[0]; }