コード例 #1
0
        public async Task TestGetCollaboratorsAsync()
        {
            var programId  = 10;
            var queryModel = new PagingQueryBindingModel <ResourceAuthorization>();

            queryModel.Start = 0;
            queryModel.Limit = 10;

            Action <QueryableOperator <ResourceAuthorization> > callbackTester = (op) =>
            {
                Assert.AreEqual(2, op.Filters.Count);
                var filters = op.Filters.ToList().Select(x => (ExpressionFilter <ResourceAuthorization>)x).ToList();
                var foreignResourceIdFilter = filters.Where(x => x.Property == "ForeignResourceId").FirstOrDefault();
                Assert.IsNotNull(foreignResourceIdFilter, "The foreign resource filter must exist.");
                Assert.AreEqual(ComparisonType.Equal.Value, foreignResourceIdFilter.Comparison);
                Assert.AreEqual(programId, foreignResourceIdFilter.Value);

                var resourceTypeFilter = filters.Where(x => x.Property == "ResourceTypeId").FirstOrDefault();
                Assert.IsNotNull(resourceTypeFilter, "The resource type filter must exist.");
                Assert.AreEqual(ComparisonType.Equal.Value, resourceTypeFilter.Comparison);
                Assert.AreEqual(ResourceType.Program.Id, resourceTypeFilter.Value);
            };

            resourceService.Setup(x => x.GetResourceAuthorizationsAsync(It.IsAny <QueryableOperator <ResourceAuthorization> >()))
            .ReturnsAsync(new PagedQueryResults <ResourceAuthorization>(0, new List <ResourceAuthorization>()))
            .Callback(callbackTester);

            var response = await controller.GetCollaboratorsAsync(programId, queryModel);

            Assert.IsInstanceOfType(response, typeof(OkNegotiatedContentResult <PagedQueryResults <ResourceAuthorization> >));
        }