public async Task Returns_business_items_between_dates() { // arrange var startTime = new DateTime(2019, 1, 1, 10, 0, 0).ToLongDateString(); var endTime = new DateTime(2019, 1, 1, 11, 0, 0).ToLongDateString(); var startDate = new DateTime(2019, 1, 1); var endDate = new DateTime(2019, 2, 1); var eventId = 1; var dummyBusinessItemDescription = "any dummy business item description"; var events = new Events { Event = new List <Event> { new Event { Id = eventId, Description = dummyBusinessItemDescription, EndDate = endDate, EndTime = endTime, StartDate = startDate, StartTime = startTime } } }; _stubGetParliamentEvents .GetEvents(Arg.Is <GetParliamentEventsRequest>(request => request.EndDate == endDate && request.StartDate == startDate && request.Url == _dummyEventEndPoint)) .Returns(new GetParliamentEventResponse(true, events)); // act var result = await _sut.GetBusinessItems( new GetBusinessItemsQuery { StartDate = startDate, EndDate = endDate }); // assert Assert.That(result, Is.TypeOf <OkObjectResult>()); var response = (IEnumerable <BusinessItemModel>)((OkObjectResult)result).Value; Assert.That(response.ElementAt(0).Id, Is.EqualTo(eventId)); Assert.That(response.ElementAt(0).StartTime, Is.EqualTo(startTime)); Assert.That(response.ElementAt(0).StartDate, Is.EqualTo(startDate.ToLongDateString())); Assert.That(response.ElementAt(0).EndDate, Is.EqualTo(endDate.ToLongDateString())); Assert.That(response.ElementAt(0).EndTime, Is.EqualTo(endTime)); Assert.That(response.ElementAt(0).Description, Is.EqualTo(dummyBusinessItemDescription)); }
public async Task <GetBusinessItemBetweenDatesResponse> GetBusinessItemBetweenDates(GetBusinessItemBetweenDatesRequest request) { var businessRuleResponse = _validateBusinessItemsBusinessRules .Validate(new ValidateBusinessItemsBusinessRulesRequest(request.StartDate, request.EndDate)); if (!businessRuleResponse.IsSuccess) { return(GetBusinessItemBetweenDatesResponse.Failed(businessRuleResponse.ErrorMessages)); } var response = await _getParliamentEvents .GetEvents(new GetParliamentEventsRequest(_parliamentEventsEndPointSettings.EndPoint, request.StartDate, request.EndDate)); return(GetBusinessItemBetweenDatesResponse.Success(response.Events.Event.OrderBy(x => x.StartDate).Select(@event => new BusinessItemModel(@event.Id, @event.StartDate.ToLongDateString(), @event.StartTime, @event.EndDate.ToLongDateString(), @event.EndTime, @event.Description)))); }