public void GetProperDateTime_ReturnsLastValidValueBefore_ForHolidayValueIfTwoPreviousDaysAreAlsoHoliday() { //Arrange DaysProcessor processor = new DaysProcessor(); processor.AddHoliday(new DateTime(2016, 1, 1, 0, 0, 0)); processor.AddHoliday(new DateTime(2015, 12, 31, 0, 0, 0)); processor.AddHoliday(new DateTime(2015, 12, 30, 0, 0, 0)); DateTime baseDate = new DateTime(2016, 1, 1, 0, 0, 0); //Act DateTime result = processor.GetProperDateTime(baseDate, 1); //Assert DateTime expectedDateTime = new DateTime(2015, 12, 29, 0, 0, 0); Assert.AreEqual(expectedDateTime, result); }
public void AddTimeUnits_ReturnsProperDate_NegativeUnitsWithHolidayAndWeekend() { //Arrange DaysProcessor processor = getProcessorForAfterManyHolidaysInDifferentYears(); processor.AddHoliday(new DateTime(2017, 5, 5)); DateTime baseDate = new DateTime(2017, 5, 9); //Act DateTime result = processor.AddTimeUnits(baseDate, 1, -2); //Assert DateTime expectedDate = new DateTime(2017, 5, 4); Assert.AreEqual(expectedDate, result); }
public void AddTimeUnits_ReturnsProperDate_WhenSubtractOneDayAndBaseDayIsTuesdayAfterHolidayMonday() { //Arrange DaysProcessor processor = getProcessorForAfterManyHolidaysInDifferentYears(); processor.AddHoliday(new DateTime(2017, 5, 1)); DateTime baseDate = new DateTime(2017, 5, 2); //Act DateTime result = processor.AddTimeUnits(baseDate, 1, -1); //Assert DateTime expectedDate = new DateTime(2017, 4, 28); Assert.AreEqual(expectedDate, result); }
public void GetProperDateTime_ReturnsLastValidValueBefore_ForHolidayValueIfPreviousDayIsWeekend() { //Arrange DaysProcessor processor = new DaysProcessor(); processor.AddHoliday(new DateTime(2017, 5, 1, 0, 0, 0)); DateTime baseDate = new DateTime(2017, 5, 1, 0, 0, 0); //Act DateTime result = processor.GetProperDateTime(baseDate, 1); //Assert DateTime expectedDateTime = new DateTime(2017, 4, 28, 0, 0, 0); Assert.AreEqual(expectedDateTime, result); }
public void AddTimeUnits_ReturnsProperDate_NegativeUnitsWithHoliday() { //Arrange DaysProcessor processor = new DaysProcessor(); processor.AddHoliday(new DateTime(2014, 1, 1)); DateTime baseDate = new DateTime(2014, 1, 3); //Act DateTime result = processor.AddTimeUnits(baseDate, 1, -2); //Assert DateTime expectedDate = new DateTime(2013, 12, 31); Assert.AreEqual(expectedDate, result); }
public void AddTimeUnits_ReturnsProperDate_WhenAddOneDayAndBaseDayIsThursdayBeforeHolidayFriday() { //Arrange DaysProcessor processor = getProcessorForAfterManyHolidaysInDifferentYears(); processor.AddHoliday(new DateTime(2016, 1, 1)); DateTime baseDate = new DateTime(2015, 12, 31); //Act DateTime result = processor.AddTimeUnits(baseDate, 1, 1); //Assert DateTime expectedDate = new DateTime(2016, 1, 4); Assert.AreEqual(expectedDate, result); }
public void GetNext_ReturnsProperValue_ForLastWeekQuotationIfMondayIsHoliday() { //Arrange DaysProcessor processor = new DaysProcessor(); processor.AddHoliday(new DateTime(2017, 5, 8, 0, 0, 0)); DateTime baseDate = new DateTime(2017, 5, 5, 0, 0, 0); //Act DateTime actualDateTime = processor.GetNext(baseDate, 1); //Assert DateTime expectedDateTime = new DateTime(2017, 5, 9, 0, 0, 0); Assert.AreEqual(expectedDateTime, actualDateTime); }
public void GetProperDateTime_ReturnsLastValidValueBefore_ForWeekendIfFridayWasHoliday() { //Arrange DaysProcessor processor = new DaysProcessor(); processor.AddHoliday(new DateTime(2017, 4, 7, 0, 0, 0)); DateTime baseDate = new DateTime(2017, 4, 8, 0, 0, 0); //Act DateTime result = processor.GetProperDateTime(baseDate, 1); //Assert DateTime expectedDateTime = new DateTime(2017, 4, 6, 0, 0, 0); Assert.AreEqual(expectedDateTime, result); }
public void CountTimeUnits_ReturnsProperValue_ForDateBeforeHolidayInWeekend() { //Arrange DaysProcessor processor = new DaysProcessor(); processor.AddHoliday(new DateTime(2017, 1, 1)); DateTime baseDate = new DateTime(2017, 1, 4); DateTime comparedDate = new DateTime(2016, 12, 29); //Act int unitsBetween = processor.CountTimeUnits(baseDate, comparedDate, 1); //Assert int expected = -4; Assert.AreEqual(expected, unitsBetween); }
public void CountTimeUnits_ReturnsProperValue_ForDateEarlierInTheSameWeekBeforeHoliday() { //Arrange DaysProcessor processor = new DaysProcessor(); processor.AddHoliday(new DateTime(2015, 1, 1)); DateTime baseDate = new DateTime(2015, 1, 2); DateTime comparedDate = new DateTime(2014, 12, 30); //Act int unitsBetween = processor.CountTimeUnits(baseDate, comparedDate, 1); //Assert int expected = -2; Assert.AreEqual(expected, unitsBetween); }
public void CountTimeUnits_ReturnsProperValue_ForDateAfterHolidayAndAfterWeekend() { //Arrange DaysProcessor processor = new DaysProcessor(); processor.AddHoliday(new DateTime(2015, 1, 1)); DateTime baseDate = new DateTime(2014, 12, 30); DateTime comparedDate = new DateTime(2015, 1, 6); //Act int unitsBetween = processor.CountTimeUnits(baseDate, comparedDate, 1); //Assert int expected = 4; Assert.AreEqual(expected, unitsBetween); }
private DaysProcessor getProcessorForAfterManyHolidaysInDifferentYears() { DaysProcessor processor = new DaysProcessor(); processor.AddHoliday(new DateTime(2010, 1, 1)); processor.AddHoliday(new DateTime(2010, 12, 25)); processor.AddHoliday(new DateTime(2011, 1, 1)); processor.AddHoliday(new DateTime(2011, 12, 25)); processor.AddHoliday(new DateTime(2012, 1, 1)); processor.AddHoliday(new DateTime(2012, 12, 25)); processor.AddHoliday(new DateTime(2013, 1, 1)); processor.AddHoliday(new DateTime(2013, 12, 25)); processor.AddHoliday(new DateTime(2014, 1, 1)); processor.AddHoliday(new DateTime(2014, 12, 25)); processor.AddHoliday(new DateTime(2015, 1, 1)); processor.AddHoliday(new DateTime(2015, 12, 25)); processor.AddHoliday(new DateTime(2016, 1, 1)); processor.AddHoliday(new DateTime(2016, 12, 25)); processor.AddHoliday(new DateTime(2017, 1, 1)); processor.AddHoliday(new DateTime(2017, 12, 25)); return(processor); }