public async Task BaseClass_Collection_on_hierarchy_works()
        {
            var repo         = new Repository <Hierarchy>(_fixture.InMemoryStorage, new OpenRightExpressionsHelper <Hierarchy>(), _fixture.IncludeApplicator);
            var instanciator = new BaseClassInstanciator <Hierarchy>(new InheritanceConfiguration());
            var collection   = new RestCollection <Hierarchy, int>(repo, new BaseClassPatcher <Hierarchy>(_fixture.PatcherProvider, _fixture.ReflectionHelper, new InheritanceConfiguration()), instanciator);

            var candidate = _parser.Parse <Hierarchy, int>(@"{ ""type"":""super"", ""superProperty"": ""lol"" }");
            await collection.CreateAsync(candidate, new Query <Hierarchy> {
                Verb = Helpers.HttpVerbs.Post
            });
        }
        public async Task Collection_on_hierarchy_fails()
        {
            await Assert.ThrowsAsync <BadRequestException>(async() =>
            {
                var repo         = new Repository <Hierarchy>(_fixture.InMemoryStorage, new Mock <IRightExpressionsHelper <Hierarchy> >().Object, _fixture.IncludeApplicator);
                var instanciator = new BaseClassInstanciator <Hierarchy>(new InheritanceConfiguration());
                var collection   = new RestCollection <Hierarchy, int>(repo, new ObjectPatcher <Hierarchy>(_fixture.PatcherProvider, _fixture.ReflectionHelper), instanciator);

                var candidate = _parser.Parse <Hierarchy, int>(@"{ ""type"":""super"", ""superProperty"": ""lol"" }");
                await collection.CreateAsync(candidate, new Query <Hierarchy> {
                    Verb = Helpers.HttpVerbs.Post
                });
            });
        }
        public async Task Put_on_new_entity()
        {
            var id   = Guid.NewGuid();
            var user = new User {
                Id = id, Name = "Name", Salary = 1, TwitterUri = new Uri("https://twitter.com")
            };

            _fixture.InMemoryStorage.Add(user);
            await _fixture.InMemoryStorage.SaveChangesAsync();

            var users = new RestCollection <User, Guid>(_fixture.UsersRepo, new OverrideObjectPatcher <User>(_fixture.PatcherProvider), _fixture.Instanciator);
            var query = new Query <User>();

            query.Options.ChecksRights = false;

            var updated = await users.UpdateByIdAsync(id, _parser.Parse <User, Guid>(JsonConvert.SerializeObject(user)), query);

            Assert.Equal(new Guid(), updated.Id);
        }
Пример #4
0
        public async void LeftJoinShouldWork(string key, string value)
        {
            await RunCodeInsideIsolatedDatabaseAsync(async (context) =>
            {
                var unitOfWork = new UnitOfWork(context);
                context.Add(new Parent {
                    OptionalChild = new OptionalChild {
                        Name = "value"
                    }
                });
                context.Add(new Parent());
                await unitOfWork.SaveChangesAsync();

                var request = HttpVerbs.Get.NewRequest((key, value));
                var query   = QueryParserHelper.GetQueryParser <Parent>().Parse(request, true);

                var storage    = new EFStorageService(context);
                var repo       = new OpenRepository <Parent>(storage, null);
                var collection = new RestCollection <Parent, int>(repo, new ObjectPatcher <Parent>(_fixture.PatcherProvider, new ReflectionHelper()), new DefaultInstanciator <Parent>());
                var result     = (await collection.GetAsync(query)).Items;

                Assert.Single(result);
            });
        }