public void GetMonthShouldReturnCorrectOffset()
        {
            var target = new GregorianFiscalCalendar( 7 );
            var mappings = new List<Tuple<int, int>>()
            {
                new Tuple<int,int>( 7, 1 ),
                new Tuple<int,int>( 8, 2 ),
                new Tuple<int,int>( 9, 3 ),
                new Tuple<int,int>( 10, 4 ),
                new Tuple<int,int>( 11, 5 ),
                new Tuple<int,int>( 12, 6 ),
                new Tuple<int,int>( 1, 7 ),
                new Tuple<int,int>( 2, 8 ),
                new Tuple<int,int>( 3, 9 ),
                new Tuple<int,int>( 4, 10 ),
                new Tuple<int,int>( 5, 11 ),
                new Tuple<int,int>( 6, 12 ),
            };

            for ( var year = 2009; year <= 2012; year++ )
            {
                foreach ( var mapping in mappings )
                    Assert.Equal( mapping.Item2, target.GetMonth( new DateTime( year, mapping.Item1, 1 ) ) );
            }
        }
예제 #2
0
 public void StartOfSemesterWithCalendarShouldReturnExpectedResult()
 {
     var date = new DateTime( 2013, 3, 1 );
     var calendar = new GregorianFiscalCalendar( 7 );
     var expected = new DateTime( 2013, 1, 1 );
     var actual = date.StartOfSemester( calendar );
     Assert.Equal( expected.Date, actual.Date );
 }
예제 #3
0
 public void LastDateOfWeekInMonthShouldReturnExpectedResult()
 {
     var date = new DateTime( 2013, 3, 1 );
     var calendar = new GregorianFiscalCalendar( 7 );
     var expected = new DateTime( 2013, 3, 29 );
     var actual = calendar.LastDayOfWeekInMonth( date, DayOfWeek.Friday );
     Assert.Equal( expected.Date, actual.Date );
 }
예제 #4
0
 public void StartOfWeekWithCustomFirstDayOfWeekShouldReturnExpectedResult()
 {
     var date = new DateTime( 2013, 3, 1 );
     var calendar = new GregorianFiscalCalendar( 7 );
     var expected = new DateTime( 2013, 2, 25 );
     var actual = calendar.StartOfWeek( date, DayOfWeek.Monday );
     Assert.Equal( expected.Date, actual.Date );
 }
예제 #5
0
 public void StartOfMonthShouldReturnExpectedResult()
 {
     var date = new DateTime( 2013, 3, 26 );
     var calendar = new GregorianFiscalCalendar( 7 );
     var expected = new DateTime( 2013, 3, 1 );
     var actual = calendar.StartOfMonth( date );
     Assert.Equal( expected.Date, actual.Date );
 }
예제 #6
0
 public void StartOfYearWithCalendarShouldReturnExpectedResult()
 {
     var date = new DateTime( 2013, 3, 1 );
     var calendar = new GregorianFiscalCalendar( 7 );
     var expected = new DateTime( 2012, 7, 1 ); // because fiscal calendar starts in July
     var actual = date.StartOfYear( calendar );
     Assert.Equal( expected.Date, actual.Date );
 }
        public void GetDaysInYearShouldReturnCorrectCount()
        {
            var target = new GregorianFiscalCalendar( 7 );
            var calendar = new GregorianCalendar();

            for ( var year = 1998; year <= 2030; year++ )
                Assert.Equal( calendar.GetDaysInYear( year ), target.GetDaysInYear( year ) );
        }
