Beispiel #1
0
        public async Task Get_HappyPath_ReportsToTelemetry()
        {
            // arrange
            var expected = Fixture.Create <GetPayment>();

            PaymentManagerMock
            .Setup(m => m.GetByIdAsync(expected.Id))
            .ReturnsAsync(expected);

            // act
            await SUT.Get(expected.Id);

            // assert
            TelemetrySubmitterMock.Verify(m => m.SubmitAsync(It.IsAny <ServiceOperation>()));
        }
Beispiel #2
0
        public async Task Get_ManagerError_ReportsToTelemetry()
        {
            // arrange
            var id = Guid.NewGuid();
            var invalidOperationException = new InvalidOperationException();

            PaymentManagerMock
            .Setup(m => m.GetByIdAsync(id))
            .ThrowsAsync(invalidOperationException);

            // act
            await Assert.ThrowsAsync <InvalidOperationException>(() => SUT.Get(id));

            // assert
            TelemetrySubmitterMock.Verify(m => m.SubmitAsync(It.Is <ServiceOperation>(o => o.IsFaulted == 1)));
        }
Beispiel #3
0
        public async Task Get_ManagerError_ReportsToTelemetry()
        {
            // arrange
            var createPayment = Fixture.Create <CreatePayment>();

            CreatePaymentValidatorMock
            .Setup(m => m.ValidateAsync(It.IsAny <CreatePayment>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(new ValidationResult());
            PaymentManagerMock
            .Setup(m => m.CreateAsync(createPayment))
            .ThrowsAsync(new InvalidOperationException());

            // act
            await Assert.ThrowsAsync <InvalidOperationException>(() => SUT.Create(createPayment));

            // assert
            TelemetrySubmitterMock.Verify(m => m.SubmitAsync(It.Is <ServiceOperation>(o => o.IsFaulted == 1)));
        }
Beispiel #4
0
        public async Task Get_HappyPath_ReportsToTelemetry()
        {
            // arrange
            var createPayment = Fixture.Create <CreatePayment>();
            var expected      = Fixture.Create <GetPayment>();

            CreatePaymentValidatorMock
            .Setup(m => m.ValidateAsync(It.IsAny <CreatePayment>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(new ValidationResult());
            PaymentManagerMock
            .Setup(m => m.CreateAsync(createPayment))
            .ReturnsAsync(expected);

            // act
            await SUT.Create(createPayment);

            // assert
            TelemetrySubmitterMock.Verify(m => m.SubmitAsync(It.IsAny <ServiceOperation>()));
        }
        public async Task ProcessPaymentAsync_HappyPath_ReportsToTelemetry()
        {
            // arrange
            var command             = Fixture.Create <SubmitPaymentCommand>();
            var payment             = Fixture.Create <Payment>();
            var bankPaymentResponse = new BankPaymentResponse {
                IsSuccessful = true, Id = Guid.NewGuid()
            };

            PaymentRepositoryMock
            .Setup(m => m.GetByIdAsync(command.PaymentId))
            .ReturnsAsync(payment);
            BankServiceClientMock
            .Setup(m => m.CreateOrderAsync(command))
            .ReturnsAsync(bankPaymentResponse);

            // act
            await SUT.ProcessPaymentAsync(command);

            // assert
            TelemetrySubmitterMock
            .Verify(m => m.SubmitAsync(It.IsAny <ServiceOperation>()));
        }
        public async Task ProcessPaymentAsync_OnBankError_ReportsToTelemetry()
        {
            // arrange
            var command             = Fixture.Create <SubmitPaymentCommand>();
            var payment             = Fixture.Create <Payment>();
            var bankPaymentResponse = new BankPaymentResponse {
                IsSuccessful = true, Id = Guid.NewGuid()
            };

            PaymentRepositoryMock
            .Setup(m => m.GetByIdAsync(command.PaymentId))
            .ReturnsAsync(payment);
            BankServiceClientMock
            .Setup(m => m.CreateOrderAsync(command))
            .ThrowsAsync(new InvalidOperationException());

            // act
            await SUT.ProcessPaymentAsync(command);

            // assert
            TelemetrySubmitterMock
            .Verify(m => m.SubmitAsync(It.Is <ServiceOperation>(o => o.IsFaulted == 1)));
        }