Skip to content

作業履歴 2017-04-07

概要

2017-04-07の作業内容をまとめています。

コミット: 3d2ecaf

メッセージ

固定給の従業員の給与
・TestPaySingleSalariedEmployeeOnWrongDate

変更されたファイル

  • M src/test/java/TestPayroll.java

変更内容

commit 3d2ecaf060cda236ae46ec4df254689cf2629c13
Author: k2works <kakimomokuri@gmail.com>
Date:   Fri Apr 7 17:42:30 2017 +0900

    固定給の従業員の給与

    ・TestPaySingleSalariedEmployeeOnWrongDate

diff --git a/src/test/java/TestPayroll.java b/src/test/java/TestPayroll.java
index 9c029cd..1885821 100644
--- a/src/test/java/TestPayroll.java
+++ b/src/test/java/TestPayroll.java
@@ -295,6 +295,18 @@ public class TestPayroll extends TestCase{
         ValidatePaycheck(pt, empId, payDate, 1000.0);
     }

+    public void testPaySingleSalariedEmployeeOnWrongDate() {
+        System.err.println("TestPaySingleSalariedEmployeeOnWrongDate");
+        int empId = 1;
+        AddSalariedEmployee t = new AddSalariedEmployee(empId,"Bob","Home",1000.0);
+        t.Execute();
+        Calendar payDate = new GregorianCalendar(2001, Calendar.NOVEMBER,29);
+        PaydayTransaction pt = new PaydayTransaction(payDate);
+        pt.Execute();
+        Paycheck pc = pt.GetPaycheck(empId);
+        assertNull(pc);
+    }
+
     private void ValidatePaycheck(PaydayTransaction pt, int empId, Calendar payDate, double pay) {
         Paycheck pc = pt.GetPaycheck(empId);
         assertNotNull(pc);

コミット: 317e2f3

メッセージ

固定給の従業員の給与
・TestPaySingleSalariedEmployee

変更されたファイル

  • M src/main/java/Affiliation.java
  • M src/main/java/BiweeklySchedule.java
  • M src/main/java/CommissionedClassification.java
  • M src/main/java/DirectMethod.java
  • M src/main/java/Employee.java
  • M src/main/java/HoldMethod.java
  • M src/main/java/HourlyClassification.java
  • M src/main/java/MailMethod.java
  • M src/main/java/MonthlySchedule.java
  • M src/main/java/NoAffiliation.java
  • A src/main/java/Paycheck.java
  • A src/main/java/PaydayTransaction.java
  • M src/main/java/PaymentClassification.java
  • M src/main/java/PaymentMethod.java
  • M src/main/java/PaymentSchedule.java
  • M src/main/java/PayrollDatabase.java
  • M src/main/java/SalariedClassification.java
  • M src/main/java/UnionAffiliation.java
  • M src/main/java/WeeklySchedule.java
  • M src/test/java/TestPayroll.java

変更内容

commit 317e2f352e8e1f55fa7c1f88cd80c3575cf60725
Author: k2works <kakimomokuri@gmail.com>
Date:   Fri Apr 7 17:39:18 2017 +0900

    固定給の従業員の給与

    ・TestPaySingleSalariedEmployee

diff --git a/src/main/java/Affiliation.java b/src/main/java/Affiliation.java
index 4219855..10834b3 100644
--- a/src/main/java/Affiliation.java
+++ b/src/main/java/Affiliation.java
@@ -3,4 +3,6 @@
  */
 public interface Affiliation {
     double GetServiceCharge(long date);
+
+    double CalculateDeductions(Paycheck pc);
 }
diff --git a/src/main/java/BiweeklySchedule.java b/src/main/java/BiweeklySchedule.java
index 9ee711d..eaaa644 100644
--- a/src/main/java/BiweeklySchedule.java
+++ b/src/main/java/BiweeklySchedule.java
@@ -1,5 +1,14 @@
+import java.util.Calendar;
+
 /**
  * Created by k2works on 2017/04/06.
  */
 public class BiweeklySchedule implements PaymentSchedule {
+    public boolean IsPayDate(Calendar payDate) {
+        return false;
+    }
+
+    public Calendar GetPayPeriodStartDate(Calendar payDate) {
+        return null;
+    }
 }
diff --git a/src/main/java/CommissionedClassification.java b/src/main/java/CommissionedClassification.java
index 49cc301..081c1a3 100644
--- a/src/main/java/CommissionedClassification.java
+++ b/src/main/java/CommissionedClassification.java
@@ -30,4 +30,8 @@ public class CommissionedClassification implements PaymentClassification {
     public SalesReceipt GetReceipt(long date) {
         return itsReceipts.get(date);
     }
+
+    public double CalculatePay(Paycheck pc) {
+        return 0;
+    }
 }
diff --git a/src/main/java/DirectMethod.java b/src/main/java/DirectMethod.java
index b8b5e5b..7fba14a 100644
--- a/src/main/java/DirectMethod.java
+++ b/src/main/java/DirectMethod.java
@@ -18,4 +18,8 @@ public class DirectMethod implements PaymentMethod {
     public String GetAccount() {
         return itsAccount;
     }
+
+    public void Pay(Paycheck pc) {
+
+    }
 }
diff --git a/src/main/java/Employee.java b/src/main/java/Employee.java
index 9efa332..f15b6e4 100644
--- a/src/main/java/Employee.java
+++ b/src/main/java/Employee.java
@@ -1,3 +1,5 @@
+import java.util.Calendar;
+
 /**
  * Created by k2works on 2017/04/06.
  */
@@ -14,6 +16,7 @@ class Employee {
         itsEmpId = empId;
         itsName = name;
         itsAddress = address;
+        itsAffiliation = new NoAffiliation();
     }

     public int GetEmpId() {
@@ -67,4 +70,22 @@ class Employee {
     public void SetAffiliation(Affiliation af) {
         itsAffiliation = af;
     }
+
+    public boolean IsPayDate(Calendar payDate) {
+        return itsSchedule.IsPayDate(payDate);
+    }
+
+    public Calendar GetPayPeriodStartDate(Calendar payDate) {
+        return itsSchedule.GetPayPeriodStartDate(payDate);
+    }
+
+    public void Payday(Paycheck pc) {
+        double grossPay = itsClassification.CalculatePay(pc);
+        double deductions = itsAffiliation.CalculateDeductions(pc);
+        double netPay = grossPay - deductions;
+        pc.SetGrossPay(grossPay);
+        pc.SetDeductions(deductions);
+        pc.SetNetPay(netPay);
+        itsPaymentMethod.Pay(pc);
+    }
 }
diff --git a/src/main/java/HoldMethod.java b/src/main/java/HoldMethod.java
index 363437e..9bfadc9 100644
--- a/src/main/java/HoldMethod.java
+++ b/src/main/java/HoldMethod.java
@@ -2,4 +2,7 @@
  * Created by k2works on 2017/04/06.
  */
 public class HoldMethod implements PaymentMethod {
+    public void Pay(Paycheck pc) {
+
+    }
 }
diff --git a/src/main/java/HourlyClassification.java b/src/main/java/HourlyClassification.java
index 383c4a5..a2e0678 100644
--- a/src/main/java/HourlyClassification.java
+++ b/src/main/java/HourlyClassification.java
@@ -24,4 +24,8 @@ public class HourlyClassification implements  PaymentClassification {
     public void AddTimeCard(TimeCard tc) {
         itsTimeCards.put(tc.GetDate(), tc);
     }
+
+    public double CalculatePay(Paycheck pc) {
+        return 0;
+    }
 }
diff --git a/src/main/java/MailMethod.java b/src/main/java/MailMethod.java
index 1814815..842a9a0 100644
--- a/src/main/java/MailMethod.java
+++ b/src/main/java/MailMethod.java
@@ -11,4 +11,8 @@ public class MailMethod implements PaymentMethod {
     public String GetAddress() {
         return itsAddress;
     }
+
+    public void Pay(Paycheck pc) {
+
+    }
 }
diff --git a/src/main/java/MonthlySchedule.java b/src/main/java/MonthlySchedule.java
index a07f3c8..f0c3446 100644
--- a/src/main/java/MonthlySchedule.java
+++ b/src/main/java/MonthlySchedule.java
@@ -1,5 +1,23 @@
+import java.util.Calendar;
+
 /**
  * Created by k2works on 2017/04/06.
  */
 public class MonthlySchedule implements PaymentSchedule {
+    private boolean IsLastDayOfMonth(Calendar date) {
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(date.getTime());
+        return (cal.getActualMaximum(Calendar.DATE) == cal.get(Calendar.DATE));
+    }
+
+    public boolean IsPayDate(Calendar payDate) {
+        return IsLastDayOfMonth(payDate);
+    }
+
+    public Calendar GetPayPeriodStartDate(Calendar payDate) {
+        Calendar payPeriodStartDate = Calendar.getInstance();
+        payPeriodStartDate.setTime(payDate.getTime());
+        payPeriodStartDate.set(Calendar.DATE,1);
+        return payPeriodStartDate;
+    }
 }
diff --git a/src/main/java/NoAffiliation.java b/src/main/java/NoAffiliation.java
index 77cb405..c6263b3 100644
--- a/src/main/java/NoAffiliation.java
+++ b/src/main/java/NoAffiliation.java
@@ -5,4 +5,8 @@ public class NoAffiliation implements Affiliation {
     public double GetServiceCharge(long date) {
         return 0;
     }
+
+    public double CalculateDeductions(Paycheck pc) {
+        return 0;
+    }
 }
diff --git a/src/main/java/Paycheck.java b/src/main/java/Paycheck.java
new file mode 100644
index 0000000..c59838d
--- /dev/null
+++ b/src/main/java/Paycheck.java
@@ -0,0 +1,52 @@
+import java.util.Calendar;
+
+/**
+ * Created by k2works on 2017/04/07.
+ */
+public class Paycheck {
+    private Calendar itsPayPeriodStartDate;
+    private Calendar itsPayPeriodEndDate;
+    private double itsGrossPay;
+    private double itsDeducations;
+    private double itsNetPay;
+
+    public Paycheck(Calendar payPeriodStartDate, Calendar payPeriodEndDate) {
+        itsPayPeriodStartDate = payPeriodStartDate;
+        itsPayPeriodEndDate = payPeriodEndDate;
+    }
+    
+    public void SetGrossPay(double grossPay) {
+        itsGrossPay = grossPay;
+    }
+
+    public void SetDeductions(double deductions) {
+        itsDeducations = deductions;
+    }
+
+    public void SetNetPay(double netPay) {
+        itsNetPay = netPay;
+    }
+
+    public Calendar GetPayPeriodEndDate() {
+        return itsPayPeriodEndDate;
+    }
+
+    public double GetGrossPay() {
+        return itsGrossPay;
+    }
+
+    public String GetField(String string) {
+        if (string.equals("Disposition")) {
+            return "Hold";
+        }
+        return null;
+    }
+
+    public double GetDeducations() {
+        return itsDeducations;
+    }
+
+    public double GetNetPay() {
+        return itsNetPay;
+    }
+}
diff --git a/src/main/java/PaydayTransaction.java b/src/main/java/PaydayTransaction.java
new file mode 100644
index 0000000..1d6c03a
--- /dev/null
+++ b/src/main/java/PaydayTransaction.java
@@ -0,0 +1,32 @@
+import java.util.Calendar;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Created by k2works on 2017/04/07.
+ */
+public class PaydayTransaction implements Transaction {
+    private Calendar itsPayDate;
+    private Map<Integer, Paycheck> itsPaychecks = new HashMap<Integer, Paycheck>();
+
+    public PaydayTransaction(Calendar payDate) {
+        itsPayDate = payDate;
+    }
+
+    public void Execute() {
+        List<Integer> empIds = PayrollDatabase.GetAllEmployeeIds();
+        for(int empId : empIds) {
+            Employee e = PayrollDatabase.GetEmployee(empId);
+            if(e.IsPayDate(itsPayDate)) {
+                Paycheck pc = new Paycheck(e.GetPayPeriodStartDate(itsPayDate),itsPayDate);
+                itsPaychecks.put(empId, pc);
+                e.Payday(pc);
+            }
+        }
+    }
+
+    public Paycheck GetPaycheck(int empId) {
+        return itsPaychecks.get(empId);
+    }
+}
diff --git a/src/main/java/PaymentClassification.java b/src/main/java/PaymentClassification.java
index 4250029..116a7cb 100644
--- a/src/main/java/PaymentClassification.java
+++ b/src/main/java/PaymentClassification.java
@@ -2,4 +2,5 @@
  * Created by k2works on 2017/04/06.
  */
 public interface PaymentClassification {
+    abstract double CalculatePay(Paycheck pc);
 }
diff --git a/src/main/java/PaymentMethod.java b/src/main/java/PaymentMethod.java
index 7ad49f3..eccd52e 100644
--- a/src/main/java/PaymentMethod.java
+++ b/src/main/java/PaymentMethod.java
@@ -2,4 +2,5 @@
  * Created by k2works on 2017/04/06.
  */
 public interface PaymentMethod {
+    void Pay(Paycheck pc);
 }
diff --git a/src/main/java/PaymentSchedule.java b/src/main/java/PaymentSchedule.java
index a6c2174..278232e 100644
--- a/src/main/java/PaymentSchedule.java
+++ b/src/main/java/PaymentSchedule.java
@@ -1,5 +1,10 @@
+import java.util.Calendar;
+
 /**
  * Created by k2works on 2017/04/06.
  */
 public interface PaymentSchedule {
+    boolean IsPayDate(Calendar payDate);
+
+    Calendar GetPayPeriodStartDate(Calendar payDate);
 }
diff --git a/src/main/java/PayrollDatabase.java b/src/main/java/PayrollDatabase.java
index 6ccc6ec..24f3a66 100644
--- a/src/main/java/PayrollDatabase.java
+++ b/src/main/java/PayrollDatabase.java
@@ -1,4 +1,6 @@
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;

 /**
@@ -31,4 +33,8 @@ class PayrollDatabase {
     public static void RemoveUnionMember(int memberId) {
         itsUnionMembers.remove(memberId);
     }
+
+    public static List<Integer> GetAllEmployeeIds() {
+        return new ArrayList<Integer>(itsEmployees.keySet());
+    }
 }
diff --git a/src/main/java/SalariedClassification.java b/src/main/java/SalariedClassification.java
index 38fd158..81a2bbd 100644
--- a/src/main/java/SalariedClassification.java
+++ b/src/main/java/SalariedClassification.java
@@ -12,4 +12,7 @@ public class SalariedClassification implements PaymentClassification {
         return itsSalary;
     }

+    public double CalculatePay(Paycheck pc) {
+        return itsSalary;
+    }
 }
diff --git a/src/main/java/UnionAffiliation.java b/src/main/java/UnionAffiliation.java
index f8ee246..f3d5de1 100644
--- a/src/main/java/UnionAffiliation.java
+++ b/src/main/java/UnionAffiliation.java
@@ -25,6 +25,10 @@ public class UnionAffiliation implements Affiliation {
         return itsServiceCharges.get(date).GetAmount();
     }

+    public double CalculateDeductions(Paycheck pc) {
+        return 0;
+    }
+
     public void AddServiceCharge(long date, double amount) {
         itsServiceCharges.put(date, new ServiceCharge(date, amount));
     }
diff --git a/src/main/java/WeeklySchedule.java b/src/main/java/WeeklySchedule.java
index a03549a..26bec68 100644
--- a/src/main/java/WeeklySchedule.java
+++ b/src/main/java/WeeklySchedule.java
@@ -1,5 +1,14 @@
+import java.util.Calendar;
+
 /**
  * Created by k2works on 2017/04/06.
  */
 public class WeeklySchedule implements PaymentSchedule {
+    public boolean IsPayDate(Calendar payDate) {
+        return false;
+    }
+
+    public Calendar GetPayPeriodStartDate(Calendar payDate) {
+        return null;
+    }
 }
diff --git a/src/test/java/TestPayroll.java b/src/test/java/TestPayroll.java
index 31cb460..9c029cd 100644
--- a/src/test/java/TestPayroll.java
+++ b/src/test/java/TestPayroll.java
@@ -1,5 +1,8 @@
 import junit.framework.TestCase;

+import java.util.Calendar;
+import java.util.GregorianCalendar;
+
 /**
  * Created by k2works on 2017/04/06.
  */
@@ -280,4 +283,25 @@ public class TestPayroll extends TestCase{
         assertNotNull(member);
         assertEquals(e,member);
     }
+
+    public void testPaySingleSalariedEmployee() {
+        System.err.println("TestPaySingleSalariedEmployee");
+        int empId = 1;
+        AddSalariedEmployee t = new AddSalariedEmployee(empId,"Bob","Home",1000.0);
+        t.Execute();
+        Calendar payDate = new GregorianCalendar(2001, Calendar.NOVEMBER,30);
+        PaydayTransaction pt = new PaydayTransaction(payDate);
+        pt.Execute();
+        ValidatePaycheck(pt, empId, payDate, 1000.0);
+    }
+
+    private void ValidatePaycheck(PaydayTransaction pt, int empId, Calendar payDate, double pay) {
+        Paycheck pc = pt.GetPaycheck(empId);
+        assertNotNull(pc);
+        assertEquals(pc.GetPayPeriodEndDate(), payDate);
+        assertEquals(pay, pc.GetGrossPay());
+        assertEquals("Hold", pc.GetField("Disposition"));
+        assertEquals(0.0, pc.GetDeducations());
+        assertEquals(pay, pc.GetNetPay());
+    }
 }
\ No newline at end of file

コミット: 3bb014b

メッセージ

何てこった!
・TestChangeMemberTransaction

変更されたファイル

  • A src/main/java/ChangeAffiliationTransaction.java
  • A src/main/java/ChangeMemberTransaction.java
  • A src/main/java/ChangeUnaffiliatedTransaction.java
  • A src/main/java/NoAffiliation.java
  • M src/main/java/PayrollDatabase.java
  • M src/main/java/UnionAffiliation.java
  • M src/test/java/TestPayroll.java

変更内容

commit 3bb014ba7ba72eb2ee9e8e840d4878da1d96fd65
Author: k2works <kakimomokuri@gmail.com>
Date:   Fri Apr 7 16:14:36 2017 +0900

    何てこった!

    ・TestChangeMemberTransaction

diff --git a/src/main/java/ChangeAffiliationTransaction.java b/src/main/java/ChangeAffiliationTransaction.java
new file mode 100644
index 0000000..b62169b
--- /dev/null
+++ b/src/main/java/ChangeAffiliationTransaction.java
@@ -0,0 +1,17 @@
+/**
+ * Created by k2works on 2017/04/07.
+ */
+public abstract class ChangeAffiliationTransaction extends ChangeEmployeeTransaction {
+    public ChangeAffiliationTransaction(int empId) {
+        super(empId);
+    }
+
+    void Change(Employee e) {
+        RecordMembership(e);
+        e.SetAffiliation(GetAffiliation());
+    }
+
+    abstract void RecordMembership(Employee e);
+
+    abstract Affiliation GetAffiliation();
+}
diff --git a/src/main/java/ChangeMemberTransaction.java b/src/main/java/ChangeMemberTransaction.java
new file mode 100644
index 0000000..3229e24
--- /dev/null
+++ b/src/main/java/ChangeMemberTransaction.java
@@ -0,0 +1,21 @@
+/**
+ * Created by k2works on 2017/04/07.
+ */
+public class ChangeMemberTransaction extends ChangeAffiliationTransaction {
+    private int itsMemberId;
+    private double itsDues;
+
+    public ChangeMemberTransaction(int empId, int memberId, double dues) {
+        super(empId);
+        itsMemberId = memberId;
+        itsDues = dues;
+    }
+
+    Affiliation GetAffiliation() {
+        return new UnionAffiliation(itsMemberId,itsDues);
+    }
+
+    void RecordMembership(Employee e) {
+        PayrollDatabase.AddUnionMember(itsMemberId, e);
+    }
+}
diff --git a/src/main/java/ChangeUnaffiliatedTransaction.java b/src/main/java/ChangeUnaffiliatedTransaction.java
new file mode 100644
index 0000000..b7f81ea
--- /dev/null
+++ b/src/main/java/ChangeUnaffiliatedTransaction.java
@@ -0,0 +1,21 @@
+/**
+ * Created by k2works on 2017/04/07.
+ */
+public class ChangeUnaffiliatedTransaction extends ChangeAffiliationTransaction {
+    public ChangeUnaffiliatedTransaction(int empId) {
+        super(empId);
+    }
+
+    public Affiliation GetAffiliation() {
+        return new NoAffiliation();
+    }
+
+    public void RecordMembership(Employee e) {
+        Affiliation af = e.GetAffiliation();
+        if (af instanceof UnionAffiliation) {
+            UnionAffiliation uf = (UnionAffiliation) af;
+            int memberId = uf.GetMemberId();
+            PayrollDatabase.RemoveUnionMember(memberId);
+        }
+    }
+}
diff --git a/src/main/java/NoAffiliation.java b/src/main/java/NoAffiliation.java
new file mode 100644
index 0000000..77cb405
--- /dev/null
+++ b/src/main/java/NoAffiliation.java
@@ -0,0 +1,8 @@
+/**
+ * Created by k2works on 2017/04/07.
+ */
+public class NoAffiliation implements Affiliation {
+    public double GetServiceCharge(long date) {
+        return 0;
+    }
+}
diff --git a/src/main/java/PayrollDatabase.java b/src/main/java/PayrollDatabase.java
index dab5b04..6ccc6ec 100644
--- a/src/main/java/PayrollDatabase.java
+++ b/src/main/java/PayrollDatabase.java
@@ -27,4 +27,8 @@ class PayrollDatabase {
     public static Employee GetUnionMbember(int memberId) {
         return itsUnionMembers.get(memberId);
     }
+
+    public static void RemoveUnionMember(int memberId) {
+        itsUnionMembers.remove(memberId);
+    }
 }
diff --git a/src/main/java/UnionAffiliation.java b/src/main/java/UnionAffiliation.java
index 2d93912..f8ee246 100644
--- a/src/main/java/UnionAffiliation.java
+++ b/src/main/java/UnionAffiliation.java
@@ -6,8 +6,16 @@ import java.util.Map;
  */
 public class UnionAffiliation implements Affiliation {
     private Map<Long, ServiceCharge> itsServiceCharges = new HashMap<Long, ServiceCharge>();
+    private int itsMemberId;
+    private double itsDues;

-    public UnionAffiliation(double d) {
+    public UnionAffiliation(double dues) {
+        itsDues = dues;
+    }
+
+    public UnionAffiliation(int memberId, double dues) {
+        itsMemberId = memberId;
+        itsDues = dues;
     }

     public double GetServiceCharge(long date) {
@@ -20,4 +28,12 @@ public class UnionAffiliation implements Affiliation {
     public void AddServiceCharge(long date, double amount) {
         itsServiceCharges.put(date, new ServiceCharge(date, amount));
     }
+
+    public int GetMemberId() {
+        return itsMemberId;
+    }
+
+    public double GetDues() {
+        return itsDues;
+    }
 }
diff --git a/src/test/java/TestPayroll.java b/src/test/java/TestPayroll.java
index 8e7603d..31cb460 100644
--- a/src/test/java/TestPayroll.java
+++ b/src/test/java/TestPayroll.java
@@ -260,4 +260,24 @@ public class TestPayroll extends TestCase{
         HoldMethod hm = (HoldMethod) pm;
         assertNotNull(hm);
     }
+
+    public void testChangeMemberTransaction() {
+        System.err.println("TestChangeMemberTransaction");
+        int empId = 2;
+        int memberId = 7734;
+        AddHourlyEmployee t = new AddHourlyEmployee(empId, "Bill","Home",15.25);
+        t.Execute();
+        ChangeMemberTransaction cmt = new ChangeMemberTransaction(empId, memberId, 99.42);
+        cmt.Execute();
+        Employee e = PayrollDatabase.GetEmployee(empId);
+        assertNotNull(e);
+        Affiliation af = e.GetAffiliation();
+        assertNotNull(af);
+        UnionAffiliation uf = (UnionAffiliation) af;
+        assertNotNull(uf);
+        assertEquals(99.42, uf.GetDues());
+        Employee member = PayrollDatabase.GetUnionMbember(memberId);
+        assertNotNull(member);
+        assertEquals(e,member);
+    }
 }
\ No newline at end of file

コミット: a531d1b

メッセージ

給与体系を変更するトランザクション
・TestChangeHoldTransaction

変更されたファイル

  • A src/main/java/ChangeHoldTransaction.java
  • M src/test/java/TestPayroll.java

変更内容

commit a531d1bd597cff9157c81d4954b9df03fc4aca2b
Author: k2works <kakimomokuri@gmail.com>
Date:   Fri Apr 7 15:49:09 2017 +0900

    給与体系を変更するトランザクション

    ・TestChangeHoldTransaction

diff --git a/src/main/java/ChangeHoldTransaction.java b/src/main/java/ChangeHoldTransaction.java
new file mode 100644
index 0000000..e8e23f3
--- /dev/null
+++ b/src/main/java/ChangeHoldTransaction.java
@@ -0,0 +1,12 @@
+/**
+ * Created by k2works on 2017/04/07.
+ */
+public class ChangeHoldTransaction extends ChangeMethodTransaction {
+    public ChangeHoldTransaction(int empId) {
+        super(empId);
+    }
+
+    PaymentMethod GetMethod() {
+        return new HoldMethod();
+    }
+}
diff --git a/src/test/java/TestPayroll.java b/src/test/java/TestPayroll.java
index 967154c..8e7603d 100644
--- a/src/test/java/TestPayroll.java
+++ b/src/test/java/TestPayroll.java
@@ -245,4 +245,19 @@ public class TestPayroll extends TestCase{
         assertEquals("FirstNational", dm.GetBank());
         assertEquals("1058209",dm.GetAccount());
     }
+
+    public void testChangeHoldTransaction() {
+        System.err.println("TestChangeHoldTransaction");
+        int empId = 2;
+        AddHourlyEmployee t = new AddHourlyEmployee(empId, "Bill", "Home",15.25);
+        t.Execute();
+        ChangeHoldTransaction cht = new ChangeHoldTransaction(empId);
+        cht.Execute();
+        Employee e = PayrollDatabase.GetEmployee(empId);
+        assertNotNull(e);
+        PaymentMethod pm = e.GetMethod();
+        assertNotNull(pm);
+        HoldMethod hm = (HoldMethod) pm;
+        assertNotNull(hm);
+    }
 }
\ No newline at end of file

コミット: 772d37d

メッセージ

給与体系を変更するトランザクション
・TestChangeDirectTransaction

変更されたファイル

  • A src/main/java/ChangeDirectTransaction.java
  • M src/main/java/ChangeMailTransaction.java
  • M src/main/java/ChangeMethodTransaction.java
  • A src/main/java/DirectMethod.java
  • M src/main/java/HoldMethod.java
  • M src/main/java/MailMethod.java
  • M src/main/java/PaymentMethod.java
  • M src/test/java/TestPayroll.java

変更内容

commit 772d37d0e6a53111cf1a73e145ccd35786f56cb1
Author: k2works <kakimomokuri@gmail.com>
Date:   Fri Apr 7 15:40:51 2017 +0900

    給与体系を変更するトランザクション

    ・TestChangeDirectTransaction

diff --git a/src/main/java/ChangeDirectTransaction.java b/src/main/java/ChangeDirectTransaction.java
new file mode 100644
index 0000000..b53f17e
--- /dev/null
+++ b/src/main/java/ChangeDirectTransaction.java
@@ -0,0 +1,17 @@
+/**
+ * Created by k2works on 2017/04/07.
+ */
+public class ChangeDirectTransaction extends ChangeMethodTransaction {
+    private String itsBank;
+    private String itsAccount;
+
+    public ChangeDirectTransaction(int empId, String bank, String account) {
+        super(empId);
+        itsBank = bank;
+        itsAccount = account;
+    }
+
+    PaymentMethod GetMethod() {
+        return new DirectMethod(itsBank,itsAccount);
+    }
+}
diff --git a/src/main/java/ChangeMailTransaction.java b/src/main/java/ChangeMailTransaction.java
index 29317c5..79d835a 100644
--- a/src/main/java/ChangeMailTransaction.java
+++ b/src/main/java/ChangeMailTransaction.java
@@ -9,7 +9,7 @@ public class ChangeMailTransaction extends ChangeMethodTransaction {
         itsAddress = address;
     }

-    PaymentMethod GetMthod() {
+    PaymentMethod GetMethod() {
         return new MailMethod(itsAddress);
     }
 }
diff --git a/src/main/java/ChangeMethodTransaction.java b/src/main/java/ChangeMethodTransaction.java
index 2909acf..49875d5 100644
--- a/src/main/java/ChangeMethodTransaction.java
+++ b/src/main/java/ChangeMethodTransaction.java
@@ -7,8 +7,8 @@ public abstract class ChangeMethodTransaction extends ChangeEmployeeTransaction
     }

     public void Change(Employee e) {
-        e.SetMethod(GetMthod());
+        e.SetMethod(GetMethod());
     }

-    abstract PaymentMethod GetMthod();
+    abstract PaymentMethod GetMethod();
 }
