public static IEnumerable <TestCaseData> HandleValidTestCases() { var input = new EquipmentRentRequestDto { EquipmentRentDtos = Enumerable.Empty <EquipmentRentDto>(), ViewStateTime = SampleTime }; var expectedResult = new CartDto(); yield return(new TestCaseData(input, expectedResult) .SetName("HandleValidTestCases - No elements")); input = new EquipmentRentRequestDto { EquipmentRentDtos = new[] { new EquipmentRentDto() }, ViewStateTime = SampleTime }; expectedResult = new CartDto(); yield return(new TestCaseData(input, expectedResult) .SetName("HandleValidTestCases - 1 empty element")); input = new EquipmentRentRequestDto { EquipmentRentDtos = Enumerable.Range(0, 25).Select(o => new EquipmentRentDto()).ToList(), ViewStateTime = SampleTime }; expectedResult = new CartDto(); yield return(new TestCaseData(input, expectedResult) .SetName("HandleValidTestCases - 25 empty elements")); input = new EquipmentRentRequestDto { EquipmentRentDtos = Data.Equipments.Select(o => new EquipmentRentDto { EquipmentId = o.Id, DurationInDays = 1 }).ToArray(), ViewStateTime = SampleTime }; expectedResult = new CartDto(); yield return(new TestCaseData(input, expectedResult) .SetName("HandleValidTestCases - Sample data")); }
public void SubmitRentRequest_Returns_Expected_EquipmentViewDto( EquipmentRentRequestDto input, CartDto expectedResult) { Mock.Get(_dateTimeProvider) .Setup(o => o.Now) .Returns(() => TestData.SampleTime); // Act var result = _cartDtoQueryHandler.SubmitRentRequest(input); // Assert Mock.Get(_carts) .Verify(x => x.Insert(It.IsAny <Cart>()), Times.Once); Mock.Get(_cartEquipments) .Verify(x => x.Insert(It.IsAny <CartEquipment>()), Times.Exactly(input.EquipmentRentDtos.Count())); Mock.Get(_writeDbContext) .Verify(x => x.SaveChanges(), Times.Once); result.ShouldBeEquivalentTo(expectedResult); }
public CartDto Get(string commaSeparatedIdAndDurationTuples) { // Todo: think about if parsing data belongs here or not var items = commaSeparatedIdAndDurationTuples .Split('-') .Where(o => !string.IsNullOrEmpty(o)) .Select(o => o.Split(',')) .Select(o => new EquipmentRentDto { EquipmentId = int.Parse(o[0]), DurationInDays = int.Parse(o[1]) }) .ToList(); var equipmentRentRequestDto = new EquipmentRentRequestDto { EquipmentRentDtos = items, //ViewStateTime = viewStateTime - can be faked }; return(_rentalService.SubmitRentRequest(equipmentRentRequestDto)); }
public CartDto SubmitRentRequest(EquipmentRentRequestDto equipmentRentRequestDto) { return(_cartDtoQueryHandler.Handle(equipmentRentRequestDto)); }