public async Task ThenAccountsAreReturned()
        {
            var request = new GetAccountEventsRequestBuilder().Build();

            var expectedAccounts = new List <AccountEvent>();

            Repository.Setup(r => r.GetByRange(request.FromDateTime, request.ToDateTime, request.PageSize, request.PageNumber, request.FromEventId)).ReturnsAsync(expectedAccounts);

            var response = await Handler.Handle(request);

            response.Data.Should().BeSameAs(expectedAccounts);
        }
        public void AndTheEventIdIsLessThanZeroThenValidationFails()
        {
            var request = new GetAccountEventsRequestBuilder().WithEventId(-1).Build();

            Assert.ThrowsAsync <ValidationException>(() => Handler.Handle(request));
        }
        public void AndThePageNumberIsGreaterThanTenThousandThenValidationFails()
        {
            var request = new GetAccountEventsRequestBuilder().WithPageSize(10001).Build();

            Assert.ThrowsAsync <ValidationException>(() => Handler.Handle(request));
        }
        public void AndThePageSizeIsLessThanOneThenValidationFails()
        {
            var request = new GetAccountEventsRequestBuilder().WithPageSize(0).Build();

            Assert.ThrowsAsync <ValidationException>(() => Handler.Handle(request));
        }
        public void AndTheFromDateIsAfterTheToDateThenValidationFails()
        {
            var request = new GetAccountEventsRequestBuilder().WithFromDate(DateTime.Now.AddDays(-1)).WithToDate(DateTime.Now.AddDays(-2)).Build();

            Assert.ThrowsAsync <ValidationException>(() => Handler.Handle(request));
        }