Beispiel #1
0
    public void Next_ReturnsNextFridayProperly()
    {
        var friday           = new DateTime(2009, 7, 10, 1, 0, 0, 0, DateTimeKind.Local);
        var reallyNextFriday = new DateTime(2009, 7, 17, 1, 0, 0, 0, DateTimeKind.Local);
        var nextFriday       = friday.Next(DayOfWeek.Friday);

        DateAssert.Equal(reallyNextFriday, nextFriday);
    }
Beispiel #2
0
    public void Next_ReturnsPreviousFridayProperly()
    {
        var friday = new DateTime(2009, 7, 17, 1, 0, 0, 0, DateTimeKind.Local);
        var reallyPreviousFriday = new DateTime(2009, 7, 10, 1, 0, 0, 0, DateTimeKind.Local);
        var previousFriday       = friday.Previous(DayOfWeek.Friday);

        DateAssert.Equal(reallyPreviousFriday, previousFriday);
    }
Beispiel #3
0
    public void NextYear_IfNextYearDoesNotHaveTheSameDayInTheSameMonthThenCalculateHowManyDaysIsMissingAndAddThatToTheLastDayInTheSameMonthNextYear()
    {
        var someBirthday = new DateTime(2008, 2, 29, 17, 0, 0, 0, DateTimeKind.Local);
        var nextYear     = someBirthday.NextYear();
        var expected     = new DateTime(2009, 3, 1, 17, 0, 0, 0, DateTimeKind.Local);

        DateAssert.Equal(expected, nextYear);
    }
Beispiel #4
0
    public void PreviousYear_IfPreviousYearDoesNotHaveTheSameDayInTheSameMonthThenCalculateHowManyDaysIsMissingAndAddThatToTheLastDayInTheSameMonthPreviousYear()
    {
        var someBirthday = new DateTime(2012, 2, 29, 17, 0, 0, 0, DateTimeKind.Local);
        var previousYear = someBirthday.PreviousYear();
        var expected     = new DateTime(2011, 3, 1, 17, 0, 0, 0, DateTimeKind.Local);

        DateAssert.Equal(expected, previousYear);
    }
Beispiel #5
0
    public void NextYear_ReturnsTheSameDateButNextYear()
    {
        var birthday = new DateTime(1976, 12, 31, 17, 0, 0, 0, DateTimeKind.Local);
        var nextYear = birthday.NextYear();
        var expected = new DateTime(1977, 12, 31, 17, 0, 0, 0, DateTimeKind.Local);

        DateAssert.Equal(expected, nextYear);
    }
Beispiel #6
0
    public void PreviousYear_ReturnsTheSameDateButPreviousYear()
    {
        var birthday     = new DateTime(1976, 12, 31, 17, 0, 0, 0, DateTimeKind.Local);
        var previousYear = birthday.PreviousYear();
        var expected     = new DateTime(1975, 12, 31, 17, 0, 0, 0, DateTimeKind.Local);

        DateAssert.Equal(expected, previousYear);
    }
Beispiel #7
0
    public void ChangeTime_Millisecond_SimpleTests(int value)
    {
        var toChange = new DateTime(2008, 10, 25, 0, 0, 0, 0, DateTimeKind.Local);

        var expected = new DateTime(2008, 10, 25, 0, 0, 0, value, DateTimeKind.Local);

        DateAssert.Equal(expected, toChange.SetTime(0, 0, 0, value));
    }
Beispiel #8
0
        public void ExpiryDateInCorrectInterval(int heap)
        {
            var lastLearnDate       = RandomHelper.Date();
            var expiryDate          = algo.ExpiryUtcDate(heap, lastLearnDate);
            var nbDaysForExpiration = Math.Pow(2, heap);

            DateAssert.IsInRange(lastLearnDate.AddDays(nbDaysForExpiration), TimeSpan.FromMinutes(nbDaysForExpiration * 10), expiryDate);
        }
Beispiel #9
0
    public void ChangeTime_Hour_SimpleTests(int value)
    {
        var toChange = new DateTime(2008, 10, 25, 0, 0, 0, 0, DateTimeKind.Local);

        var result   = toChange.SetTime(value);
        var expected = new DateTime(2008, 10, 25, value, 0, 0, 0, DateTimeKind.Local);

        DateAssert.Equal(expected, result);
    }
