public void SalarioCorretamenteNaFaixaSalarialSemDeduzir()
        {
            var faixaSalarial = new FaixaSalarial
            {
                SalarioMinimo = 936M,
                SalarioMaximo = 1903.98M,
                Aliquota      = 0.225M,
                Deduzir       = 0M
            };

            var imposto = faixaSalarial.CalcularImposto(1000M);

            Assert.AreEqual(imposto, 225M);
        }
        public void SalarioAtendendoFaixaSalarial()
        {
            var faixaSalarial = new FaixaSalarial
            {
                SalarioMinimo = 936M,
                SalarioMaximo = 1903.98M,
                Aliquota      = 0M,
                Deduzir       = 0M
            };

            var aceite = faixaSalarial.AceitaSalario(1600M);

            Assert.AreEqual(aceite, true);
        }
        public void SalarioDiferenteDaFaixaSalarial()
        {
            var faixaSalarial = new FaixaSalarial
            {
                SalarioMinimo = 936M,
                SalarioMaximo = 1903.98M,
                Aliquota      = 0M,
                Deduzir       = 0M
            };

            var imposto = faixaSalarial.CalcularImposto(800M);

            Assert.AreEqual(imposto, 800M);
        }
        public void SalarioMaiorFaixaSalarial()
        {
            var faixaSalarial = new FaixaSalarial
            {
                SalarioMinimo = 936M,
                SalarioMaximo = 1903.98M,
                Aliquota      = 0M,
                Deduzir       = 0M
            };

            var aceite = faixaSalarial.AceitaSalario(2000M);

            Assert.AreEqual(aceite, false);
        }
        public void FaixaSalarialComMinimoEMaximoNulos()
        {
            var faixaSalarial = new FaixaSalarial
            {
                SalarioMinimo = null,
                SalarioMaximo = null,
                Aliquota      = 0.225M,
                Deduzir       = 300M
            };

            var imposto = faixaSalarial.CalcularImposto(2000M);

            Assert.AreEqual(imposto, 150M);
        }
        public void SalarioCorretamenteNaFaixaSalarialSemMaximo()
        {
            var faixaSalarial = new FaixaSalarial
            {
                SalarioMinimo = 4664.68M,
                SalarioMaximo = null,
                Aliquota      = 0.275M,
                Deduzir       = 869.36M
            };

            var imposto = faixaSalarial.CalcularImposto(5000M);

            Assert.AreEqual(imposto, 505.64M);
        }
        public void SalarioCorretamenteNaFaixaSalarialSemMinimo()
        {
            var faixaSalarial = new FaixaSalarial
            {
                SalarioMinimo = null,
                SalarioMaximo = 1000M,
                Aliquota      = 0.15M,
                Deduzir       = 0M
            };

            var imposto = faixaSalarial.CalcularImposto(1000M);

            Assert.AreEqual(imposto, 150M);
        }
        public void SalarioCorretamenteNaFaixaSalarialCompleto()
        {
            var faixaSalarial = new FaixaSalarial
            {
                SalarioMinimo = 3751.06M,
                SalarioMaximo = 4664.68M,
                Aliquota      = 0.225M,
                Deduzir       = 636.13M
            };

            var imposto = faixaSalarial.CalcularImposto(4000M);

            Assert.AreEqual(imposto, 263.87M);
        }
        public async Task ExecuteAsync()
        {
            for (int i = 0; i < 5; i++)
            {
                var defaultValue       = (FaixaSalarialDefaultValues)i;
                var stringDefaultValue = FaixaSalarialDefaultValuesAccess.GetValue(defaultValue);

                var faixaSalarialDb = _faixaSalarialRepository.GetByDescricao(stringDefaultValue);

                if (faixaSalarialDb == null)
                {
                    faixaSalarialDb = new FaixaSalarial(stringDefaultValue);

                    _faixaSalarialRepository.Create(faixaSalarialDb);
                    await _faixaSalarialRepository.UnitOfWork.SaveDbChanges();
                }
            }
        }