Ejemplo n.º 1
0
        public async Task PostShouldFailedIfForbidden()
        {
            var repo       = new Repository <User>(_fixture.InMemoryStorage, new ClosedRightExpressionsHelper <User>(), _fixture.IncludeApplicator);
            var users      = new UsersCollectionWithHardcodedGetById(repo, _fixture.PatcherProvider, _fixture.Instanciator);
            var controller = new UsersAppController(_fixture.InMemoryStorage, users);
            var query      = new Query <User> {
                Verb = Helpers.HttpVerbs.Post
            };
            var id        = Guid.NewGuid();
            var candidate = _parser.Parse <User, Guid>($@"{{ ""id"": ""{id}"" }}");

            await Assert.ThrowsAsync <ForbiddenException>(() => controller.CreateAsync(candidate, query));
        }
Ejemplo n.º 2
0
        public async Task PostShouldNotCallGetByIdOnTheCollection()
        {
            var users      = new UsersCollectionWithHardcodedGetById(_fixture.UsersRepo, _fixture.PatcherProvider, _fixture.Instanciator);
            var controller = new UsersAppController(_fixture.InMemoryStorage, users);
            var query      = new Query <User>();

            query.Options.ChecksRights = false;
            var id        = Guid.NewGuid();
            var candidate = _parser.Parse <User, Guid>($@"{{ ""id"": ""{id}"" }}");

            var user = await controller.CreateAsync(candidate, query);

            Assert.Equal(id, user.Id);
        }
Ejemplo n.º 3
0
        public async Task CreateAsyncCollectionShouldFailedIfForbidden()
        {
            var repo       = new Repository <User>(_fixture.InMemoryStorage, new ClosedRightExpressionsHelper <User>(), _fixture.IncludeApplicator);
            var users      = new UsersCollectionWithHardcodedGetById(repo, _fixture.PatcherProvider, _fixture.Instanciator);
            var controller = new UsersAppController(_fixture.InMemoryStorage, users);

            await Assert.ThrowsAsync <ForbiddenException>(() => controller.CreateAsync(new List <User> {
                new User {
                    Id = Guid.NewGuid()
                }, new User {
                    Id = Guid.NewGuid()
                }
            }));
        }
Ejemplo n.º 4
0
        public async Task PostShouldWorkIfForbiddenButExplicitelyAllowed()
        {
            var repo       = new Repository <User>(_fixture.InMemoryStorage, new ClosedRightExpressionsHelper <User>(), _fixture.IncludeApplicator);
            var users      = new UsersCollectionWithHardcodedGetById(repo, _fixture.PatcherProvider, _fixture.Instanciator);
            var controller = new UsersAppController(_fixture.InMemoryStorage, users);
            var query      = new Query <User> {
                Verb = Helpers.HttpVerbs.Post
            };

            query.Options.ChecksRights = false;
            var id        = Guid.NewGuid();
            var candidate = _parser.Parse <User, Guid>($@"{{ ""id"": ""{id}"" }}");

            var user = await controller.CreateAsync(candidate, query);

            Assert.Equal(id, user.Id);
        }
Ejemplo n.º 5
0
        public async Task CreateAsyncShouldNotCallGetByIdsOnTheCollection()
        {
            var users      = new UsersCollectionWithHardcodedGetById(_fixture.UsersRepo, _fixture.PatcherProvider, _fixture.Instanciator);
            var controller = new UsersAppController(_fixture.InMemoryStorage, users);
            var id1        = Guid.NewGuid();
            var id2        = Guid.NewGuid();

            var result = (await controller.CreateAsync(new List <User> {
                new User {
                    Id = id1
                }, new User {
                    Id = id2
                }
            })).ToList();

            Assert.Equal(id1, result[0].Id);
            Assert.Equal(id2, result[1].Id);
        }
Ejemplo n.º 6
0
        public async Task PostShouldNotCallGetByIdsOnTheCollection()
        {
            var users      = new UsersCollectionWithHardcodedGetById(_fixture.UsersRepo, _fixture.PatcherProvider, _fixture.Instanciator);
            var controller = new UsersAppController(_fixture.InMemoryStorage, users);
            var query      = new Query <User> {
                Verb = Helpers.HttpVerbs.Post
            };
            var id1        = Guid.NewGuid();
            var id2        = Guid.NewGuid();
            var candidate1 = _parser.Parse <User, Guid>($@"{{ ""id"": ""{id1}"" }}");
            var candidate2 = _parser.Parse <User, Guid>($@"{{ ""id"": ""{id2}"" }}");

            var result = (await controller.CreateAsync(new List <ICandidate <User, Guid> > {
                candidate1, candidate2
            }, query)).ToList();

            Assert.Equal(id1, result[0].Id);
            Assert.Equal(id2, result[1].Id);
        }
Ejemplo n.º 7
0
        public async Task CreateAsyncCollectionShouldWorkIfForbiddenButExplicitelyAllowed()
        {
            var repo       = new Repository <User>(_fixture.InMemoryStorage, new ClosedRightExpressionsHelper <User>(), _fixture.IncludeApplicator);
            var users      = new UsersCollectionWithHardcodedGetById(repo, _fixture.PatcherProvider, _fixture.Instanciator);
            var controller = new UsersAppController(_fixture.InMemoryStorage, users);
            var id1        = Guid.NewGuid();
            var id2        = Guid.NewGuid();

            var result = (await controller.CreateAsync(new List <User> {
                new User {
                    Id = id1
                }, new User {
                    Id = id2
                }
            }, false)).ToList();

            Assert.Equal(id1, result[0].Id);
            Assert.Equal(id2, result[1].Id);
        }
Ejemplo n.º 8
0
        public async Task PostOnCollectionShouldWorkIfForbiddenButExplicitelyAllowed()
        {
            var repo       = new Repository <User>(_fixture.InMemoryStorage, new ClosedRightExpressionsHelper <User>(), _fixture.IncludeApplicator);
            var users      = new UsersCollectionWithHardcodedGetById(repo, _fixture.PatcherProvider, _fixture.Instanciator);
            var controller = new UsersAppController(_fixture.InMemoryStorage, users);
            var query      = new Query <User>();

            query.Options.ChecksRights = false;
            var id1        = Guid.NewGuid();
            var id2        = Guid.NewGuid();
            var candidate1 = _parser.Parse <User, Guid>($@"{{ ""id"": ""{id1}"" }}");
            var candidate2 = _parser.Parse <User, Guid>($@"{{ ""id"": ""{id2}"" }}");

            var result = (await controller.CreateAsync(new List <ICandidate <User, Guid> > {
                candidate1, candidate2
            }, query)).ToList();

            Assert.Equal(id1, result[0].Id);
            Assert.Equal(id2, result[1].Id);
        }