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()); }
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))); }
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()); }
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()); }