diff --git a/src/main/java/DirectMethod.java b/src/main/java/DirectMethod.java
new file mode 100644
index 0000000..b8b5e5b
--- /dev/null
+++ b/src/main/java/DirectMethod.java
@@ -0,0 +1,21 @@
+/**
+ * Created by k2works on 2017/04/07.
+ */
+
+public class DirectMethod implements PaymentMethod {
+    private String itsBank;
+    private String itsAccount;
+
+    public DirectMethod(String bank, String account) {
+        itsBank = bank;
+        itsAccount = account;
+    }
+
+    public String GetBank() {
+        return itsBank;
+    }
+
+    public String GetAccount() {
+        return itsAccount;
+    }
+}
diff --git a/src/main/java/HoldMethod.java b/src/main/java/HoldMethod.java
index 4d5b09a..363437e 100644
--- a/src/main/java/HoldMethod.java
+++ b/src/main/java/HoldMethod.java
@@ -1,5 +1,5 @@
 /**
  * Created by k2works on 2017/04/06.
  */
-public class HoldMethod extends PaymentMethod {
+public class HoldMethod implements PaymentMethod {
 }
diff --git a/src/main/java/MailMethod.java b/src/main/java/MailMethod.java
index c734787..1814815 100644
--- a/src/main/java/MailMethod.java
+++ b/src/main/java/MailMethod.java
@@ -1,7 +1,7 @@
 /**
  * Created by k2works on 2017/04/07.
  */
-public class MailMethod extends PaymentMethod {
+public class MailMethod implements PaymentMethod {
     private String itsAddress;

     public MailMethod(String address) {
diff --git a/src/main/java/PaymentMethod.java b/src/main/java/PaymentMethod.java
index 2517559..7ad49f3 100644
--- a/src/main/java/PaymentMethod.java
+++ b/src/main/java/PaymentMethod.java
@@ -1,5 +1,5 @@
 /**
  * Created by k2works on 2017/04/06.
  */
-public class PaymentMethod {
+public interface PaymentMethod {
 }
diff --git a/src/test/java/TestPayroll.java b/src/test/java/TestPayroll.java
index d44dba3..967154c 100644
--- a/src/test/java/TestPayroll.java
+++ b/src/test/java/TestPayroll.java
@@ -228,4 +228,21 @@ public class TestPayroll extends TestCase{
         assertNotNull(mm);
         assertEquals("4080 El Cerrito Road", mm.GetAddress());
     }
+
+    public void testChangeDirectTransaction() {
+        System.err.println("TestChangeDirectTransaction");
+        int empId = 2;
+        AddHourlyEmployee t = new AddHourlyEmployee(empId, "Bill", "Home", 15.25);
+        t.Execute();
+        ChangeDirectTransaction cdt = new ChangeDirectTransaction(empId, "FirstNational", "1058209");
+        cdt.Execute();
+        Employee e = PayrollDatabase.GetEmployee(empId);
+        assertNotNull(e);
+        PaymentMethod pm = e.GetMethod();
+        assertNotNull(pm);
+        DirectMethod dm = (DirectMethod) pm;
+        assertNotNull(dm);
+        assertEquals("FirstNational", dm.GetBank());
+        assertEquals("1058209",dm.GetAccount());
+    }
 }
\ No newline at end of file

コミット: f1c3d1e

メッセージ

給与体系を変更するトランザクション
・TestChangeMailTransaction

変更されたファイル

  • A src/main/java/ChangeMailTransaction.java
  • A src/main/java/ChangeMethodTransaction.java
  • A src/main/java/MailMethod.java
  • M src/test/java/TestPayroll.java

変更内容

commit f1c3d1e94d5659941b941ccd20d67a478437a5cf
Author: k2works <kakimomokuri@gmail.com>
Date:   Fri Apr 7 15:02:14 2017 +0900

    給与体系を変更するトランザクション

    ・TestChangeMailTransaction

diff --git a/src/main/java/ChangeMailTransaction.java b/src/main/java/ChangeMailTransaction.java
new file mode 100644
index 0000000..29317c5
--- /dev/null
+++ b/src/main/java/ChangeMailTransaction.java
@@ -0,0 +1,15 @@
+/**
+ * Created by k2works on 2017/04/07.
+ */
+public class ChangeMailTransaction extends ChangeMethodTransaction {
+    private String itsAddress;
+
+    public ChangeMailTransaction(int empId, String address) {
+        super(empId);
+        itsAddress = address;
+    }
+
+    PaymentMethod GetMthod() {
+        return new MailMethod(itsAddress);
+    }
+}
diff --git a/src/main/java/ChangeMethodTransaction.java b/src/main/java/ChangeMethodTransaction.java
new file mode 100644
index 0000000..2909acf
--- /dev/null
+++ b/src/main/java/ChangeMethodTransaction.java
@@ -0,0 +1,14 @@
+/**
+ * Created by k2works on 2017/04/07.
+ */
+public abstract class ChangeMethodTransaction extends ChangeEmployeeTransaction {
+    public ChangeMethodTransaction(int empId) {
+        super(empId);
+    }
+
+    public void Change(Employee e) {
+        e.SetMethod(GetMthod());
+    }
+
+    abstract PaymentMethod GetMthod();
+}
diff --git a/src/main/java/MailMethod.java b/src/main/java/MailMethod.java
new file mode 100644
index 0000000..c734787
--- /dev/null
+++ b/src/main/java/MailMethod.java
@@ -0,0 +1,14 @@
+/**
+ * Created by k2works on 2017/04/07.
+ */
+public class MailMethod extends PaymentMethod {
+    private String itsAddress;
+
+    public MailMethod(String address) {
+        itsAddress = address;
+    }
+
+    public String GetAddress() {
+        return itsAddress;
+    }
+}
diff --git a/src/test/java/TestPayroll.java b/src/test/java/TestPayroll.java
index d71561c..d44dba3 100644
--- a/src/test/java/TestPayroll.java
+++ b/src/test/java/TestPayroll.java
@@ -212,4 +212,20 @@ public class TestPayroll extends TestCase{
         BiweeklySchedule bs = (BiweeklySchedule) ps;
         assertNotNull(bs);
     }
+
+    public void testChangeMailTransaction() {
+        System.err.println("TestChangeMailTransaction");
+        int empId = 2;
+        AddHourlyEmployee t = new AddHourlyEmployee(empId, "Bill", "Home", 15.25);
+        t.Execute();
+        ChangeMailTransaction cmt = new ChangeMailTransaction(empId, "4080 El Cerrito Road");
+        cmt.Execute();
+        Employee e = PayrollDatabase.GetEmployee(empId);
+        assertNotNull(e);
+        PaymentMethod pm = e.GetMethod();
+        assertNotNull(pm);
+        MailMethod mm = (MailMethod) pm;
+        assertNotNull(mm);
+        assertEquals("4080 El Cerrito Road", mm.GetAddress());
+    }
 }
\ No newline at end of file

コミット: 79045d9

メッセージ

給与体系を変更するトランザクション
・TestChangeCommissionedTransaction

変更されたファイル

  • A src/main/java/ChangeCommissionedTransaction.java
  • M src/test/java/TestPayroll.java

変更内容

commit 79045d9d067373819cedcea9cb33624e1f5bb4c3
Author: k2works <kakimomokuri@gmail.com>
Date:   Fri Apr 7 14:48:25 2017 +0900

    給与体系を変更するトランザクション

    ・TestChangeCommissionedTransaction

diff --git a/src/main/java/ChangeCommissionedTransaction.java b/src/main/java/ChangeCommissionedTransaction.java
new file mode 100644
index 0000000..d6861d1
--- /dev/null
+++ b/src/main/java/ChangeCommissionedTransaction.java
@@ -0,0 +1,21 @@
+/**
+ * Created by k2works on 2017/04/07.
+ */
+public class ChangeCommissionedTransaction extends ChangeClassificationTransaction {
+    private double itsSalary;
+    private double itsHourlyRate;
+
+    public ChangeCommissionedTransaction(int empId, double salary, double hourlyRate) {
+        super(empId);
+        itsSalary = salary;
+        itsHourlyRate = hourlyRate;
+    }
+
+    PaymentSchedule GetSchedule() {
+        return new BiweeklySchedule();
+    }
+
+    PaymentClassification GetClassification() {
+        return new CommissionedClassification(itsSalary, itsHourlyRate);
+    }
+}
diff --git a/src/test/java/TestPayroll.java b/src/test/java/TestPayroll.java
index 99f5ca0..d71561c 100644
--- a/src/test/java/TestPayroll.java
+++ b/src/test/java/TestPayroll.java
@@ -192,4 +192,24 @@ public class TestPayroll extends TestCase{
         MonthlySchedule ms = (MonthlySchedule) ps;
         assertNotNull(ms);
     }
+
+    public void testChangeCommissionedTransaction() {
+        System.err.println("TestChangeCommissionedTransaction");
+        int empId = 2;
+        AddHourlyEmployee t = new AddHourlyEmployee(empId, "Bill","Home",15.25);
+        t.Execute();
+        ChangeCommissionedTransaction cct = new ChangeCommissionedTransaction(empId, 25000, 4.5);
+        cct.Execute();
+        Employee e = PayrollDatabase.GetEmployee(empId);
+        assertNotNull(e);
+        PaymentClassification pc = e.GetClassification();
+        assertNotNull(pc);
+        CommissionedClassification cc = (CommissionedClassification) pc;
+        assertNotNull(cc);
+        assertEquals(25000.0, cc.GetSalary());
+        assertEquals(4.5, cc.GetRate());
+        PaymentSchedule ps = e.GetSchedule();
+        BiweeklySchedule bs = (BiweeklySchedule) ps;
+        assertNotNull(bs);
+    }
 }
\ No newline at end of file

コミット: f0b73c9

メッセージ

給与体系を変更するトランザクション
・TestChangeSalariedTransaction

変更されたファイル

  • A src/main/java/ChangeSalariedTransaction.java
  • M src/test/java/TestPayroll.java

変更内容

commit f0b73c9fa6fb1d3cd75e0fe2c4d9b95baeb3d2ac
Author: k2works <kakimomokuri@gmail.com>
Date:   Fri Apr 7 14:29:33 2017 +0900

    給与体系を変更するトランザクション

    ・TestChangeSalariedTransaction

diff --git a/src/main/java/ChangeSalariedTransaction.java b/src/main/java/ChangeSalariedTransaction.java
new file mode 100644
index 0000000..b773c18
--- /dev/null
+++ b/src/main/java/ChangeSalariedTransaction.java
@@ -0,0 +1,19 @@
+/**
+ * Created by k2works on 2017/04/07.
+ */
+public class ChangeSalariedTransaction extends ChangeClassificationTransaction {
+    private double itsSalary;
+
+    public ChangeSalariedTransaction(int empId, double salary) {
+        super(empId);
+        itsSalary = salary;
+    }
+
+    PaymentSchedule GetSchedule() {
+        return new MonthlySchedule();
+    }
+
+    PaymentClassification GetClassification() {
+        return new SalariedClassification(itsSalary);
+    }
+}
diff --git a/src/test/java/TestPayroll.java b/src/test/java/TestPayroll.java
index 6533349..99f5ca0 100644
--- a/src/test/java/TestPayroll.java
+++ b/src/test/java/TestPayroll.java
@@ -173,4 +173,23 @@ public class TestPayroll extends TestCase{
         WeeklySchedule ws = (WeeklySchedule) ps;
         assertNotNull(ws);
     }
+
+    public void testChangeSalariedTransaction() {
+        System.err.println("TestChangeSalariedTransaction");
+        int empId = 3;
+        AddCommissionedEmployee t = new AddCommissionedEmployee(empId, "Lance", "Home", 2500, 3.2);
+        t.Execute();
+        ChangeSalariedTransaction cst = new ChangeSalariedTransaction(empId, 25000);
+        cst.Execute();
+        Employee e = PayrollDatabase.GetEmployee(empId);
+        assertNotNull(e);
+        PaymentClassification pc = e.GetClassification();
+        assertNotNull(pc);
+        SalariedClassification sc = (SalariedClassification) pc;
+        assertNotNull(sc);
+        assertEquals(25000.0, sc.GetSalary());
+        PaymentSchedule ps = e.GetSchedule();
+        MonthlySchedule ms = (MonthlySchedule) ps;
+        assertNotNull(ms);
+    }
 }
\ No newline at end of file

コミット: 4358a21

メッセージ

給与体系を変更するトランザクション
・TestChangeHourlyTransaction

変更されたファイル

  • A src/main/java/ChangeClassificationTransaction.java
  • A src/main/java/ChangeHourlyTransaction.java
  • M src/test/java/TestPayroll.java

変更内容

commit 4358a21112a6c3c5db05cb5a9e42c0dc8db345f2
Author: k2works <kakimomokuri@gmail.com>
Date:   Fri Apr 7 14:10:34 2017 +0900

    給与体系を変更するトランザクション

    ・TestChangeHourlyTransaction

diff --git a/src/main/java/ChangeClassificationTransaction.java b/src/main/java/ChangeClassificationTransaction.java
new file mode 100644
index 0000000..8167f53
--- /dev/null
+++ b/src/main/java/ChangeClassificationTransaction.java
@@ -0,0 +1,18 @@
+/**
+ * Created by k2works on 2017/04/07.
+ */
+public abstract class ChangeClassificationTransaction extends ChangeEmployeeTransaction {
+
+    public ChangeClassificationTransaction(int empId) {
+        super(empId);
+    }
+
+    public void Change(Employee e) {
+        e.SetSchedule(GetSchedule());
+        e.SetClassification(GetClassification());
+    }
+
+    abstract PaymentSchedule GetSchedule();
+
+    abstract PaymentClassification GetClassification();
+}
diff --git a/src/main/java/ChangeHourlyTransaction.java b/src/main/java/ChangeHourlyTransaction.java
new file mode 100644
index 0000000..c3b5fb3
--- /dev/null
+++ b/src/main/java/ChangeHourlyTransaction.java
@@ -0,0 +1,19 @@
+/**
+ * Created by k2works on 2017/04/07.
+ */
+public class ChangeHourlyTransaction extends ChangeClassificationTransaction {
+    private double itsRate;
+
+    public ChangeHourlyTransaction(int empId, double rate) {
+        super(empId);
+        itsRate = rate;
+    }
+
+    PaymentSchedule GetSchedule() {
+        return new WeeklySchedule();
+    }
+
+    PaymentClassification GetClassification() {
+        return new HourlyClassification(itsRate);
+    }
+}
diff --git a/src/test/java/TestPayroll.java b/src/test/java/TestPayroll.java
index b6f371e..6533349 100644
--- a/src/test/java/TestPayroll.java
+++ b/src/test/java/TestPayroll.java
@@ -154,4 +154,23 @@ public class TestPayroll extends TestCase{
         assertNotNull(e);
         assertEquals("Second Home", e.GetAddress());
     }
+
+    public void testChangeHourlyTransaction() {
+        System.err.println("TestChangeHourlyTransaction");
+        int empId = 3;
+        AddCommissionedEmployee t = new AddCommissionedEmployee(empId, "Lance", "Home",2500,3.2);
+        t.Execute();
+        ChangeHourlyTransaction cht = new ChangeHourlyTransaction(empId, 27.52);
+        cht.Execute();
+        Employee e = PayrollDatabase.GetEmployee(empId);
+        assertNotNull(e);
+        PaymentClassification pc = e.GetClassification();
+        assertNotNull(pc);
+        HourlyClassification hc = (HourlyClassification) pc;
+        assertNotNull(hc);
+        assertEquals(27.52, hc.GetRate());
+        PaymentSchedule ps = e.GetSchedule();
+        WeeklySchedule ws = (WeeklySchedule) ps;
+        assertNotNull(ws);
+    }
 }
