作業履歴 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