public void PeriodCrossesMidnight() { var startTime = DateTime.Parse("12:00PM"); var endTime = DateTime.Parse("4:00AM"); decimal rate = 10.00M; var ratePeriod = new RatePeriod(startTime, endTime, rate); var jobStartTime = DateTime.Parse("1:00PM"); var jobEndTime = DateTime.Parse("1:00AM"); Assert.AreEqual(12, ratePeriod.HrsInRatePeriod(jobStartTime, jobEndTime)); Assert.AreEqual(120.00M, ratePeriod.CalculatePayment(jobStartTime, jobEndTime)); }
public void EndTimeAfterPeriodEnd() { var startTime = DateTime.Parse("12:00PM"); var endTime = DateTime.Parse("4:00PM"); decimal rate = 10.00M; var ratePeriod = new RatePeriod(startTime, endTime, rate); var jobStartTime = DateTime.Parse("1:00PM"); var jobEndTime = DateTime.Parse("8:00PM"); Assert.AreEqual(3, ratePeriod.HrsInRatePeriod(jobStartTime, jobEndTime)); Assert.AreEqual(30.00M, ratePeriod.CalculatePayment(jobStartTime, jobEndTime)); }
public void JobsOnHalfHoursWork() { var periodStartTime = DateTime.Parse("10:00AM"); var periodEndTime = DateTime.Parse("4:00PM"); decimal periodRate = 10.00M; var ratePeriod = new RatePeriod(periodStartTime, periodEndTime, periodRate); var jobStartTime = DateTime.Parse("12:30 PM"); var jobEndTime = DateTime.Parse("3:30 PM"); Assert.AreEqual(3, ratePeriod.HrsInRatePeriod(jobStartTime, jobEndTime)); Assert.AreEqual(30.00M, ratePeriod.CalculatePayment(jobStartTime, jobEndTime)); }
public void EndTimeBeforePeriodStart() { var startTime = DateTime.Parse("12:00PM"); var endTime = DateTime.Parse("4:00PM"); decimal rate = 10.00M; var ratePeriod = new RatePeriod(startTime, endTime, rate); var jobStartTime = DateTime.Parse("5:00AM"); var jobEndTime = DateTime.Parse("10:00AM"); Assert.AreEqual(0, ratePeriod.HrsInRatePeriod(jobStartTime, jobEndTime)); Assert.AreEqual(0M, ratePeriod.CalculatePayment(jobStartTime, jobEndTime)); }
public void EntireJobAfterMidnight() { var startTime = DateTime.Parse("1:00AM"); var endTime = DateTime.Parse("4:00AM"); decimal rate = 10.00M; var ratePeriod = new RatePeriod(startTime, endTime, rate); var jobStartTime = DateTime.Parse("12:30AM"); var jobEndTime = DateTime.Parse("3:00AM"); Assert.AreEqual(2.0M, ratePeriod.HrsInRatePeriod(jobStartTime, jobEndTime)); Assert.AreEqual(20.00M, ratePeriod.CalculatePayment(jobStartTime, jobEndTime)); }