\ No newline at end of file

コミット: 3a95ed3

メッセージ

従業員の属性を変更するトランザクション
・TestChangeAddressTransaction

変更されたファイル

  • A src/main/java/ChangeAddressTransaction.java
  • M src/test/java/TestPayroll.java

変更内容

commit 3a95ed32f1a839d394aa642f814c333c3c889c1d
Author: k2works <kakimomokuri@gmail.com>
Date:   Fri Apr 7 13:56:20 2017 +0900

    従業員の属性を変更するトランザクション

    ・TestChangeAddressTransaction

diff --git a/src/main/java/ChangeAddressTransaction.java b/src/main/java/ChangeAddressTransaction.java
new file mode 100644
index 0000000..8ecf16c
--- /dev/null
+++ b/src/main/java/ChangeAddressTransaction.java
@@ -0,0 +1,15 @@
+/**
+ * Created by k2works on 2017/04/07.
+ */
+public class ChangeAddressTransaction extends ChangeEmployeeTransaction {
+    private String itsAddress;
+
+    public ChangeAddressTransaction(int empId, String address) {
+        super(empId);
+        itsAddress = address;
+    }
+
+    void Change(Employee e) {
+        e.SetAddress(itsAddress);
+    }
+}
diff --git a/src/test/java/TestPayroll.java b/src/test/java/TestPayroll.java
index 23e2c72..b6f371e 100644
--- a/src/test/java/TestPayroll.java
+++ b/src/test/java/TestPayroll.java
@@ -142,4 +142,16 @@ public class TestPayroll extends TestCase{
         assertNotNull(e);
         assertEquals("Bob", e.GetName());
     }