Beispiel #10
0
    public void BasicTests()
    {
        var now = DateTime.Now;

        DateAssert.Equal(new DateTime(now.Year, now.Month, now.Day, 23, 59, 59, 999, DateTimeKind.Local), DateTime.Now.EndOfDay(), " End of the day wrong");
        DateAssert.Equal(new DateTime(now.Year, now.Month, now.Day, 0, 0, 0, 0, DateTimeKind.Local), DateTime.Now.BeginningOfDay(), "Start of the day wrong");

        var firstBirthDay = new DateTime(1977, 12, 31, 17, 0, 0, 0, DateTimeKind.Local);

        DateAssert.Equal(firstBirthDay + new TimeSpan(1, 0, 5, 0, 0), firstBirthDay + 1.Days() + 5.Minutes());

        DateAssert.Equal(now + TimeSpan.FromDays(1), now.NextDay());
        DateAssert.Equal(now - TimeSpan.FromDays(1), now.PreviousDay());

        DateAssert.Equal(now + TimeSpan.FromDays(7), now.WeekAfter());
        DateAssert.Equal(now - TimeSpan.FromDays(7), now.WeekEarlier());

        Assert.Equal(new DateTime(2009, 1, 1, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2008, 12, 31, 0, 0, 0, DateTimeKind.Local).Add(1.Days()));
        Assert.Equal(new DateTime(2009, 1, 2, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2009, 1, 1, 0, 0, 0, 0, DateTimeKind.Local).Add(1.Days()));

        var sampleDate = new DateTime(2009, 1, 1, 13, 0, 0, 0, DateTimeKind.Local);

        DateAssert.Equal(new DateTime(2009, 1, 1, 12, 0, 0, 0, DateTimeKind.Local), sampleDate.Noon());
        DateAssert.Equal(new DateTime(2009, 1, 1, 0, 0, 0, 0, DateTimeKind.Local), sampleDate.Midnight());

        Assert.Equal(3.Days() + 3.Days(), 6.Days());
        Assert.Equal(102.Days() - 3.Days(), 99.Days());

        Assert.Equal(24.Hours(), 1.Days());

        sampleDate = new DateTime(2008, 1, 1, 0, 0, 0, 0, DateTimeKind.Local);
        DateAssert.Equal(3.Days().Since(sampleDate), sampleDate + 3.Days());

        var saturday = new DateTime(2008, 10, 25, 12, 0, 0, DateTimeKind.Local);

        DateAssert.Equal(new DateTime(2008, 11, 1, 12, 0, 0, DateTimeKind.Local), saturday.Next(DayOfWeek.Saturday));

        DateAssert.Equal(new DateTime(2008, 10, 18, 12, 0, 0, DateTimeKind.Local), saturday.Previous(DayOfWeek.Saturday));

        // ReSharper disable UnusedVariable
        var nextWeek = DateTime.Now + 1.Weeks();

        var tomorrow                    = DateTime.Now + 1.Days();
        var yesterday                   = DateTime.Now - 1.Days();
        var changedHourTo14H            = DateTime.Now.SetHour(14);
        var todayNoon                   = DateTime.Now.Noon();
        var tomorrowNoon                = DateTime.Now.NextDay().Noon();
        var fiveDaysAgo                 = 5.Days().Ago();
        var twoDaysFromNow              = 2.Days().FromNow();
        var nextYearSameDateAsTodayNoon = 1.Years().FromNow().Noon();

        var twoWeeksFromNow = 2.Weeks().FromNow();

        // ReSharper restore UnusedVariable
    }
        public async Task OneDeck_WithCards()
        {
            var db   = DbHelper.GetEmptyTestDB();
            var user = await UserHelper.CreateInDbAsync(db);

            var deck = await DeckHelper.CreateAsync(db, user, algorithmId : HeapingAlgorithms.DefaultAlgoId);

            var runDate = RandomHelper.Date();

            await DeckHelper.AddCardAsync(db, deck, (await CardHelper.CreateAsync(db, user)).Id, 0);

            await DeckHelper.AddCardAsync(db, deck, (await CardHelper.CreateAsync(db, user)).Id, 0);

            await DeckHelper.AddCardAsync(db, deck, (await CardHelper.CreateAsync(db, user)).Id, 1, RandomHelper.DateBefore(runDate.AddDays(-3)));  //expired

            await DeckHelper.AddCardAsync(db, deck, (await CardHelper.CreateAsync(db, user)).Id, 1, runDate.AddDays(-1));

            await DeckHelper.AddCardAsync(db, deck, (await CardHelper.CreateAsync(db, user)).Id, 2, runDate.AddDays(-10));  //expired

            await DeckHelper.AddCardAsync(db, deck, (await CardHelper.CreateAsync(db, user)).Id, 4, runDate.AddDays(-10));

            await DeckHelper.AddCardAsync(db, deck, (await CardHelper.CreateAsync(db, user)).Id, 4, runDate.AddDays(-13));

            using var dbContext = new MemCheckDbContext(db);
            var result     = await new GetUserDecksWithHeaps(dbContext.AsCallContext(), runDate).RunAsync(new GetUserDecksWithHeaps.Request(user));
            var resultDeck = result.Single();

            Assert.AreEqual(deck, resultDeck.DeckId);
            Assert.AreEqual(7, resultDeck.CardCount);
            Assert.AreEqual(4, resultDeck.Heaps.Count());

            var unknownHeap = resultDeck.Heaps.Single(heap => heap.HeapId == 0);

            Assert.AreEqual(DateTime.MaxValue, unknownHeap.NextExpiryUtcDate);
            Assert.AreEqual(2, unknownHeap.TotalCardCount);

            var heap1 = resultDeck.Heaps.Single(heap => heap.HeapId == 1);

            Assert.AreEqual(2, heap1.TotalCardCount);
            Assert.AreEqual(1, heap1.ExpiredCardCount);
            DateAssert.IsInRange(runDate.AddDays(1), TimeSpan.FromMinutes(20), heap1.NextExpiryUtcDate);

            var heap2 = resultDeck.Heaps.Single(heap => heap.HeapId == 2);

            Assert.AreEqual(1, heap2.TotalCardCount);
            Assert.AreEqual(1, heap2.ExpiredCardCount);
            Assert.AreEqual(DateTime.MaxValue, heap2.NextExpiryUtcDate);

            var heap4 = resultDeck.Heaps.Single(heap => heap.HeapId == 4);

            Assert.AreEqual(2, heap4.TotalCardCount);
            Assert.AreEqual(0, heap4.ExpiredCardCount);
            DateAssert.IsInRange(runDate.AddDays(3), TimeSpan.FromMinutes(160), heap4.NextExpiryUtcDate);
        }
