public async Task Complex()
        {
            var db   = DbHelper.GetEmptyTestDB();
            var user = await UserHelper.CreateInDbAsync(db);

            var deck = await DeckHelper.CreateAsync(db, user);

            var card1 = await CardHelper.CreateAsync(db, user);

            await DeckHelper.AddCardAsync(db, deck, card1.Id);

            var card2 = await CardHelper.CreateAsync(db, user);

            await DeckHelper.AddCardAsync(db, deck, card2.Id);

            var card3 = await CardHelper.CreateAsync(db, user);

            await DeckHelper.AddCardAsync(db, deck, card3.Id);

            using (var dbContext = new MemCheckDbContext(db))
                await new RemoveCardFromDeck(dbContext.AsCallContext()).RunAsync(new RemoveCardFromDeck.Request(user, deck, card2.Id));

            await DeckHelper.CheckDeckDoesNotContainCard(db, deck, card2.Id);

            await DeckHelper.CheckDeckContainsCards(db, deck, card1.Id, card3.Id);
        }
        public async Task OnlyCardInTheDeck()
        {
            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);

            using (var dbContext = new MemCheckDbContext(db))
                await new RemoveCardsFromDeck(dbContext.AsCallContext()).RunAsync(new RemoveCardsFromDeck.Request(user, deck, card.Id.AsArray()));

            await DeckHelper.CheckDeckDoesNotContainCard(db, deck, card.Id);
        }