+
+    public void testChangeAddressTransaction() {
+        System.err.println("TestChangeAddressTransaction");
+        int empId = 2;
+        AddHourlyEmployee t = new AddHourlyEmployee(empId, "Bill", "Home", 15.25);
+        t.Execute();
+        ChangeAddressTransaction cat = new ChangeAddressTransaction(empId, "Second Home");
+        cat.Execute();
+        Employee e = PayrollDatabase.GetEmployee(empId);
+        assertNotNull(e);
+        assertEquals("Second Home", e.GetAddress());
+    }
 }
\ No newline at end of file

コミット: e4797c2

メッセージ

従業員の属性を変更するトランザクション
・TestChangeNameTransaction

変更されたファイル

  • A src/main/java/ChangeEmployeeTransaction.java
  • A src/main/java/ChangeNameTransaction.java
  • M src/test/java/TestPayroll.java

変更内容

commit e4797c266bf17a3cb0cb061c166c3cef1c3cd2bd
Author: k2works <kakimomokuri@gmail.com>
Date:   Fri Apr 7 13:44:19 2017 +0900

    従業員の属性を変更するトランザクション

    ・TestChangeNameTransaction

diff --git a/src/main/java/ChangeEmployeeTransaction.java b/src/main/java/ChangeEmployeeTransaction.java
new file mode 100644
index 0000000..37ece54
--- /dev/null
+++ b/src/main/java/ChangeEmployeeTransaction.java
@@ -0,0 +1,20 @@
+/**
+ * Created by k2works on 2017/04/07.
+ */
+public abstract class ChangeEmployeeTransaction implements Transaction {
+    private int itsEmpId;
+
+    public ChangeEmployeeTransaction(int empId) {
+        itsEmpId = empId;
+    }
+
+    public void Execute() {
+        Employee e = PayrollDatabase.GetEmployee(itsEmpId);
+        if (e != null) {
+            Change(e);
+        }
+    }
+
+    abstract void Change(Employee e);
+}
+
diff --git a/src/main/java/ChangeNameTransaction.java b/src/main/java/ChangeNameTransaction.java
new file mode 100644
index 0000000..dc207d3
--- /dev/null
+++ b/src/main/java/ChangeNameTransaction.java
@@ -0,0 +1,15 @@
+/**
+ * Created by k2works on 2017/04/07.
+ */
+public class ChangeNameTransaction extends ChangeEmployeeTransaction {
+    private String itsName;
+
+    public ChangeNameTransaction(int empId, String name) {
+        super(empId);
+        itsName = name;
+    }
+
+    public void Change(Employee e) {
+        e.SetName(itsName);
+    }
+}
diff --git a/src/test/java/TestPayroll.java b/src/test/java/TestPayroll.java
index b71c30b..23e2c72 100644
--- a/src/test/java/TestPayroll.java
+++ b/src/test/java/TestPayroll.java
@@ -130,4 +130,16 @@ public class TestPayroll extends TestCase{
         double sc = af.GetServiceCharge(20011031);
         assertEquals(12.95, sc, .001);
     }
+
+    public void testChangeNameTransaction() {
+        System.err.println("TestChangeNameTransaction");
+        int empId = 2;
+        AddHourlyEmployee t = new AddHourlyEmployee(empId, "Bill", "Home", 15.25);
+        t.Execute();
+        ChangeNameTransaction cnt = new ChangeNameTransaction(empId, "Bob");
+        cnt.Execute();
+        Employee e = PayrollDatabase.GetEmployee(empId);
+        assertNotNull(e);
+        assertEquals("Bob", e.GetName());
+    }
 }
\ No newline at end of file