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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }