Beispiel #1
0
        public async void WithResult()
        {
            await this.SignIn(this.Administrator);

            var data = new DataBuilder(this.Session).WithString("First").Build();

            this.Session.Commit();

            var uri = new Uri(@"allors/pull", UriKind.Relative);

            var extent = new Allors.Data.Extent(M.Data.ObjectType);

            var pullRequest = new PullRequest
            {
                P = new[]
                {
                    new Pull
                    {
                        Extent  = extent.Save(),
                        Results = new[]
                        {
                            new Result {
                                Name = "Datas"
                            },
                        },
                    },
                },
            };

            var response = await this.PostAsJsonAsync(uri, pullRequest);

            var pullResponse = await this.ReadAsAsync <PullResponse>(response);

            var namedCollection = pullResponse.NamedCollections["Datas"];

            Assert.Single(namedCollection);

            var namedObject = namedCollection.First();

            Assert.Equal(data.Id.ToString(), namedObject);

            var objects = pullResponse.Objects;

            Assert.Single(objects);

            var @object = objects[0];

            var acls = new AccessControlLists(this.Administrator);
            var acl  = acls[data];

            Assert.Equal(3, @object.Length);

            Assert.Equal(data.Strategy.ObjectId.ToString(), @object[0]);
            Assert.Equal(data.Strategy.ObjectVersion.ToString(), @object[1]);
            Assert.Equal(this.PrintAccessControls(acl), @object[2]);
        }
Beispiel #2
0
        public async void WithDeniedPermissions()
        {
            await this.SignIn(this.Administrator);

            var data       = new DataBuilder(this.Session).WithString("First").Build();
            var permission = new Permissions(this.Session).Extent().First(v => v.ConcreteClass == M.Data.Class);

            data.AddDeniedPermission(permission);

            this.Session.Commit();

            var uri = new Uri("pull", UriKind.Relative);

            var extent = new Allors.Data.Extent(M.Data.ObjectType);

            var pullRequest = new PullRequest
            {
                p = new[]
                {
                    new Pull
                    {
                        extent = extent.Save(),
                    },
                },
            };

            var response = await this.PostAsJsonAsync(uri, pullRequest);

            var pullResponse = await this.ReadAsAsync <PullResponse>(response);

            var namedCollection = pullResponse.namedCollections["Datas"];

            Assert.Single(namedCollection);

            var namedObject = namedCollection.First();

            Assert.Equal(data.Id.ToString(), namedObject);

            var objects = pullResponse.Objects;

            Assert.Single(objects);

            var @object = objects[0];

            var acls = new AccessControlLists(this.Administrator);
            var acl  = acls[data];

            Assert.Equal(4, @object.Length);

            Assert.Equal(data.Strategy.ObjectId.ToString(), @object[0]);
            Assert.Equal(data.Strategy.ObjectVersion.ToString(), @object[1]);
            Assert.Equal(this.PrintAccessControls(acl), @object[2]);
            Assert.Equal(this.PrintDeniedPermissions(acl), @object[3]);
        }