Example #1
0
        public async Task FullTestWithOneDeck()
        {
            var testDB = DbHelper.GetEmptyTestDB();
            var userId = await UserHelper.CreateInDbAsync(testDB);

            var deckDescription = RandomHelper.String();
            var deck            = await DeckHelper.CreateAsync(testDB, userId, deckDescription, UnitTestsHeapingAlgorithm.ID);

            var jan01 = new DateTime(2030, 01, 01).ToUniversalTime();
            var jan30 = new DateTime(2030, 01, 30, 0, 0, 0).ToUniversalTime();
            var jan31 = new DateTime(2030, 01, 31).ToUniversalTime();
            var jan28 = new DateTime(2030, 01, 28).ToUniversalTime();

            await DeckHelper.AddCardAsync(testDB, deck, (await CardHelper.CreateAsync(testDB, userId)).Id, 0, jan31);

            await DeckHelper.AddCardAsync(testDB, deck, (await CardHelper.CreateAsync(testDB, userId)).Id, 0, jan30);

            await DeckHelper.AddCardAsync(testDB, deck, (await CardHelper.CreateAsync(testDB, userId)).Id, 1, jan31);

            await DeckHelper.AddCardAsync(testDB, deck, (await CardHelper.CreateAsync(testDB, userId)).Id, 2, jan31);

            await DeckHelper.AddCardAsync(testDB, deck, (await CardHelper.CreateAsync(testDB, userId)).Id, 1, jan30);

            await DeckHelper.AddCardAsync(testDB, deck, (await CardHelper.CreateAsync(testDB, userId)).Id, 1, jan30);

            await DeckHelper.AddCardAsync(testDB, deck, (await CardHelper.CreateAsync(testDB, userId)).Id, 3, jan30);

            await DeckHelper.AddCardAsync(testDB, deck, (await CardHelper.CreateAsync(testDB, userId)).Id, 1, jan01);

            await DeckHelper.AddCardAsync(testDB, deck, (await CardHelper.CreateAsync(testDB, userId)).Id, 3, jan28);

            await DeckHelper.AddCardAsync(testDB, deck, (await CardHelper.CreateAsync(testDB, userId)).Id, 6, jan28);

            await DeckHelper.AddCardAsync(testDB, deck, (await CardHelper.CreateAsync(testDB, userId)).Id, 4, jan01);

            await DeckHelper.AddCardAsync(testDB, deck, (await CardHelper.CreateAsync(testDB, userId)).Id, 6, jan01);

            using var dbContext = new MemCheckDbContext(testDB);
            var request = new GetDecksWithLearnCounts.Request(userId);
            var result  = await new GetDecksWithLearnCounts(dbContext.AsCallContext(), new DateTime(2030, 02, 01, 0, 30, 0)).RunAsync(request);
            var loaded  = result.Single();

            Assert.AreEqual(deckDescription, loaded.Description);
            Assert.AreEqual(2, loaded.UnknownCardCount);
            Assert.AreEqual(7, loaded.ExpiredCardCount);
            Assert.AreEqual(0, loaded.ExpiringNextHourCount);
            Assert.AreEqual(2, loaded.ExpiringFollowing24hCount);
            Assert.AreEqual(1, loaded.ExpiringFollowing3DaysCount);
            Assert.AreEqual(12, loaded.CardCount);
        }
Example #2
0
        public async Task OneEmptyDeck()
        {
            var testDB = DbHelper.GetEmptyTestDB();
            var userId = await UserHelper.CreateInDbAsync(testDB);

            var description = RandomHelper.String();
            var deck        = await DeckHelper.CreateAsync(testDB, userId, description);

            using var dbContext = new MemCheckDbContext(testDB);
            var request = new GetDecksWithLearnCounts.Request(userId);
            var result  = await new GetDecksWithLearnCounts(dbContext.AsCallContext()).RunAsync(request);

            Assert.AreEqual(1, result.Count());
            var loaded = result.First();

            Assert.AreEqual(deck, loaded.Id);
            Assert.AreEqual(description, loaded.Description);
            Assert.AreEqual(0, loaded.UnknownCardCount);
            Assert.AreEqual(0, loaded.ExpiredCardCount);
            Assert.AreEqual(0, loaded.CardCount);
        }