public async Task DeckDoesNotExist() { var db = DbHelper.GetEmptyTestDB(); var user = await UserHelper.CreateInDbAsync(db); using var dbContext = new MemCheckDbContext(db); var request = new UpdateDeck.Request(user, Guid.NewGuid(), RandomHelper.String(), 0); await Assert.ThrowsExceptionAsync <InvalidOperationException>(async() => await new UpdateDeck(dbContext.AsCallContext()).RunAsync(request)); }
async public Task <IActionResult> Update([FromBody] UpdateRequest request) { CheckBodyParameter(request); var userId = await UserServices.UserIdFromContextAsync(HttpContext, userManager); var appRequest = new UpdateDeck.Request(userId, request.DeckId, request.Description.Trim(), request.HeapingAlgorithmId); return(Ok(await new UpdateDeck(callContext).RunAsync(appRequest))); }
public async Task NameTooLong() { var db = DbHelper.GetEmptyTestDB(); var user = await UserHelper.CreateInDbAsync(db); var deck = await DeckHelper.CreateAsync(db, user); using var dbContext = new MemCheckDbContext(db); var request = new UpdateDeck.Request(user, deck, RandomHelper.String(QueryValidationHelper.DeckMaxNameLength + 1), 0); await Assert.ThrowsExceptionAsync <RequestInputException>(async() => await new UpdateDeck(dbContext.AsCallContext()).RunAsync(request)); }
public async Task NameNotTrimmed() { var db = DbHelper.GetEmptyTestDB(); var user = await UserHelper.CreateInDbAsync(db); var deck = await DeckHelper.CreateAsync(db, user); using var dbContext = new MemCheckDbContext(db); var request = new UpdateDeck.Request(user, deck, RandomHelper.String() + '\t', 0); await Assert.ThrowsExceptionAsync <InvalidOperationException>(async() => await new UpdateDeck(dbContext.AsCallContext()).RunAsync(request)); }
public async Task InexistentAlgorithm() { var db = DbHelper.GetEmptyTestDB(); var user = await UserHelper.CreateInDbAsync(db); var deck = await DeckHelper.CreateAsync(db, user); using var dbContext = new MemCheckDbContext(db); var request = new UpdateDeck.Request(user, deck, RandomHelper.String(), RandomHelper.ValueNotInSet(HeapingAlgorithms.Instance.Ids)); await Assert.ThrowsExceptionAsync <InvalidOperationException>(async() => await new UpdateDeck(dbContext.AsCallContext()).RunAsync(request)); }
public async Task UserNotOwner() { var db = DbHelper.GetEmptyTestDB(); var user = await UserHelper.CreateInDbAsync(db); var deck = await DeckHelper.CreateAsync(db, user); var otherUser = await UserHelper.CreateInDbAsync(db); using var dbContext = new MemCheckDbContext(db); var request = new UpdateDeck.Request(otherUser, deck, RandomHelper.String(), RandomHelper.HeapingAlgorithm()); await Assert.ThrowsExceptionAsync <InvalidOperationException>(async() => await new UpdateDeck(dbContext.AsCallContext()).RunAsync(request)); }
public async Task DeckWithThisNameExists() { var db = DbHelper.GetEmptyTestDB(); var user = await UserHelper.CreateInDbAsync(db); var deck = await DeckHelper.CreateAsync(db, user); var otherDeckName = RandomHelper.String(); await DeckHelper.CreateAsync(db, user, otherDeckName); using var dbContext = new MemCheckDbContext(db); var request = new UpdateDeck.Request(user, deck, otherDeckName, RandomHelper.HeapingAlgorithm()); await Assert.ThrowsExceptionAsync <RequestInputException>(async() => await new UpdateDeck(dbContext.AsCallContext()).RunAsync(request)); }
public async Task FieldsCorrectlyUpdated() { var db = DbHelper.GetEmptyTestDB(); var user = await UserHelper.CreateInDbAsync(db); var deck = await DeckHelper.CreateAsync(db, user); var newName = RandomHelper.String(); int newAlgo = RandomHelper.HeapingAlgorithm(); var request = new UpdateDeck.Request(user, deck, newName, newAlgo); using (var dbContext = new MemCheckDbContext(db)) await new UpdateDeck(dbContext.AsCallContext()).RunAsync(request); using (var dbContext = new MemCheckDbContext(db)) { var deckFromDb = await dbContext.Decks.SingleAsync(d => d.Id == deck); Assert.AreEqual(newName, deckFromDb.Description); Assert.AreEqual(newAlgo, deckFromDb.HeapingAlgorithmId); } }
public async Task FieldsNotAltered() { var db = DbHelper.GetEmptyTestDB(); var user = await UserHelper.CreateInDbAsync(db); var deck = await DeckHelper.CreateAsync(db, user); var card = await CardHelper.CreateAsync(db, user); await DeckHelper.AddCardAsync(db, deck, card.Id); var request = new UpdateDeck.Request(user, deck, RandomHelper.String(), RandomHelper.HeapingAlgorithm()); using (var dbContext = new MemCheckDbContext(db)) await new UpdateDeck(dbContext.AsCallContext()).RunAsync(request); using (var dbContext = new MemCheckDbContext(db)) { var deckFromDb = await dbContext.Decks.Include(d => d.Owner).Include(d => d.CardInDecks).SingleAsync(d => d.Id == deck); Assert.AreEqual(user, deckFromDb.Owner.Id); Assert.AreEqual(card.Id, deckFromDb.CardInDecks.Single().CardId); } }
async public Task <IActionResult> Update([FromBody] UpdateDeck.Request deck) { return(Ok(await new UpdateDeck(dbContext).RunAsync(deck))); }