Exemplo n.º 1
0
        public void InputAnnualSalary(PayDetails payDetails)
        {
            try {
                System.Console.WriteLine("Please enter your annual salary:");
                string inputSalary;
                var    promptUserFormat = false;
                do
                {
                    inputSalary      = System.Console.ReadLine();
                    promptUserFormat = !payDetails.TrySetAnnualSalary(inputSalary);
                    if (promptUserFormat)
                    {
                        System.Console.WriteLine("Wrong format, the annual salary should be numbers only, please re-enter your annual salary:");
                    }
                    else
                    {
                        System.Console.WriteLine("You entered annual salary: " + payDetails.AnnualSalary);
                    }
                } while (promptUserFormat);

                /*  while (regexSalary.IsMatch(inputSalary) == false){
                 *  Console.WriteLine("Wrong format, the annual salary should be numbers only, please re-enter your annual salary:");
                 *  inputSalary = Console.ReadLine();
                 * }*/
                payDetails.calcIncomeTax();
            }
            catch (Exception e) {
                throw e;
            }
        }
Exemplo n.º 2
0
        public void IncomeTax_ShouldPositiveIfNegative()
        {
            var salary     = -40000;
            var super      = 9.5;
            var payDetails = new PayDetails();

            payDetails.TrySetAnnualSalary(salary.ToString());
            payDetails.calcIncomeTax();
            payDetails.TrySetSuperRate(super.ToString());
            Assert.AreEqual(3333, payDetails.GrossIncome);
            Assert.AreEqual(379, payDetails.IncomeTax);
            Assert.AreEqual(2954, payDetails.NetIncome);
            Assert.AreEqual(316, payDetails.Super);
        }
Exemplo n.º 3
0
        public void IncomeTax_ShouldFallIntoSecondBracket()
        {
            var salary     = 23000;
            var super      = 9.5;
            var payDetails = new PayDetails();

            payDetails.TrySetAnnualSalary(salary.ToString());
            payDetails.calcIncomeTax();
            payDetails.TrySetSuperRate(super.ToString());
            Assert.AreEqual(1916, payDetails.GrossIncome);
            Assert.AreEqual(76, payDetails.IncomeTax);
            Assert.AreEqual(1840, payDetails.NetIncome);
            Assert.AreEqual(182, payDetails.Super);
        }
Exemplo n.º 4
0
        public void IncomeTax_ShouldFallIntoFifthBracket()
        {
            var salary     = 200000;
            var super      = 9.5;
            var payDetails = new PayDetails();

            payDetails.TrySetAnnualSalary(salary.ToString());
            payDetails.calcIncomeTax();
            payDetails.TrySetSuperRate(super.ToString());
            Assert.AreEqual(16666, payDetails.GrossIncome);
            Assert.AreEqual(5270, payDetails.IncomeTax);
            Assert.AreEqual(11396, payDetails.NetIncome);
            Assert.AreEqual(1583, payDetails.Super);
        }
Exemplo n.º 5
0
        public void IncomeTax_ShouldFallInTheMiddleBracket_IfSalaryExactlyEqualsBracketMinimum()
        {
            var salary     = 87000.5;
            var super      = 9.5;
            var payDetails = new PayDetails();

            payDetails.TrySetAnnualSalary(salary.ToString());
            payDetails.calcIncomeTax();
            payDetails.TrySetSuperRate(super.ToString());
            Assert.AreEqual(7250, payDetails.GrossIncome);
            Assert.AreEqual(1652, payDetails.IncomeTax);
            Assert.AreEqual(5598, payDetails.NetIncome);
            Assert.AreEqual(688, payDetails.Super);
        }
Exemplo n.º 6
0
        [Test] public void IncomeTax_ShouldFallInTheLastBracket_IfSalaryExactlyEqualsBracketMinimum()
        {
            var salary     = 180000.5;
            var super      = 9.5;
            var payDetails = new PayDetails();

            payDetails.TrySetAnnualSalary(salary.ToString());
            payDetails.calcIncomeTax();
            payDetails.TrySetSuperRate(super.ToString());
            Assert.AreEqual(15000, payDetails.GrossIncome);
            Assert.AreEqual(4520, payDetails.IncomeTax);
            Assert.AreEqual(10480, payDetails.NetIncome);
            Assert.AreEqual(1425, payDetails.Super);
        }
Exemplo n.º 7
0
        public void IncomeTax_ShouldFallIntoFirstBracket()
        {
            var salary     = 17000;
            var super      = 9;
            var payDetails = new PayDetails();

            payDetails.TrySetAnnualSalary(salary.ToString());
            payDetails.calcIncomeTax();
            payDetails.TrySetSuperRate(super.ToString());
            Assert.AreEqual(1416, payDetails.GrossIncome);
            Assert.AreEqual(0, payDetails.IncomeTax);
            Assert.AreEqual(1416, payDetails.NetIncome);
            Assert.AreEqual(127, payDetails.Super);
        }
Exemplo n.º 8
0
        public void IncomeTax_SuperRateShouldBePositiveIfNegative()
        {
            var salary     = 50000;
            var super      = -9.5;
            var payDetails = new PayDetails();

            payDetails.TrySetAnnualSalary(salary.ToString());
            payDetails.calcIncomeTax();
            payDetails.TrySetSuperRate(super.ToString());
            Assert.AreEqual(4166, payDetails.GrossIncome);
            Assert.AreEqual(650, payDetails.IncomeTax);
            Assert.AreEqual(3516, payDetails.NetIncome);
            Assert.AreEqual(395, payDetails.Super);
        }
Exemplo n.º 9
0
        public void IncomeTax_ShouldBeZeroIfZero()
        {
            var salary     = 0;
            var super      = 9.5;
            var payDetails = new PayDetails();

            payDetails.TrySetAnnualSalary(salary.ToString());
            payDetails.calcIncomeTax();
            payDetails.TrySetSuperRate(super.ToString());
            Assert.AreEqual(0, payDetails.GrossIncome);
            Assert.AreEqual(0, payDetails.IncomeTax);
            Assert.AreEqual(0, payDetails.NetIncome);
            Assert.AreEqual(0, payDetails.Super);
        }
Exemplo n.º 10
0
 public void readImportPath(string path)
 {
     using (TextFieldParser parser = new TextFieldParser(path))
     {
         parser.TextFieldType = FieldType.Delimited;
         parser.SetDelimiters(",");
         while (!parser.EndOfData)
         {
             string[] fields     = parser.ReadFields();
             var      payDetails = new PayDetails();
             payDetails.FirstName    = fields[0];
             payDetails.SurName      = fields[1];
             payDetails.AnnualSalary = Convert.ToDouble(fields[2]);
             payDetails.SuperRate    = Convert.ToDouble(fields[3]);
             payDetails.PayStartDate = fields[4];
             payDetails.PayEndDate   = fields[5];
             payDetails.calcIncomeTax();
             payDetailsList.Add(payDetails);
         }
     }
 }