예제 #8
0
 public void DayOfWeekInMonthWithCalendarShouldReturnExpectedResult()
 {
     var date = new DateTime( 2013, 3, 1 );
     var calendar = new GregorianFiscalCalendar( 7 );
     var expected = new DateTime( 2013, 3, 11 );
     var actual = date.DayOfWeekInMonth( 2, DayOfWeek.Monday, calendar );
     Assert.Equal( expected.Date, actual.Date );
 }
        public void GetDaysInMonthShouldReturnCorrectCount()
        {
            var target = new GregorianFiscalCalendar( 7 );
            var calendar = new GregorianCalendar();

            Assert.Equal( calendar.GetDaysInMonth( 2010, 7 ), target.GetDaysInMonth( 2011, 1 ) );
            Assert.Equal( calendar.GetDaysInMonth( 2010, 8 ), target.GetDaysInMonth( 2011, 2 ) );
            Assert.Equal( calendar.GetDaysInMonth( 2010, 6 ), target.GetDaysInMonth( 2010, 12 ) );
            Assert.Equal( calendar.GetDaysInMonth( 2011, 6 ), target.GetDaysInMonth( 2011, 12 ) );
        }
        public void GetDayOfYearShouldReturnCorrectDay()
        {
            var target = new GregorianFiscalCalendar( 7 );

            Assert.Equal( 1, target.GetDayOfYear( new DateTime( 2010, 7, 1 ) ) );
            Assert.Equal( 23, target.GetDayOfYear( new DateTime( 2010, 7, 23 ) ) );
            Assert.Equal( 32, target.GetDayOfYear( new DateTime( 2010, 8, 1 ) ) );
            Assert.Equal( 365, target.GetDayOfYear( new DateTime( 2010, 6, 30 ) ) );
            Assert.Equal( 365, target.GetDayOfYear( new DateTime( 2011, 6, 30 ) ) );
        }
예제 #11
0
 public void YearWithCalendarShouldReturnExpectedResult()
 {
     var date = new DateTime( 2013, 7, 1 );
     var calendar = new GregorianFiscalCalendar( 7 );
     var actual = date.Year( calendar );
     Assert.Equal( 2014, actual ); // because fiscal calendar starts in July
 }
예제 #12
0
 public void WeekWithCalendarShouldReturnExpectedResult()
 {
     var date = new DateTime( 2013, 3, 1 );
     var calendar = new GregorianFiscalCalendar( 7 );
     var actual = date.Week( calendar, DayOfWeek.Sunday );
     Assert.Equal( 35, actual ); // because fiscal calendar starts in July
 }
예제 #13
0
        public void CurrentYearShouldReturnExpectedResult()
        {
            using ( ShimsContext.Create() )
            {
                ShimDateTime.TodayGet = () => new DateTime( 2012, 7, 1 );

                // this test sets the fiscal year to start in july. the calendar will
                // report the "fiscal year" as the year reported by the true calendar
                // year at the end of the current "fiscal year"; therefore, although
                // DateTime.Today is 7/1/2012, 2013 will be reported because the
                // current year ends on 6/30/2013.

                var target = new GregorianFiscalCalendar( 7 );
                var actual = target.CurrentYear();
                var expected = 2013;

                Assert.Equal( expected, actual );
            }
        }
예제 #14
0
        public void CurrentStartOfYearShouldReturnExpectedResult()
        {
            using ( ShimsContext.Create() )
            {
                ShimDateTime.TodayGet = () => new DateTime( 2013, 6, 1 );

                var expected = new DateTime( 2012, 7, 1 );
                var target = new GregorianFiscalCalendar( 7 ); // because fiscal calendar starts in July
                var actual = target.CurrentStartOfYear();

                Assert.Equal( expected, actual );
            }
        }
예제 #15
0
 public void SemesterShouldReturnExpectedResult()
 {
     var date = new DateTime( 2013, 3, 1 );
     var calendar = new GregorianFiscalCalendar( 7 );
     var actual = calendar.Semester( date );
     Assert.Equal( 2, actual ); // because fiscal calendar starts in July
 }
예제 #16
0
 public void EndOfYearShouldReturnExpectedResult()
 {
     var date = new DateTime( 2013, 3, 1 );
     var calendar = new GregorianFiscalCalendar( 7 );
     var expected = new DateTime( 2013, 6, 30 ); // because fiscal calendar starts in July
     var actual = calendar.EndOfYear( date );
     Assert.Equal( expected.Date, actual.Date );
 }
