示例#1
0
        public void TestServiceChargesSpanningMultiplePayPeriods()
        {
            int empId = 1;
            AddHourlyEmployee t = new AddHourlyEmployee(empId, "Bill", "Home", 15.24);
            t.Execute();
            int memberId = 7734;

            ChangeMemberTransaction cmt = new ChangeMemberTransaction(empId, memberId, 9.42);
            cmt.Execute();
            DateTime payDate = new DateTime(2001, 11, 9);
            DateTime earlyDate = new DateTime(2001, 11, 2);//上一个周五
            DateTime lastDate=new DateTime(2001,11,16);//下个周五


            ServiceChargeTransaction sct = new ServiceChargeTransaction(memberId, payDate, 19.42);
            sct.Execute();

            ServiceChargeTransaction sctEarly = new ServiceChargeTransaction(memberId, earlyDate, 100);
            sctEarly.Execute();
            ServiceChargeTransaction sctLast = new ServiceChargeTransaction(memberId, lastDate, 200);
            sctLast.Execute();

            TimeCardTransaction tct=new TimeCardTransaction(payDate,8,empId);
            tct.Execute();

            PaydayTransaction pt = new PaydayTransaction(payDate);
            pt.Execute();

            Paycheck pc = pt.GetPaycheck(empId);

            Assert.IsNotNull(pc);
            Assert.AreEqual(payDate, pc.PayPeriodEndDate);
            Assert.AreEqual(8 * 15.24, pc.GrossPay, 0.001);
            Assert.AreEqual("Hold", pc.GetField("Disposition"));
            Assert.AreEqual(9.42 + 19.42, pc.Deductions, 0.001);
            Assert.AreEqual((8 * 15.24) - (9.42 + 19.42), pc.NetPay, 0.001);
        }
示例#2
0
        public void TestPaySingleHourlyEmployeeWithTimeCardsSpanningTwoPayPeriods()
        {
            int empId = 2;
            AddHourlyEmployee t = new AddHourlyEmployee(empId, "Bill", "Home", 15.25);
            t.Execute();
            DateTime payDate = new DateTime(2001, 11, 9);
            DateTime dateInPreviousPayPeriod=new DateTime(2001,11,2);

            TimeCardTransaction tc=new TimeCardTransaction(payDate,2,empId);
            tc.Execute();

            TimeCardTransaction tc2=new TimeCardTransaction(dateInPreviousPayPeriod,5,empId);
            tc2.Execute();

            PaydayTransaction pt=new PaydayTransaction(payDate);
            pt.Execute();
            ValidateHourlyPaycheck(pt,empId,payDate,2*15.25);
        }
示例#3
0
        public void TestPaySingleHourlyEmployeeTwoTimeCards()
        {
            int empId = 2;
            AddHourlyEmployee t = new AddHourlyEmployee(empId, "Bill", "Home", 15.25);
            t.Execute();
            DateTime payDate = new DateTime(2001, 11, 9);

            TimeCardTransaction tc=new TimeCardTransaction(payDate,2,empId);
            tc.Execute();
            TimeCardTransaction tc2 = new TimeCardTransaction(payDate.AddDays(-1), 5, empId);
            tc2.Execute();

            PaydayTransaction pt=new PaydayTransaction(payDate);
            pt.Execute();

            ValidateHourlyPaycheck(pt,empId,payDate,7*15.25);
        }
示例#4
0
        public void TestPaySingleHourlyEmployeeOnWrongDate()
        {
            int empId = 2;
            AddHourlyEmployee t = new AddHourlyEmployee(empId, "Bill", "Home", 15.25);
            t.Execute();
            DateTime payDate = new DateTime(2001, 11, 8);

            TimeCardTransaction tc = new TimeCardTransaction(payDate, 9, empId);
            tc.Execute();
            PaydayTransaction pt = new PaydayTransaction(payDate);
            pt.Execute();
            Assert.IsNull(pt);
        }
示例#5
0
        public void TestPaySingleHourlyEmployeeOvertimeOneTimeCard()
        {
            int empId = 2;
            AddHourlyEmployee t = new AddHourlyEmployee(empId, "Bill", "Home", 15.25);
            t.Execute();
            DateTime payDate = new DateTime(2001, 11, 9);

            TimeCardTransaction tc=new TimeCardTransaction(payDate,9,empId);
            tc.Execute();
            PaydayTransaction pt=new PaydayTransaction(payDate);
            pt.Execute();
            ValidateHourlyPaycheck(pt,empId,payDate,(8+1.5)*15.25);

        }
示例#6
0
        public void TestTimeCardTransaction()
        {
            int empid = 5;
            AddHourlyEmployee t=new AddHourlyEmployee(empid,"bill","home",15.25);
            t.Execute();

            TimeCardTransaction tct=new TimeCardTransaction(DateTime.Now.Date, 8,empid);
            tct.Execute();

            Employee e = PayrollDatabase.GetEmployee(empid);
            Assert.IsNotNull(e);

            IPaymentClassification pc = e.Classification;
            Assert.IsTrue(pc is HourlyClassification);

            HourlyClassification hc=pc as HourlyClassification;
            TimeCard tc = hc.GetTimeCard(DateTime.Now.Date);
            Assert.IsNotNull(tc);
            Assert.AreEqual(8.0,tc.Hours);
        }