Пример #1
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" }));
        }
        public void ModelDriverShouldUsePersistenceFilterToDelegateCreateAndLoad()
        {
            var modelDriver = new TestModelHandler();

            var contentItem = new ContentItem();
            var part        = new TestModelPart();

            contentItem.Weld(part);

            ((IContentHandler)modelDriver).Creating(new CreateContentContext(contentItem));
            Assert.That(part.CreatingCalled, Is.True);
        }
        public void PartShouldBeAddedBasedOnSimplePredicate()
        {
            var modelDriver = new TestModelHandler();

            var builder = new ContentItemBuilder(new ContentTypeDefinitionBuilder().Named("testing").Build());

            ((IContentHandler)modelDriver).Activating(new ActivatingContentContext {
                Builder = builder, ContentType = "testing"
            });
            var model = builder.Build();

            Assert.That(model.Is <TestModelPart>(), Is.True);
            Assert.That(model.As <TestModelPart>(), Is.Not.Null);
        }
Пример #4
0
        public async Task GetModelAsyncCorrectlyUsesModelHandler()
        {
            var configuration = new DomainConfiguration();
            var modelHandler  = new TestModelHandler();

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

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

            var domainModel = await Domain.GetModelAsync(context);

            var domainModelType = typeof(Domain).Assembly.GetType(
                "Microsoft.Restier.Core.Model.DomainModel");

            Assert.True(domainModelType.IsAssignableFrom(domainModel.GetType()));
            Assert.Same(modelHandler.Model, domainModelType
                        .GetProperty("InnerModel").GetValue(domainModel));
        }
Пример #5
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);
        }