Beispiel #12
0
    public void From_FromFixedDateTime_Tests(int value)
    {
        var originalPointInTime = new DateTime(1976, 12, 31, 17, 0, 0, 0, DateTimeKind.Local);

        DateAssert.Equal(value.Years().From(originalPointInTime), originalPointInTime.AddYears(value));
        DateAssert.Equal(value.Months().From(originalPointInTime), originalPointInTime.AddMonths(value));
        DateAssert.Equal(value.Weeks().From(originalPointInTime), originalPointInTime.AddDays(value * DaysPerWeek));
        DateAssert.Equal(value.Days().From(originalPointInTime), originalPointInTime.AddDays(value));

        DateAssert.Equal(value.Hours().From(originalPointInTime), originalPointInTime.AddHours(value));
        DateAssert.Equal(value.Minutes().From(originalPointInTime), originalPointInTime.AddMinutes(value));
        DateAssert.Equal(value.Seconds().From(originalPointInTime), originalPointInTime.AddSeconds(value));
        DateAssert.Equal(value.Milliseconds().From(originalPointInTime), originalPointInTime.AddMilliseconds(value));
        DateAssert.Equal(value.Ticks().From(originalPointInTime), originalPointInTime.AddTicks(value));
    }
Beispiel #13
0
    public void FirstDayOfWeek_FirstDayOfWeekIsSunday(int value)
    {
        var ci             = Thread.CurrentThread.CurrentCulture;
        var currentCulture = new CultureInfo("en-AU")
        {
            DateTimeFormat =
            {
                FirstDayOfWeek = DayOfWeek.Sunday
            }
        };

        Thread.CurrentThread.CurrentCulture = currentCulture;
        var expected = new DateTime(2011, 1, 23, 0, 0, 0, DateTimeKind.Local);

        DateAssert.Equal(expected, new DateTime(2011, 1, value, 0, 0, 0, DateTimeKind.Local).FirstDayOfWeek());
        Thread.CurrentThread.CurrentCulture = ci;
    }
Beispiel #14
0
    public void PreviousQuarter_LastDay_SetsTheDayToLastDayOfQuarter()
    {
        var expected = new DateTime(2001, 12, 31, 3, 5, 6, DateTimeKind.Local);

        DateAssert.Equal(expected.BeginningOfDay(), 1.Quarters().Ago(new DateTime(2002, 1, 10, 4, 5, 6, DateTimeKind.Local).LastDayOfQuarter().BeginningOfDay()));
    }
