예제 #1
0
        public void ExportLeases_Csv_Success(LeaseFilterModel filter)
        {
            // Arrange
            var helper     = new TestHelper();
            var controller = helper.CreateController <LeaseController>(Permissions.LeaseView);
            var headers    = helper.GetService <Mock <Microsoft.AspNetCore.Http.IHeaderDictionary> >();

            headers.Setup(m => m["Accept"]).Returns(ContentTypes.CONTENT_TYPE_CSV);

            var leases = new[] { EntityHelper.CreateLease(1) };

            var service = helper.GetService <Mock <IPimsRepository> >();
            var mapper  = helper.GetService <IMapper>();
            var page    = new Paged <Entity.PimsLease>(leases, filter.Page, filter.Quantity);

            service.Setup(m => m.Lease.GetPage(It.IsAny <Entity.Models.LeaseFilter>())).Returns(page);

            // Act
            var result = controller.ExportLeases(filter);

            // Assert
            var actionResult = Assert.IsType <ContentResult>(result);
            var actualResult = Assert.IsType <string>(actionResult.Content);

            Assert.Equal(ContentTypes.CONTENT_TYPE_CSV, actionResult.ContentType);
            service.Verify(m => m.Lease.GetPage(It.IsAny <Entity.Models.LeaseFilter>()), Times.Once());
        }
예제 #2
0
        public IActionResult GetLeases([FromBody] LeaseFilterModel filter)
        {
            filter.ThrowBadRequestIfNull($"The request must include a filter.");
            if (!filter.IsValid())
            {
                throw new BadRequestException("Property filter must contain valid values.");
            }

            var leases = _pimsService.Lease.GetPage((LeaseFilter)filter);

            return(new JsonResult(_mapper.Map <Api.Models.PageModel <LeaseModel> >(leases)));
        }
예제 #3
0
        public void ExportLeases_NoAcceptHeader_BadRequest()
        {
            // Arrange
            var helper     = new TestHelper();
            var controller = helper.CreateController <LeaseController>(Permissions.LeaseView);

            var service = helper.GetService <Mock <IPimsRepository> >();
            var filter  = new LeaseFilterModel()
            {
            };

            // Act
            // Assert
            Assert.Throws <BadRequestException>(() => controller.ExportLeases(filter));
            service.Verify(m => m.Lease.GetPage(It.IsAny <Entity.Models.LeaseFilter>()), Times.Never());
        }
예제 #4
0
        public void ExportLeases_InvalidAcceptHeader_BadRequest()
        {
            // Arrange
            var helper     = new TestHelper();
            var controller = helper.CreateController <LeaseController>(Permissions.LeaseView);

            var service = helper.GetService <Mock <IPimsRepository> >();
            var headers = helper.GetService <Mock <Microsoft.AspNetCore.Http.IHeaderDictionary> >();

            headers.Setup(m => m["Accept"]).Returns("invalid");
            var filter = new LeaseFilterModel()
            {
            };

            // Act
            // Assert
            Assert.Throws <BadRequestException>(() => controller.ExportLeases(filter));
            service.Verify(m => m.Lease.GetPage(It.IsAny <Entity.Models.LeaseFilter>()), Times.Never());
        }