public async Task AddManyByEnumerable(List <Pizza> ps)
        {
            await Pizzas.AddMany(ps);

            var results = (await Pizzas.GetAll()).ToList();

            Assert.Equal(ps.Count, results.Count);
            Assert.All(ps, p => Assert.Contains(p, results));
        }
        public async Task GetManyByParam(Pizza a, Pizza b, Pizza c)
        {
            await Pizzas.AddMany(a, b, c);

            var results = (await Pizzas.GetMany(a.Id, c.Id)).ToList();

            Assert.Equal(2, results.Count);
            Assert.Contains(a, results);
            Assert.DoesNotContain(b, results);
            Assert.Contains(c, results);
        }
        public async Task AddManyByParam(Pizza a, Pizza b, Pizza c)
        {
            await Pizzas.AddMany(a, b, c);

            var results = (await Pizzas.GetAll()).ToList();

            Assert.Equal(3, results.Count);
            Assert.Contains(a, results);
            Assert.Contains(b, results);
            Assert.Contains(c, results);
        }
        public async Task GetManyByEnumerable(List <Pizza> ps, Pizza exclude)
        {
            await Pizzas.Add(exclude);

            await Pizzas.AddMany(ps);

            var results = (await Pizzas.GetMany(ps.Select(p => p.Id))).ToList();

            Assert.Equal(ps.Count, results.Count);
            Assert.All(ps, p => Assert.Contains(p, results));
            Assert.DoesNotContain(exclude, results);
        }
        public async Task DeleteManyByParamsId(Pizza a, Pizza b, Pizza c)
        {
            await Pizzas.AddMany(a, b, c);

            await Pizzas.DeleteMany(a.Id, c.Id);

            var ps = (await Pizzas.GetAll()).ToList();
            var ts = (await Toppings.GetAll()).ToList();

            var expectedToppings = a.Toppings.Concat(b.Toppings).Concat(c.Toppings).ToList();

            Assert.Equal(1, ps.Count);
            Assert.Contains(b, ps);

            Assert.Equal(expectedToppings.Count, ts.Count);
            Assert.All(ts, t => Assert.Contains(t, expectedToppings));
        }
        public async Task DeleteManyByEnumerableId(List <Pizza> pizzas, Pizza exclude)
        {
            await Pizzas.Add(exclude);

            await Pizzas.AddMany(pizzas);

            await Pizzas.DeleteMany(pizzas.Select(p => p.Id));

            var ps = (await Pizzas.GetAll()).ToList();
            var ts = (await Toppings.GetAll()).ToList();

            var expectedToppings = pizzas.SelectMany(p => p.Toppings).Concat(exclude.Toppings).ToList();

            Assert.Equal(1, ps.Count);
            Assert.Contains(exclude, ps);

            Assert.Equal(expectedToppings.Count, ts.Count);
            Assert.All(ts, t => Assert.Contains(t, expectedToppings));
        }