예제 #17
0
 public void EndOfQuarterShouldReturnExpectedResult()
 {
     var date = new DateTime( 2013, 3, 1 );
     var calendar = new GregorianFiscalCalendar( 7 );
     var expected = new DateTime( 2013, 3, 31 );
     var actual = calendar.EndOfQuarter( date );
     Assert.Equal( expected.Date, actual.Date );
 }
        public void GetWeekOfYearShouldReturnCorrectValueForFiscalYear()
        {
            var target = new GregorianFiscalCalendar( 7 );

            Assert.Equal( 1, target.GetWeekOfYear( new DateTime( 2010, 7, 1 ), CalendarWeekRule.FirstDay, DayOfWeek.Sunday ) );
            Assert.Equal( 4, target.GetWeekOfYear( new DateTime( 2010, 7, 23 ), CalendarWeekRule.FirstDay, DayOfWeek.Sunday ) );
            Assert.Equal( 3, target.GetWeekOfYear( new DateTime( 2010, 7, 23 ), CalendarWeekRule.FirstFullWeek, DayOfWeek.Sunday ) );
            Assert.Equal( 6, target.GetWeekOfYear( new DateTime( 2010, 8, 1 ), CalendarWeekRule.FirstDay, DayOfWeek.Sunday ) );
            Assert.True( new[] { 52, 53 }.Contains( target.GetWeekOfYear( new DateTime( 2010, 6, 30 ), CalendarWeekRule.FirstDay, DayOfWeek.Sunday ) ) );
            Assert.True( new[] { 52, 53 }.Contains( target.GetWeekOfYear( new DateTime( 2011, 6, 30 ), CalendarWeekRule.FirstDay, DayOfWeek.Sunday ) ) );
        }
예제 #19
0
        public void FirstMonthOfYearShouldReturnExpectedResult()
        {
            var actual = CultureInfo.CurrentCulture.Calendar.FirstMonthOfYear();
            Assert.Equal( 1, actual );

            actual = new GregorianFiscalCalendar( 7 ).FirstMonthOfYear();
            Assert.Equal( 7, actual );
        }
        public void ToDateTimeShouldConvertFromFiscalToCalendarDateTime()
        {
            var target = new GregorianFiscalCalendar( 7 );

            Assert.Equal( new DateTime( 2010, 7, 1 ), target.ToDateTime( 2011, 1, 1, 0, 0, 0, 0 ) );
            Assert.Equal( new DateTime( 2010, 7, 23 ), target.ToDateTime( 2011, 1, 23, 0, 0, 0, 0 ) );
            Assert.Equal( new DateTime( 2010, 8, 1 ), target.ToDateTime( 2011, 2, 1, 0, 0, 0, 0 ) );
            Assert.Equal( new DateTime( 2010, 6, 30 ), target.ToDateTime( 2010, 12, 30, 0, 0, 0, 0 ) );
            Assert.Equal( new DateTime( 2011, 6, 30 ), target.ToDateTime( 2011, 12, 30, 0, 0, 0, 0 ) );
            Assert.Equal( new DateTime( 2011, 7, 1 ), target.ToDateTime( 2012, 1, 1, 0, 0, 0, 0 ) );
        }
예제 #21
0
 public void EndOfMonthWithCalendarShouldReturnExpectedResult()
 {
     var date = new DateTime( 2013, 3, 1 );
     var calendar = new GregorianFiscalCalendar( 7 );
     var expected = new DateTime( 2013, 3, 31 );
     var actual = date.EndOfMonth( calendar );
     Assert.Equal( expected.Date, actual.Date );
 }
        public void IsLeapYearShouldReturnCorrectValueForFiscalYear()
        {
            var target = new GregorianFiscalCalendar( 7 );
            var calendar = new GregorianCalendar();

            for ( var year = 2005; year <= 2015; year++ )
                Assert.Equal( calendar.IsLeapYear( year - 1 ) | calendar.IsLeapYear( year ), target.IsLeapYear( year ) );
        }