public void Handle_Returns_Expected_EquipmentViewDto( int total, IReadOnlyList <Equipment> equipments, Func <Equipment, EquipmentDto> mapper, PagingDto page, EquipmentViewDto expectedResult) { Mock.Get(_equipments) .Setup(o => o.Total(It.IsAny <ISpecification <Equipment> >())) .Returns(() => total); Mock.Get(_equipments) .Setup(o => o.Filter( It.IsAny <Expression <Func <Equipment, object> > >(), It.IsAny <ISpecification <Equipment> >(), It.IsAny <int>())) .Returns(() => equipments); Mock.Get(_dateTimeProvider) .Setup(o => o.Now) .Returns(() => TestData.SampleTime); Mock.Get(_mapEquipmentDto) .Setup(o => o.Create) .Returns(() => mapper); // Act var result = _equipmentViewDtoQueryHandler.Handle(page); // Assert result.ShouldBeEquivalentTo(expectedResult); }
public static IEnumerable <TestCaseData> HandleValidTestCases() { var total = 0; var equipments = new List <Equipment>(); Func <Equipment, EquipmentDto> mapper = _ => null; var page = new PagingDto(); var expectedResult = new EquipmentViewDto { EquipmentDtos = new List <EquipmentDto>(), ViewDto = new ViewDto { ViewStateTime = SampleTime, Page = 0, PageSize = 25, Total = 0 } }; yield return(new TestCaseData(total, equipments, mapper, page, expectedResult) .SetName("HandleValidTestCases - No elements")); total = 1; equipments = new List <Equipment> { new Equipment() }; mapper = equipment => new EquipmentDto { Id = equipment.Id, EquipmentName = equipment.EquipmentName, EquipmentType = equipment.EquipmentType }; expectedResult = new EquipmentViewDto { EquipmentDtos = new List <EquipmentDto> { new EquipmentDto() }, ViewDto = new ViewDto { ViewStateTime = SampleTime, Page = 0, PageSize = 25, Total = total } }; yield return(new TestCaseData(total, equipments, mapper, page, expectedResult) .SetName("HandleValidTestCases - 1 empty element")); total = 25; equipments = Enumerable.Range(0, total).Select(o => new Equipment()).ToList(); expectedResult = new EquipmentViewDto { EquipmentDtos = Enumerable.Range(0, total).Select(o => new EquipmentDto()).ToList(), ViewDto = new ViewDto { ViewStateTime = SampleTime, Page = 0, PageSize = 25, Total = total } }; yield return(new TestCaseData(total, equipments, mapper, page, expectedResult) .SetName("HandleValidTestCases - 25 empty element")); total = Data.Equipments.Count; equipments = Data.Equipments; expectedResult = new EquipmentViewDto { EquipmentDtos = new[] { new EquipmentDto { Id = 1, EquipmentType = EquipmentType.Heavy, EquipmentName = "Caterpillar bulldozer" }, new EquipmentDto { Id = 2, EquipmentType = EquipmentType.Regular, EquipmentName = "KamAZ truck" }, new EquipmentDto { Id = 3, EquipmentType = EquipmentType.Heavy, EquipmentName = "Komatsu crane" }, new EquipmentDto { Id = 4, EquipmentType = EquipmentType.Regular, EquipmentName = "Volvo steamroller" }, new EquipmentDto { Id = 5, EquipmentType = EquipmentType.Specialized, EquipmentName = "Bosch jackhammer" }, }, ViewDto = new ViewDto { ViewStateTime = SampleTime, Page = 0, PageSize = 25, Total = total } }; yield return(new TestCaseData(total, equipments, mapper, page, expectedResult) .SetName("HandleValidTestCases - Sample data")); //Todo page = -1, page = 1 }