Beispiel #1
0
        public void TestAddHourlyEmployee()
        {
            int empid = 1;
            AddEmployeeTransaction t = new AddHourlyEmployee(empid, "Bob", "Home", 10.00);
            t.Execute();

            Employee e = PayrollDatabase.GetEmployee(empid);
            Assert.AreEqual(e.Name, "Bob");

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

            Assert.AreEqual(1000.00, sc.Salary, .001);
            IPaymentSchedule ps = e.Schedule;
            Assert.IsTrue(ps is MonthlySchedule);

            IPayemntMethod pm = e.Method;
            Assert.IsTrue(pm is HoldMethod);

        }
Beispiel #2
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);
        }
Beispiel #3
0
        public void TestHourlyUnionMemberServiceCharge()
        {
            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, 30);

            ServiceChargeTransaction sct=new ServiceChargeTransaction(memberId,payDate,19.42);
            sct.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);
        }
Beispiel #4
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);
        }
Beispiel #5
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);
        }
Beispiel #6
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);

        }
Beispiel #7
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);
        }
Beispiel #8
0
        public void TestPaySingleHourlyEmplouyeeNoTimeCards()
        {
            int empId = 2;
            AddHourlyEmployee t=new AddHourlyEmployee(empId,"Bill","Home",15.25);
            t.Execute();
            DateTime payDate=new DateTime(2001,11,9);
            PaydayTransaction pt=new PaydayTransaction(payDate);
            pt.Execute();

        

            ValidateHourlyPaycheck(pt,empId,payDate,0.0);
        }
Beispiel #9
0
        public void TestChangeUnionMember()
        {
            int empId = 8;
            AddHourlyEmployee employee = new AddHourlyEmployee(empId, "Lance", "Home", 15.25);
            employee.Execute();
            int memberId = 7743;
            ChangeMemberTransaction cmt=new ChangeMemberTransaction(empId,memberId,99.42);
            cmt.Execute();
            Employee e = PayrollDatabase.GetEmployee(empId);
            Assert.IsNotNull(e);

            IAffiliation affiliation = e.Affiliation;
            Assert.IsNotNull(affiliation);
            Assert.IsTrue(affiliation is UnionAffiliation);
            UnionAffiliation uf=affiliation as UnionAffiliation;
            
            Assert.AreEqual(99.42, uf.Dues,0.001);

            Employee member = PayrollDatabase.GetUnionMember(memberId);
            Assert.IsNotNull(member);
            Assert.AreEqual(e,member);
        }
Beispiel #10
0
        public void TestChangeNameTransaction()
        {
            int empId = 2;
            AddHourlyEmployee t=new AddHourlyEmployee(empId,"","",12.25);

            t.Execute();
            ChangeNameTransaction cnt=new ChangeNameTransaction(empId,"Bob");
            cnt.Execute();

            Employee e = PayrollDatabase.GetEmployee(empId);
            Assert.IsNotNull(e);
            Assert.AreEqual("Bob",e.Name);
        }
Beispiel #11
0
        public void TestAddServiceCharge()
        {
            int empid = 2;
            AddHourlyEmployee t = new AddHourlyEmployee(empid, "bill", "home", 15.25);
            t.Execute();
            Employee e = PayrollDatabase.GetEmployee(empid);
            Assert.IsNotNull(e);

            UnionAffiliation af=new UnionAffiliation();
            e.Affiliation = af;
            int memberId = 86;
            PayrollDatabase.AddUnionMember(memberId, e);

            ServiceChargeTransaction sct=new ServiceChargeTransaction(memberId,DateTime.Now.Date,12.95);
            sct.Execute();

            ServiceCharge sc = af.GetServiceCharge(DateTime.Now.Date);
            Assert.IsNotNull(sc);
            Assert.AreEqual(12.95,sc.Amount,.001);
        }
Beispiel #12
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);
        }