public void Test_SetNow_ShouldChangeDateTimeBeingUsedForCalcs()
 {
     //---------------Set up test pack-------------------
     var dateTimeCurrent = new DateTime(2007,5, 11);
     var optionsConverter = new DateRangeOptionsConverter();
     //--------------Assert PreConditions----------------
     //---------------Execute Test ----------------------
     optionsConverter.SetNow(dateTimeCurrent);
     DateRange dateRange = optionsConverter.ConvertDateRange(DateRangeOptions.Current24Hours);
     //---------------Test Result -----------------------
     Assert.AreEqual(dateTimeCurrent, dateRange.EndDate);
 }
        public void Test_Construct_ShouldSetAllOffSetsToZero()
        {
            //---------------Set up test pack-------------------
            
            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            var optionsConverter = new DateRangeOptionsConverter();
            //---------------Test Result -----------------------
            Assert.AreEqual(new TimeSpan(0), optionsConverter.MidnightOffset);
            Assert.AreEqual(0, optionsConverter.WeekStartOffset);
            Assert.AreEqual(0, optionsConverter.MonthStartOffset);
            Assert.AreEqual(0, optionsConverter.YearStartOffset);
        }
        public void Test_SetOffSets_ShouldSetOffsets()
        {
            //---------------Set up test pack-------------------
            var optionsConverter = new DateRangeOptionsConverter();
            var expectedMidnightOffSet = new TimeSpan(0, TestUtil.GetRandomInt(0, 7), TestUtil.GetRandomInt(0, 7), 0);
            var expectedWeekStartOffset = TestUtil.GetRandomInt(0, 7);
            var expectedMonthStartOffset = TestUtil.GetRandomInt(0, 20);
            var expectedYearStartOffset = TestUtil.GetRandomInt(0, 30);    
            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            optionsConverter.MidnightOffset = expectedMidnightOffSet;
            optionsConverter.WeekStartOffset = expectedWeekStartOffset;
            optionsConverter.MonthStartOffset = expectedMonthStartOffset;
            optionsConverter.YearStartOffset = expectedYearStartOffset;
            //---------------Test Result -----------------------
            Assert.AreEqual(expectedMidnightOffSet, optionsConverter.MidnightOffset);
            Assert.AreEqual(expectedWeekStartOffset, optionsConverter.WeekStartOffset);
            Assert.AreEqual(expectedMonthStartOffset, optionsConverter.MonthStartOffset);
            Assert.AreEqual(expectedYearStartOffset, optionsConverter.YearStartOffset);
        }
 public void Test_ThisHour_ShouldSetStartDateToBeginHour_AndEndDateToEndOfHour()
 {
     //---------------Set up test pack-------------------
     var dateTimeCurrent = GetDateTimeCurrent(20);
     var dateTimeNowFake = new DateTimeNowFixed(dateTimeCurrent);
     var optionsConverter = new DateRangeOptionsConverter(dateTimeNowFake);
     //---------------Execute Test ----------------------
     DateRange dateRange = optionsConverter.ConvertDateRange(DateRangeOptions.ThisHour);
     //---------------Test Result -----------------------
     var expectedStartDate = GetDateTimeCurrent(20,0,0,0);
     var expectedEndDate = GetDateTimeCurrent(20, 59, 59, 999);
     Assert.AreEqual(expectedStartDate, dateRange.StartDate, "Start Date should be exactly 24 hours ago.");
     Assert.AreEqual(expectedEndDate, dateRange.EndDate, "End Date should be now");
 } 
 public void Test_DateRangeWithoutOffSets(DateRangeTestCase dateRangeTestCase)
 {
     //---------------Set up test pack-------------------
     var dateTimeNowFake = new DateTimeNowFixed(dateRangeTestCase.CurrectDate);
     var optionsConverter = new DateRangeOptionsConverter(dateTimeNowFake);
     //--------------Assert PreConditions----------------
     //---------------Execute Test ----------------------
     DateRange dateRange = optionsConverter.ConvertDateRange(dateRangeTestCase.DateRangeOptions);
     //---------------Test Result -----------------------
     dateRangeTestCase.ShouldHaveStartAndEndDate(dateRange);
 }
 public void Test_DateRangeWithOffSets(DateRangeTestCaseWithOffSet dateRangeTestCase)
 {
     //---------------Set up test pack-------------------
     var dateTimeNowFake = new DateTimeNowFixed(dateRangeTestCase.CurrectDate);
     var optionsConverter = new DateRangeOptionsConverter(dateTimeNowFake);
     optionsConverter.MidnightOffset = dateRangeTestCase.MidNightOffset;
     optionsConverter.MonthStartOffset = dateRangeTestCase.MonthOffSet;
     optionsConverter.WeekStartOffset = dateRangeTestCase.WeekOffSet;
     optionsConverter.YearStartOffset = dateRangeTestCase.YearOffSet;
     //--------------Assert PreConditions----------------
     //---------------Execute Test ----------------------
     DateRange dateRange = optionsConverter.ConvertDateRange(dateRangeTestCase.DateRangeOptions);
     //---------------Test Result -----------------------
     dateRangeTestCase.ShouldHaveStartAndEndDate(dateRange);
 }
 public void TestPreviousWeek_ReturnsStartAndEndForPreviousWeek()
 {
     //---------------Set up test pack-------------------
     var dateTimeCurrent = DateTime.Now;
     var dateTimeNowFake = new DateTimeNowFixed(dateTimeCurrent);
     var optionsConverter = new DateRangeOptionsConverter(dateTimeNowFake);
     var expectedStartDate = DateTimeUtilities.WeekStart(dateTimeCurrent.AddDays(-7));
     var expectedEndDate = DateTimeUtilities.WeekEnd(dateTimeCurrent.AddDays(-7));
     //--------------Assert PreConditions----------------
     //---------------Execute Test ----------------------
     DateRange dateRange = optionsConverter.ConvertDateRange(DateRangeOptions.PreviousWeek);
     //---------------Test Result -----------------------
     Assert.AreEqual(expectedStartDate, dateRange.StartDate);
     Assert.AreEqual(expectedEndDate, dateRange.EndDate);
 }
 public void TestWeekToDate()
 {
     //---------------Set up test pack-------------------
     var dateTimeCurrent = DateTime.Now;
     var dateTimeNowFake = new DateTimeNowFixed(dateTimeCurrent);
     var optionsConverter = new DateRangeOptionsConverter(dateTimeNowFake);
     var expectedStartDate = DateTimeUtilities.WeekStart(dateTimeCurrent);
     var expectedEndDate = dateTimeCurrent;
     //--------------Assert PreConditions----------------
     //---------------Execute Test ----------------------
     DateRange dateRange = optionsConverter.ConvertDateRange(DateRangeOptions.WeekToDate);
     //---------------Test Result -----------------------
     Assert.AreEqual(expectedStartDate, dateRange.StartDate);
     Assert.AreEqual(expectedEndDate, dateRange.EndDate);
 }
 public void Test_Yesterday()
 {
     //---------------Set up test pack-------------------
     var dateTimeCurrent = DateTime.Now;
     var expectedStartTime = DateTimeUtilities.DayStart(dateTimeCurrent).AddDays(-1);
     var expectedEndTime = DateTimeUtilities.DayEnd(dateTimeCurrent).AddDays(-1);
     var optionsConverter = new DateRangeOptionsConverter(new DateTimeNowFixed(dateTimeCurrent));
     //--------------Assert PreConditions----------------
     Assert.AreEqual(expectedStartTime.AddDays(1).AddMilliseconds(-1), expectedEndTime);
     var expectedTimeSpan = expectedEndTime - expectedStartTime;
     Assert.AreEqual(24, Math.Round(expectedTimeSpan.TotalHours,3));
     //---------------Execute Test ----------------------
     DateRange dateRange = optionsConverter.ConvertDateRange(DateRangeOptions.Yesterday);
     //---------------Test Result -----------------------
     var actualTimeSpan = dateRange.EndDate - dateRange.StartDate;
     Assert.AreEqual(24, Math.Round(actualTimeSpan.TotalHours));
     Assert.AreEqual(expectedStartTime, dateRange.StartDate);
     Assert.AreEqual(expectedEndTime, dateRange.EndDate);
 }
 public void TestToday()
 {
     //---------------Set up test pack-------------------
     var dateTimeCurrent = DateTime.Now;
     var expectedStartTime = DateTimeUtilities.DayStart(dateTimeCurrent);
     var expectedEndTime = DateTimeUtilities.DayEnd(dateTimeCurrent);
     var optionsConverter = new DateRangeOptionsConverter(new DateTimeNowFixed(dateTimeCurrent));
     //--------------Assert PreConditions----------------
     //---------------Execute Test ----------------------
     DateRange dateRange = optionsConverter.ConvertDateRange(DateRangeOptions.Today);
     //---------------Test Result -----------------------
     Assert.AreEqual(expectedStartTime, dateRange.StartDate);
     Assert.AreEqual(expectedEndTime, dateRange.EndDate);
 }
 public void TestCurrent60Minutes()
 {
     //---------------Set up test pack-------------------
     const int hour = 20;
     const int minutes = 38;
     const int seconds = 12;
     const int millisecond = 10;
     DateTime dateTimeCurrent = GetDateTimeCurrent(hour, minutes, seconds, millisecond);
     var dateTimeNowFake = new DateTimeNowFixed(dateTimeCurrent);
     var optionsConverter = new DateRangeOptionsConverter(dateTimeNowFake);
     //--------------Assert PreConditions----------------
     //---------------Execute Test ----------------------
     DateRange dateRange = optionsConverter.ConvertDateRange(DateRangeOptions.Current60Minutes);
     //---------------Test Result -----------------------
     var expectedStartDate = GetDateTimeCurrent(hour - 1, minutes, seconds, millisecond);
     var expectedEndDate = dateTimeCurrent;
     Assert.AreEqual(expectedStartDate, dateRange.StartDate);
     Assert.AreEqual(expectedEndDate, dateRange.EndDate);
 }
  public void TestPreviousHour_ShouldReturnStartDateEQStartPrevHr_EndDate_EndPrevHr()
  {
      //---------------Set up test pack-------------------
      const int hour = 20;
      DateTime dateTimeCurrent = GetDateTimeCurrent(hour, 38, 12, 999);
      var dateTimeNowFake = new DateTimeNowFixed(dateTimeCurrent);
      var optionsConverter = new DateRangeOptionsConverter(dateTimeNowFake);
     //--------------Assert PreConditions----------------
     //---------------Execute Test ----------------------
     DateRange dateRange = optionsConverter.ConvertDateRange(DateRangeOptions.PreviousHour);
     //---------------Test Result -----------------------
     var expectedStartDate = GetDateTimeCurrent(hour -1, 0, 0);
     var expectedEndDate = GetDateTimeCurrent(hour - 1, 59, 59, 999);
     Assert.AreEqual(expectedStartDate, dateRange.StartDate);
     Assert.AreEqual(expectedEndDate, dateRange.EndDate);
 }
 public void Test_Current24Hours_ShouldSetStartDateToNowLess24_AndEndDateToNow()
 {
     //---------------Set up test pack-------------------
     var dateTimeCurrent = DateTime.Now;
     var dateTimeNowFake = new DateTimeNowFixed(dateTimeCurrent);
     var optionsConverter = new DateRangeOptionsConverter(dateTimeNowFake);
     //--------------Assert PreConditions----------------
     //---------------Execute Test ----------------------
     DateRange dateRange = optionsConverter.ConvertDateRange(DateRangeOptions.Current24Hours);
     //---------------Test Result -----------------------
     var expectedStartDate = dateTimeCurrent.AddHours(-24);
     var expectedEndDate = dateTimeCurrent;
     Assert.AreEqual(expectedStartDate, dateRange.StartDate);
     Assert.AreEqual(expectedEndDate, dateRange.EndDate);
 }