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

            var subscription = await SearchSubscriptionHelper.CreateAsync(testDB, userId);

            using (var dbContext = new MemCheckDbContext(testDB))
                await new UserSearchNotifier(dbContext.AsCallContext(), 100, new DateTime(2050, 05, 01)).RunAsync(subscription.Id);

            using (var dbContext = new MemCheckDbContext(testDB))
            {
                var request = new GetSearchSubscriptions.Request(userId);
                var s       = (await new GetSearchSubscriptions(dbContext.AsCallContext()).RunAsync(request)).Single();
                Assert.AreEqual(0, s.CardCountOnLastRun);
            }

            await CardHelper.CreateAsync(testDB, userId);

            await CardHelper.CreateAsync(testDB, userId);

            await CardHelper.CreateAsync(testDB, userId);

            await CardHelper.CreateAsync(testDB, userId);

            using (var dbContext = new MemCheckDbContext(testDB))
                await new UserSearchNotifier(dbContext.AsCallContext(), 100, new DateTime(2050, 05, 02)).RunAsync(subscription.Id);

            using (var dbContext = new MemCheckDbContext(testDB))
            {
                var request = new GetSearchSubscriptions.Request(userId);
                var s       = (await new GetSearchSubscriptions(dbContext.AsCallContext()).RunAsync(request)).Single();
                Assert.AreEqual(4, s.CardCountOnLastRun);
            }
        }
示例#2
0
        public async Task TestGetRightSearchesPerUser()
        {
            var testDB = DbHelper.GetEmptyTestDB();

            var user1Id = await UserHelper.CreateInDbAsync(testDB);

            await SearchSubscriptionHelper.CreateAsync(testDB, user1Id);

            await SearchSubscriptionHelper.CreateAsync(testDB, user1Id);

            var user2Id = await UserHelper.CreateInDbAsync(testDB);

            await SearchSubscriptionHelper.CreateAsync(testDB, user2Id);

            await SearchSubscriptionHelper.CreateAsync(testDB, user2Id);

            await SearchSubscriptionHelper.CreateAsync(testDB, user2Id);

            using var dbContext = new MemCheckDbContext(testDB);
            var user1Request       = new GetSearchSubscriptions.Request(user1Id);
            var user1Subscriptions = await new GetSearchSubscriptions(dbContext.AsCallContext()).RunAsync(user1Request);

            Assert.AreEqual(2, user1Subscriptions.Count());

            var user2Request       = new GetSearchSubscriptions.Request(user2Id);
            var user2Subscriptions = await new GetSearchSubscriptions(dbContext.AsCallContext()).RunAsync(user2Request);

            Assert.AreEqual(3, user2Subscriptions.Count());
        }
示例#3
0
        public async Task CorrectDeletion_OtherSubscriptionsExist()
        {
            var testDB = DbHelper.GetEmptyTestDB();
            var userId = await UserHelper.CreateInDbAsync(testDB);

            await SearchSubscriptionHelper.CreateAsync(testDB, userId);

            var subscription = await SearchSubscriptionHelper.CreateAsync(testDB, userId);

            await SearchSubscriptionHelper.CreateAsync(testDB, userId);

            using (var dbContext = new MemCheckDbContext(testDB))
            {
                var request = new DeleteSearchSubscription.Request(userId, subscription.Id);
                await new DeleteSearchSubscription(dbContext.AsCallContext()).RunAsync(request);
            }

            using (var dbContext = new MemCheckDbContext(testDB))
            {
                var request       = new GetSearchSubscriptions.Request(userId);
                var subscriptions = await new GetSearchSubscriptions(dbContext.AsCallContext()).RunAsync(request);
                Assert.AreEqual(2, subscriptions.Count());
                Assert.IsFalse(subscriptions.Any(s => s.Id == subscription.Id));
            }
        }
示例#4
0
        public async Task <IActionResult> GetSearchSubscriptions()
        {
            var userId = await UserServices.UserIdFromContextAsync(HttpContext, userManager);

            var appRequest = new GetSearchSubscriptions.Request(userId);
            var result     = await new GetSearchSubscriptions(callContext).RunAsync(appRequest);

            return(Ok(result.Select(appResultEntry => new SearchSubscriptionViewModel(appResultEntry, this))));
        }
示例#5
0
        public async Task <IActionResult> GetSearchSubscription(Guid id)
        {
            var userId = await UserServices.UserIdFromContextAsync(HttpContext, userManager);

            var appRequest = new GetSearchSubscriptions.Request(userId);
            var results    = await new GetSearchSubscriptions(callContext).RunAsync(appRequest); //Using this class is of course overkill, but it's ok since a user has very few search subscriptions
            var result     = results.Where(r => r.Id == id).Single();

            return(Ok(new SearchSubscriptionViewModel(result, this)));
        }
示例#6
0
        public async Task TestEmptyDb()
        {
            var testDB = DbHelper.GetEmptyTestDB();
            var userId = await UserHelper.CreateInDbAsync(testDB);

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

            Assert.IsTrue(!subscriptions.Any());
        }
示例#7
0
        public async Task TestSimplestSearch()
        {
            var testDB = DbHelper.GetEmptyTestDB();
            var userId = await UserHelper.CreateInDbAsync(testDB);

            await SearchSubscriptionHelper.CreateAsync(testDB, userId);

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

            Assert.AreEqual(1, subscriptions.Count());
        }
        public async Task TestCorrectRenaming()
        {
            var testDB = DbHelper.GetEmptyTestDB();
            var userId = await UserHelper.CreateInDbAsync(testDB);

            var subscription = await SearchSubscriptionHelper.CreateAsync(testDB, userId);

            var newName = RandomHelper.String();

            using (var dbContext = new MemCheckDbContext(testDB))
            {
                var request = new SetSearchSubscriptionName.Request(userId, subscription.Id, "      " + newName + "\t\t");
                await new SetSearchSubscriptionName(dbContext.AsCallContext()).RunAsync(request);
            }

            using (var dbContext = new MemCheckDbContext(testDB))
            {
                var request       = new GetSearchSubscriptions.Request(userId);
                var subscriptions = await new GetSearchSubscriptions(dbContext.AsCallContext()).RunAsync(request);
                Assert.AreEqual(1, subscriptions.Count());
                Assert.AreEqual(newName, subscriptions.Single().Name);
            }
        }
示例#9
0
        public async Task TestRightData()
        {
            var testDB = DbHelper.GetEmptyTestDB();
            var userId = await UserHelper.CreateInDbAsync(testDB);

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

            var name              = RandomHelper.String();
            var requiredText      = RandomHelper.String();
            var lastNotifDate     = new DateTime(2032, 1, 8);
            var savedSubscription = await SearchSubscriptionHelper.CreateAsync(testDB, userId, name : name, requiredText : requiredText, excludedDeckId : deck, lastNotificationDate : lastNotifDate);

            using var dbContext = new MemCheckDbContext(testDB);
            var request      = new GetSearchSubscriptions.Request(userId);
            var subscription = (await new GetSearchSubscriptions(dbContext.AsCallContext()).RunAsync(request)).Single();

            Assert.AreEqual(savedSubscription.Id, subscription.Id);
            Assert.AreEqual(name, subscription.Name);
            Assert.AreEqual(requiredText, subscription.RequiredText);
            Assert.AreEqual(deckDescription, subscription.ExcludedDeck);
            Assert.AreEqual(lastNotifDate, subscription.LastRunUtcDate);
            Assert.AreEqual(lastNotifDate, subscription.RegistrationUtcDate);
        }