public TaxpayerServiceTests()
        {
            var taxpayerRepositoryMock         = new Mock <ITaxpayerRepository>();
            var unitOfWorkMock                 = new Mock <IUnitOfWork>();
            var basicWageServiceMock           = new Mock <IBasicWageService>();
            var incomeTaxCalculatorServiceMock = new Mock <IIncomeTaxCalculatorService>();

            taxpayerRepositoryMock.Setup(b => b.ListAsync()).ReturnsAsync(new List <Taxpayer>()
            {
                new Taxpayer {
                    Id = 1, Name = "Test 1", CPF = 11122233344, MonthlyGrossIncome = 2000
                },
                new Taxpayer {
                    Id = 2, Name = "Test 2", CPF = 11122233355, MonthlyGrossIncome = 3000
                },
            });

            taxpayerRepositoryMock.Setup(b => b.GetByIdAsync(1)).ReturnsAsync(new Taxpayer {
                Id = 1, Name = "Nome", NumberOfDependents = 0, MonthlyGrossIncome = 2000, CPF = 22222222222
            });
            taxpayerRepositoryMock.Setup(b => b.GetByIdAsync(2)).Returns(Task.FromResult <Taxpayer>(null));
            taxpayerRepositoryMock.Setup(b => b.GetByCPFAsync(11111111111)).ReturnsAsync(new Taxpayer {
                Id = 1, NumberOfDependents = 0, MonthlyGrossIncome = 2000, CPF = 11111111111
            });
            taxpayerRepositoryMock.Setup(b => b.GetByCPFAsync(22222222222)).Returns(Task.FromResult <Taxpayer>(null));

            unitOfWorkMock.Setup(u => u.CompleteAsync()).Returns(Task.CompletedTask);

            basicWageServiceMock.Setup(b => b.GetBasicWageDataAsync()).ReturnsAsync(new BasicWage {
                Id = 1, Value = 1000
            });

            incomeTaxCalculatorServiceMock.Setup(i => i.CalculateIncomeTaxRateDiscountFor(It.IsAny <Taxpayer>(), It.IsAny <BasicWage>()))
            .Returns(0);

            incomeTaxCalculatorServiceMock.Setup(i => i.CalculateIncomeTaxRatePercentageFor(It.IsAny <Taxpayer>(), It.IsAny <BasicWage>(), It.IsAny <decimal>()))
            .Returns(5);

            incomeTaxCalculatorServiceMock.Setup(i => i.CalculateTotalIncomeTax(It.IsAny <decimal>(), It.IsAny <decimal>(), It.IsAny <decimal>()))
            .Returns <decimal, decimal, decimal>((monthlyGrowthRate, taxRatePercentage, discount) => ((monthlyGrowthRate * taxRatePercentage) / 100) - discount);

            _taxpayerService = new TaxpayerService(
                taxpayerRepositoryMock.Object,
                unitOfWorkMock.Object,
                basicWageServiceMock.Object,
                incomeTaxCalculatorServiceMock.Object);
        }
Ejemplo n.º 2
0
 public TaxpayerController(ITaxpayerService taxpayerService)
 {
     _taxpayerService = taxpayerService;
 }
 public TaxpayersController(ITaxpayerService taxpayerService, IMapper mapper)
 {
     _taxpayerService = taxpayerService;
     _mapper          = mapper;
 }