示例#1
0
        public void GetResourcesByCategory()
        {
            //Arrange
            var mockAllReadyDataAccess = new Mock <IAllReadyDataAccess>();

            string resourceCat1 = "1", resourceCat2 = "2";
            var    cat1Resources = new List <Resource>()
            {
                new Resource()
                {
                    Id = 1
                }
            };

            var cat2Resources = new List <Resource>()
            {
                new Resource()
                {
                    Id = 2
                }
            };

            mockAllReadyDataAccess.Setup(x => x.GetResourcesByCategory(resourceCat1)).Returns(cat1Resources);
            mockAllReadyDataAccess.Setup(x => x.GetResourcesByCategory(resourceCat2)).Returns(cat2Resources);

            var controller = new ResourceApiController(mockAllReadyDataAccess.Object);

            //Act
            var cat1ResourceResults = controller.GetResourcesByCategory(resourceCat1);
            var cat2ResourceResults = controller.GetResourcesByCategory(resourceCat2);

            //Assert
            Assert.True(cat1ResourceResults.Any(x => x.Id == 1));
            Assert.True(cat2ResourceResults.Any(x => x.Id == 2));
        }
        public void ControllerHasProducesAtttributeWithTheCorrectContentType()
        {
            var sut       = new ResourceApiController(null);
            var attribute = sut.GetAttributes().OfType <ProducesAttribute>().SingleOrDefault();

            Assert.NotNull(attribute);
            Assert.Equal("application/json", attribute.ContentTypes.Select(x => x).First());
        }
        public void ControllerHasRouteAtttributeWithTheCorrectTemplate()
        {
            var sut       = new ResourceApiController(null);
            var attribute = sut.GetAttributes().OfType <RouteAttribute>().SingleOrDefault();

            Assert.NotNull(attribute);
            Assert.Equal("api/resource", attribute.Template);
        }
        public async Task GetNestResources_GivenNoResources_ExpectJsonWithEmptyList()
        {
            var roleQueries = new Mock <IRoleQueries>();

            roleQueries.Setup(x => x.GetNestedSimpleResources()).ReturnsAsync(Maybe <List <SimpleResourceModel> > .Nothing);
            var controller = new ResourceApiController(roleQueries.Object);

            var response = Assert.IsType <JsonResult>(await controller.GetNestResources());
            var data     = Assert.IsType <List <SimpleResourceModel> >(response.Value);

            Assert.Empty(data);
        }
        public void GetResourcesByCategoryReturnsCorrectModel()
        {
            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.Send(It.IsAny <ResourcesByCategoryQuery>())).Returns(new List <Resource> {
                new Resource()
            });

            var sut     = new ResourceApiController(mediator.Object);
            var results = sut.GetResourcesByCategory(It.IsAny <string>());

            Assert.IsType <List <ResourceViewModel> >(results);
        }
        public void GetResourcesByCategorySendsResourcesByCategoryQueryWithCorrectData()
        {
            const string category = "category";

            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.Send(It.IsAny <ResourcesByCategoryQuery>())).Returns(new List <Resource>());

            var sut = new ResourceApiController(mediator.Object);

            sut.GetResourcesByCategory(category);

            mediator.Verify(x => x.Send(It.Is <ResourcesByCategoryQuery>(y => y.Category == category)));
        }
        public async Task GetNestResources_GivenResourcesAreFound_ExpectJsonWithPopulatedList()
        {
            var roleQueries = new Mock <IRoleQueries>();

            roleQueries.Setup(x => x.GetNestedSimpleResources()).ReturnsAsync(Maybe.From(new List <SimpleResourceModel>
            {
                new SimpleResourceModel(TestVariables.ResourceId, "name", null),
            }));
            var controller = new ResourceApiController(roleQueries.Object);

            var response = Assert.IsType <JsonResult>(await controller.GetNestResources());
            var data     = Assert.IsType <List <SimpleResourceModel> >(response.Value);

            Assert.Single(data);
        }