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); } }
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()); }
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)); } }
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)))); }
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))); }
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()); }
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); } }
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); }