示例#1
0
        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))));
        }