Exemplo n.º 1
0
        public async Task When_CreatingEpaRecord_CallsInternalApi_Then_ReturnEpaResponseWithResponseCode200(
            [Frozen] Mock <IHeaderInfo> headerInfo,
            [Frozen] Mock <IApiClient> apiClient,
            CreateEpaRequest request,
            IEnumerable <CreateEpaResponse> response,
            EpaController sut)
        {
            //Arrange
            apiClient.Setup(client => client.CreateEpas(It.Is <IEnumerable <CreateBatchEpaRequest> >(s =>
                                                                                                     s.First().UkPrn == headerInfo.Object.Ukprn &&
                                                                                                     s.First().RequestId == request.RequestId &&
                                                                                                     s.First().Learner == request.Learner &&
                                                                                                     s.First().LearningDetails == request.LearningDetails &&
                                                                                                     s.First().Standard == request.Standard &&
                                                                                                     s.First().EpaDetails == request.EpaDetails))).ReturnsAsync(response);

            //Act
            var result = await sut.CreateEpaRecords(new List <CreateEpaRequest> {
                request
            }) as ObjectResult;

            //Assert
            result.StatusCode.Should().Be((int)HttpStatusCode.OK);
            var model = result.Value as IEnumerable <CreateEpaResponse>;

            model.Should().BeEquivalentTo(response);
        }
Exemplo n.º 2
0
        public async Task When_CreatingEpaRecord_WithTooManyRequestsInBatch_CallsInternalApi_Then_ReturnApiResponseWithResponseCode403(
            CreateEpaRequest request,
            EpaController sut)
        {
            //Arrange
            var requests = new List <CreateEpaRequest>();

            for (var i = 0; i < 26; i++)
            {
                requests.Add(request);
            }

            //Act
            var result = await sut.CreateEpaRecords(requests) as ObjectResult;

            //Assert
            result.StatusCode.Should().Be((int)HttpStatusCode.Forbidden);
            ((ApiResponse)result.Value).Message.Should().Be("Batch limited to 25 requests");
        }