private void MockPaymentProvidersRequest(GetPaymentProvidersResponse paymentProviders)
        {
            var overtureClient = _container.GetMock <IOvertureClient>();

            overtureClient.Setup(client => client.SendAsync(It.IsNotNull <GetPaymentProvidersRequest>()))
            .ReturnsAsync(paymentProviders)
            .Verifiable();
        }
        public void When_Passing_Empty_ScopeId_SHOULD_throw_ArgumentNullException()
        {
            //Arrange
            var paymentProviders = new GetPaymentProvidersResponse
            {
                PaymentProviders = new List <PaymentProvider>
                {
                    new PaymentProvider(),
                }
            };

            MockPaymentProvidersRequest(paymentProviders);

            //Act & Assert
            var repository = _container.CreateInstance <PaymentRepository>();

            Assert.ThrowsAsync <ArgumentNullException>(() => repository.GetPaymentProviders(null));
        }
        public async Task When_Passing_Valid_ScopeId_SHOULD_Return_PaymentProviders()
        {
            //Arrange
            var paymentProviders = new GetPaymentProvidersResponse
            {
                PaymentProviders = new List <PaymentProvider>
                {
                    new PaymentProvider(),
                }
            };

            MockPaymentProvidersRequest(paymentProviders);

            //Act
            var scope      = GetRandom.String(32);
            var repository = _container.CreateInstance <PaymentRepository>();
            var result     = await repository.GetPaymentProviders(scope).ConfigureAwait(false);

            //Assert
            result.Should().NotBeNull();
        }