public async Task ProfilesBatchesFromSuppliedContext()
        {
            BatchProfilingRequestModel requestOne   = NewBatchProfilingRequestModel();
            BatchProfilingRequestModel requestTwo   = NewBatchProfilingRequestModel();
            BatchProfilingRequestModel requestThree = NewBatchProfilingRequestModel();

            BatchProfilingResponseModel responseOne   = NewBatchProfilingResponseModel();
            BatchProfilingResponseModel responseTwo   = NewBatchProfilingResponseModel();
            BatchProfilingResponseModel responseThree = NewBatchProfilingResponseModel();
            BatchProfilingResponseModel responseFour  = NewBatchProfilingResponseModel();
            BatchProfilingResponseModel responseFive  = NewBatchProfilingResponseModel();
            BatchProfilingResponseModel responseSix   = NewBatchProfilingResponseModel();

            int batchSize = new RandomNumberBetween(1, int.MaxValue);

            GivenThePagesOfRequests(requestOne, requestTwo, requestThree);
            AndTheBatchSize(batchSize);
            AndTheProfilingResponses(requestOne, responseOne, responseTwo);
            AndTheProfilingResponses(requestTwo, responseThree);
            AndTheProfilingResponses(requestThree, responseFour, responseFive, responseSix);

            await WhenTheBatchesAreProfiled();

            ThenTheContextItemsWereInitialisedWithABatchSize(batchSize);
            AndTheResponseWereReconciled(responseOne,
                                         responseTwo,
                                         responseThree,
                                         responseFour,
                                         responseFive,
                                         responseSix);
        }
 private void AndTheProfilingResponses(BatchProfilingRequestModel request,
                                       params BatchProfilingResponseModel[] responses)
 => _profiling.Setup(_ => _.GetBatchProfilePeriods(request))
 .ReturnsAsync(new ValidatedApiResponse <IEnumerable <BatchProfilingResponseModel> >(HttpStatusCode.OK, responses));
        public async Task <ValidatedApiResponse <IEnumerable <BatchProfilingResponseModel> > > GetBatchProfilePeriods(BatchProfilingRequestModel requestModel)
        {
            Guard.ArgumentNotNull(requestModel, nameof(requestModel));

            return(await ValidatedPostAsync <IEnumerable <BatchProfilingResponseModel>, BatchProfilingRequestModel>("profiling/batch", requestModel));
        }