Ejemplo n.º 1
0
        public async Task POST_Returns_Status_Created()
        {
            // Arrange
            var donationRequest = new DonationRequestBuilder().Build();
            var arrangements    = new ArrangementsBuilder().Build();

            // Act
            var response = await arrangements.Sut.Post(donationRequest);

            // Assert
            response.Result.Should().BeOfType <CreatedResult>();
        }
Ejemplo n.º 2
0
        public void CallBank_WhenPaymentIsSuccessful_ReturnsSuccessMessage()
        {
            // Arrange
            var arrangements = new ArrangementsBuilder()
                               .WithACommandWhichResultsInSuccess()
                               .Build();

            // Act
            (Guid paymentResponseId, string paymentMessage)result = arrangements.SUT.CallBank(arrangements.Cmd);

            // Assert
            result.paymentMessage.Should().Be("SUCCESS");
        }
Ejemplo n.º 3
0
        public async Task RemoveToCart_ValidItems_ShoulReturnOk()
        {
            // Arrange
            var arrangement = new ArrangementsBuilder()
                              .WithValidCart(true)
                              .WithItemsRemovedFomCart(true)
                              .Build();

            // Act
            var result = await arrangement.SUT
                         .RemoveFromCartAsync(arrangement.CartId, arrangement.CartModel);

            // Assert
            result.Should().BeOfType <OkResult>();
        }
Ejemplo n.º 4
0
        public async Task ProcessPayment_WhenProcessingPaymentCausesSytemError_SendsPaymentErrorMessage()
        {
            // Arrange
            var arrangements = new ArrangementsBuilder()
                               .WithACommandWhichResultsInSystemError()
                               .Build();

            // Act
            await arrangements.SUT.Consume(arrangements.ConsumeContext);

            // Assert
            arrangements.FiredEvents.Count.Should().Be(1);

            var evt = arrangements.FiredEvents.FirstOrDefault();

            evt.Should().BeOfType <PaymentError>();
        }
Ejemplo n.º 5
0
        public async Task ProcessPayment_WhenPaymentIsUnsuccessful_SendsPaymentUnsuccessfulMessage()
        {
            // Arrange
            var arrangements = new ArrangementsBuilder()
                               .WithACommandWhichResultsInFailure()
                               .Build();

            // Act
            await arrangements.SUT.Consume(arrangements.ConsumeContext);

            // Assert
            arrangements.FiredEvents.Count.Should().Be(1);

            var evt = arrangements.FiredEvents.FirstOrDefault();

            evt.Should().BeOfType <PaymentUnsuccessful>();
        }
Ejemplo n.º 6
0
        public void Get_WithCartExisting_ShouldReturnModel()
        {
            // Arrange
            var arrangement = new ArrangementsBuilder()
                              .WithExistingCart(true)
                              .Build();

            // Act
            var result = arrangement.SUT.Get(Guid.NewGuid());

            // Assert
            result.Should().BeOfType <OkObjectResult>();

            var resultObject = result as OkObjectResult;

            resultObject.Value.Should().BeOfType <CartReturnModel>();
        }
Ejemplo n.º 7
0
        public async Task CreateCart_WithInValidModel_ShoulReturnBadRequest()
        {
            // Arrange
            var arrangement = new ArrangementsBuilder()
                              .WithValidCart(false)
                              .Build();

            // Act
            var result = await arrangement.SUT.CreateCartAsync(arrangement.CartModel);

            // Assert
            result.Should().BeOfType <BadRequestObjectResult>();

            var resultObject = result as BadRequestObjectResult;

            resultObject.Value.Should().Be("Your cart has an invalid item.");
        }
Ejemplo n.º 8
0
        public async Task CreateCart_WithValidModel_ShoulReturnId()
        {
            // Arrange
            var arrangement = new ArrangementsBuilder()
                              .WithValidCart(true)
                              .Build();

            // Act
            var result = await arrangement.SUT.CreateCartAsync(arrangement.CartModel);

            // Assert
            result.Should().BeOfType <OkObjectResult>();

            var resultObject = result as OkObjectResult;

            resultObject.Value.Should().BeOfType <Guid>();
        }
Ejemplo n.º 9
0
        public void Get_WithoutCartExisting_ShouldReturnBadRequest()
        {
            // Arrange
            var arrangement = new ArrangementsBuilder()
                              .WithExistingCart(false)
                              .Build();

            // Act
            var result = arrangement.SUT.Get(Guid.NewGuid());

            // Assert
            result.Should().BeOfType <BadRequestObjectResult>();

            var resultObject = result as BadRequestObjectResult;

            resultObject.Value.Should().Be("The cart specified doesn't exist.");
        }
Ejemplo n.º 10
0
        public async Task POST_Sends_RegisterDonationRequest_WithData_FromBody()
        {
            // Arrange
            var donationRequest = new DonationRequestBuilder().Build();
            var arrangements    = new ArrangementsBuilder().Build();

            // Act
            await arrangements.Sut.Post(donationRequest);

            // Assert
            arrangements.RegisterDonationRequest.Should().BeEquivalentTo(new RegisterDonationRequest
            {
                DonationAmount = donationRequest.Amount,
                FirstName      = donationRequest.FirstName,
                LastName       = donationRequest.LastName,
                PostCode       = donationRequest.PostCode
            });
        }
Ejemplo n.º 11
0
        public async Task RemoveToCart_ItemsDontExistInCart_ShoulReturnBadRequest()
        {
            // Arrange
            var arrnagement = new ArrangementsBuilder()
                              .WithValidCart(true)
                              .WithItemsRemovedFomCart(false)
                              .Build();

            // Act
            var result = await arrnagement.SUT
                         .RemoveFromCartAsync(arrnagement.CartId, arrnagement.CartModel);

            // Assert
            result.Should().BeOfType <BadRequestObjectResult>();

            var resultObject = result as BadRequestObjectResult;

            resultObject.Value.Should().Be("The cart items specified dont exist.");
        }
Ejemplo n.º 12
0
        public async Task POST_Returns_Donation_Details()
        {
            // Arrange
            var donationRequest = new DonationRequestBuilder().Build();
            var arrangements    = new ArrangementsBuilder().Build();
            var donation        = arrangements.RegisterDonationResponse.Donation;

            // Act
            var donationResponse = (DonationResponse)((CreatedResult)(await arrangements.Sut.Post(donationRequest)).Result).Value;

            // Assert
            donationResponse.Should().BeEquivalentTo(new DonationResponse
            {
                DonationId        = donation.Id,
                DonationAmount    = donation.DonationAmount,
                GiftAidAmount     = donation.GiftAidAmount,
                GiftAidReference  = donation.GiftAidReference,
                DonationReference = donation.Reference
            });
        }