示例#1
0
        public void ShouldSaveAndLoadTaxStatement()
        {
            IRepository repository = new Repository();
            var         password   = new Password {
                PasswordString = "abc"
            };
            var email    = new EmailAddress("*****@*****.**");
            var taxPayer = new User(email, password);

            taxPayer.FromMetro = true;
            taxPayer.RentPaid  = 8000.00;


            AnnualSalary salary = new AnnualSalary()
            {
                Basic = 10000, Epf = 2000, Hra = 6000, Id = "salary", ProfessionalTax = 200, SpecialAllowance = 5000, TaxDedeuctedAtSource = 5000
            };
            TaxStatement taxStatement = new TaxStatement(salary, taxPayer);

            DonationsUnder80G donationsUnder80G = new DonationsUnder80G();
            var halfExemptDonation = new HalfExemptDonation(20000);

            donationsUnder80G.AddDonation(halfExemptDonation);
            var fullyExemptDonation = new FullyExemptDonation(10000);

            donationsUnder80G.AddDonation(fullyExemptDonation);
            taxStatement.DonationsUnder80G = donationsUnder80G;
            repository.Save(taxStatement);

            List <TaxStatement> taxStatements = repository.LoadAll <TaxStatement>();
            var loadedTaxStatement            = taxStatements.FirstOrDefault(stmt => stmt.Id == taxStatement.Id);

            Assert.IsNotNull(loadedTaxStatement);
            Assert.IsNotNull(loadedTaxStatement.TaxPayer);
            Assert.IsTrue(taxStatement.GetDonationsUnder80G().Contains(halfExemptDonation));
            Assert.IsTrue(taxStatement.GetDonationsUnder80G().Contains(fullyExemptDonation));
        }
示例#2
0
        public void DeductionForAHalfExemptDonationUnder80GShouldbeHalfOfTheDonationMade()
        {
            DonationUnder80G donation = new HalfExemptDonation(50000);

            Assert.AreEqual(25000, donation.GetDeduction(), 0.001);
        }
示例#3
0
        public void DeductionForAHalfExemptDonationUnder80GShouldbeZeroIfDonationIsZero()
        {
            DonationUnder80G donation = new HalfExemptDonation(0);

            Assert.AreEqual(0, donation.GetDeduction(), 0.001);
        }