public void Create_AnyInvoiceDto()
        {
            // Setup dependence
            var settingMock = new Mock<ISettings>();
            var repositoryMock = new Mock<IRepository>();
            var uowMock = new Mock<IUnitOfWork>();
            var serviceLocatorMock = new Mock<IServiceLocator>();

            serviceLocatorMock.Setup(r => r.GetInstance<IRepository>())
                .Returns(repositoryMock.Object);
            serviceLocatorMock.Setup(r => r.GetInstance<IUnitOfWork>())
                .Returns(uowMock.Object);
            ServiceLocator.SetLocatorProvider(() => serviceLocatorMock.Object);
            repositoryMock.Setup(r => r.CreateUnitOfWork()).Returns(uowMock.Object);
            // Arrange data

            // Act
            InvoiceService invoiceService = new InvoiceService(uowMock.Object, repositoryMock.Object,
                settingMock.Object);
            var currentCall = invoiceService.Create(new InvoiceDto());

            // Assert
            repositoryMock.Verify(r => r.Insert<Invoice>(It.IsAny<Invoice>()));
            uowMock.Verify(u => u.Save());
        }
        public PaymentService(IUnitOfWork unitOfWork, IRepository repository, ISettings settings)
            : base(unitOfWork, repository, settings)
        {
            Gateway = new BraintreeGateway
            {
                Environment = GetEnvironment(),
                PublicKey = ConfigurationManager.AppSettings["BrainTreePublicKey"],
                PrivateKey = ConfigurationManager.AppSettings["BrainTreePrivateKey"],
                MerchantId = ConfigurationManager.AppSettings["BrainTreeMerchantId"]
            };

            planService = new PlanService(unitOfWork, repository, settings);
            invoiceService = new InvoiceService(unitOfWork, repository, settings);
        }