Beispiel #15
0
    public void PreviousMonth_NextMonthDoesntHaveThatManyDays()
    {
        var expected = new DateTime(2013, 2, 28, 06, 40, 20, 5, DateTimeKind.Local);

        DateAssert.Equal(expected, new DateTime(2013, 1, 31, 06, 40, 20, 5, DateTimeKind.Local).NextMonth());
    }
Beispiel #16
0
    public void NextMonth_BasicTest()
    {
        var expected = new DateTime(2013, 1, 5, 06, 40, 20, 5, DateTimeKind.Local);

        DateAssert.Equal(expected, new DateTime(2012, 12, 5, 06, 40, 20, 5, DateTimeKind.Local).NextMonth());
    }
Beispiel #17
0
    public void PreviousMonth_BasicTest()
    {
        var expected = new DateTime(2009, 12, 20, 06, 40, 20, 5, DateTimeKind.Local);

        DateAssert.Equal(expected, new DateTime(2010, 1, 20, 06, 40, 20, 5, DateTimeKind.Local).PreviousMonth());
    }
Beispiel #18
0
    public void SubtractBusinessDays_SubtractsDaysProperlyWhenThereIsWeekend()
    {
        var expected = new DateTime(2009, 7, 9, 0, 0, 0, DateTimeKind.Local);

        DateAssert.Equal(expected, new DateTime(2009, 7, 13, 0, 0, 0, DateTimeKind.Local).SubtractBusinessDays(2));
    }
Beispiel #19
0
    public void SubtractBusinessDays_Negative()
    {
        var expected = new DateTime(2009, 7, 13, 0, 0, 0, DateTimeKind.Local);

        DateAssert.Equal(expected, new DateTime(2009, 7, 9, 0, 0, 0, DateTimeKind.Local).SubtractBusinessDays(-2));
    }
Beispiel #20
0
    public void LastDayOfMonth_SetsTheDayToLastDayInThatMonth()
    {
        var expected = new DateTime(2002, 1, 31, 17, 05, 01, DateTimeKind.Local);

        DateAssert.Equal(expected, new DateTime(2002, 1, 1, 17, 05, 01, DateTimeKind.Local).LastDayOfMonth());
    }
Beispiel #21
0
    public void AddBusinessDays_AdsDaysProperlyWhenThereIsWeekendAhead()
    {
        var expected = new DateTime(2009, 7, 13, 0, 0, 0, DateTimeKind.Local);

        DateAssert.Equal(expected, new DateTime(2009, 7, 9, 0, 0, 0, DateTimeKind.Local).AddBusinessDays(2));
    }
Beispiel #22
0
    public void LastDayOfQuarter_Q4_SetsTheDayToLastDayOfQuarter()
    {
        var expected = new DateTime(2002, 12, 31, 4, 5, 6, DateTimeKind.Local);

        DateAssert.Equal(expected.BeginningOfDay(), new DateTime(2002, 11, 22, 12, 12, 12, DateTimeKind.Local).LastDayOfQuarter().BeginningOfDay());
    }
Beispiel #23
0
    public void FirstDayOfQuarter_Q4_SetsDayToFirstDay()
    {
        var expected = new DateTime(2002, 10, 1, 7, 8, 9, DateTimeKind.Local);

        DateAssert.Equal(expected.BeginningOfDay(), new DateTime(2002, 11, 22, 12, 12, 12, DateTimeKind.Local).FirstDayOfQuarter().BeginningOfDay());
    }
Beispiel #24
0
    public void NextQuarter_LastDay_SetsTheDayToLastDayOfQuarter()
    {
        var expected = new DateTime(2002, 6, 30, 3, 5, 6, DateTimeKind.Local);

        DateAssert.Equal(expected.BeginningOfDay(), 1.Quarters().From(new DateTime(2002, 1, 10, 4, 5, 6, DateTimeKind.Local).LastDayOfQuarter().BeginningOfDay()));
    }
Beispiel #25
0
    public void At_SetsHourAndMinutesAndMillisecondsProperly()
    {
        var expected = new DateTime(2002, 12, 17, 18, 06, 02, 03, DateTimeKind.Local);

        DateAssert.Equal(expected, new DateTime(2002, 12, 17, 17, 05, 01, DateTimeKind.Local).At(18, 06, 02, 03));
    }
Beispiel #26
0
    public void FirstDayOfMonth_SetsTheDayToOne()
    {
        var expected = new DateTime(2002, 12, 1, 17, 05, 01, DateTimeKind.Local);

        DateAssert.Equal(expected, new DateTime(2002, 12, 17, 17, 05, 01, DateTimeKind.Local).FirstDayOfMonth());
    }