public void In_memory_DbSet_can_be_used_for_RemoveRange()
        {
            var products = new[] { new Product(), new Product() };
            var set      = new InMemoryNonGenericDbSet <Product>(products);

            Assert.Same(products, set.RemoveRange(products));
            Assert.Empty(set);
        }
        public void In_memory_DbSet_can_be_used_for_Attach()
        {
            var set     = new InMemoryNonGenericDbSet <Product>();
            var product = new Product();

            Assert.Same(product, set.Attach(product));
            Assert.Same(product, set.ToList <Product>().Single());
        }
        public void In_memory_DbSet_can_be_used_for_Remove()
        {
            var set     = new InMemoryNonGenericDbSet <Product>();
            var product = new Product();

            set.Add(product);

            Assert.Same(product, set.Remove(product));
            Assert.Empty(set);
        }
        public void In_memory_DbSet_can_be_used_for_AddRange()
        {
            var set      = new InMemoryNonGenericDbSet <Product>();
            var products = new[] { new Product {
                                       Id = 1
                                   }, new Product {
                                       Id = 2
                                   } };

            Assert.Same(products, set.AddRange(products));
            Assert.Equal(products.OrderBy(p => p.Id), set.ToList <Product>().OrderBy(p => p.Id));
        }
        public void In_memory_DbSet_can_be_used_for_Find()
        {
            var product = new Product {
                Id = 1
            };
            var set = new InMemoryNonGenericDbSet <Product>(
                new[] { product, new Product {
                            Id = 2
                        } }, (d, k) => d.Single(p => p.Id == (int)k[0]));

            Assert.Same(product, set.Find(1));
        }