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

            var card = await CardHelper.CreateAsync(testDB, user1, new DateTime(2020, 11, 3));

            var user2 = await UserHelper.CreateInDbAsync(testDB);

            await CreateCardPreviousVersionAsync(testDB, user2, card.Id, new DateTime(2020, 11, 2));

            await CardSubscriptionHelper.CreateAsync(testDB, user1, card.Id, new DateTime(2020, 11, 1));

            var now = new DateTime(2020, 11, 4);

            using (var dbContext = new MemCheckDbContext(testDB))
            {
                var notifier = new UserCardVersionsNotifier(dbContext.AsCallContext(), now);
                var versions = await notifier.RunAsync(user1);

                Assert.AreEqual(1, versions.Length);
                Assert.AreEqual(card.Id, versions[0].CardId);
                Assert.IsTrue(versions[0].CardIsViewable);
                Assert.IsNull(versions[0].VersionIdOnLastNotification);
            }

            using (var dbContext = new MemCheckDbContext(testDB))
            {
                var notif = dbContext.CardNotifications.Single(cn => cn.CardId == card.Id && cn.UserId == user1);
                Assert.AreEqual(now, notif.LastNotificationUtcDate);
            }
        }
Example #2
0
        public async Task CardWithOnePreviousVersion_ToBeNotifiedWithoutAccessibility()
        {
            var testDB = DbHelper.GetEmptyTestDB();
            var user1  = await UserHelper.CreateInDbAsync(testDB);

            var card = await CardHelper.CreateAsync(testDB, user1, new DateTime(2020, 11, 2), user1.AsArray());

            var previousVersion = await CreateCardPreviousVersionAsync(testDB, user1, card.Id, new DateTime(2020, 11, 1));

            var user2 = await UserHelper.CreateInDbAsync(testDB);

            await CardSubscriptionHelper.CreateAsync(testDB, user2, card.Id, new DateTime(2020, 11, 1));

            var now = new DateTime(2020, 11, 2);

            using (var dbContext = new MemCheckDbContext(testDB))
            {
                var notifier = new UserCardVersionsNotifier(dbContext.AsCallContext(), now);

                var user1versions = await notifier.RunAsync(user1);

                Assert.AreEqual(0, user1versions.Length);

                var user2versions = await notifier.RunAsync(user2);

                Assert.AreEqual(1, user2versions.Length);
                Assert.AreEqual(card.Id, user2versions[0].CardId);
                Assert.IsFalse(user2versions[0].CardIsViewable);
                Assert.IsNull(user2versions[0].VersionDescription);
                Assert.IsNull(user2versions[0].FrontSide);
                Assert.AreEqual(previousVersion.Id, user2versions[0].VersionIdOnLastNotification);
            }

            using (var dbContext = new MemCheckDbContext(testDB))
            {
                var notif = dbContext.CardNotifications.Single(cn => cn.CardId == card.Id && cn.UserId == user2);
                Assert.AreEqual(now, notif.LastNotificationUtcDate);
            }
        }