예제 #1
0
            public void SucceedsWhenNoEntitiesMatchFilter()
            {
                using (var dbContext = new TestDbContextContainer())
                {
                    using (var repository = new DbContextCustomerRepository(dbContext))
                    {
                        repository.Delete(x => x.Id == 999);

                        dbContext.SaveChanges();
                    }
                }
            }
예제 #2
0
            public void AddsNonExistingEntity()
            {
                using (var dbContext = new TestDbContextContainer())
                {
                    using (var repository = new DbContextCustomerRepository(dbContext))
                    {
                        var customer = EFTestHelper.CreateCustomer(1235);

                        repository.Attach(customer);

                        dbContext.SaveChanges();

                        var fetchedCustomer = repository.GetByKey(1235);
                        Assert.AreEqual(customer, fetchedCustomer);
                    }
                }
            }
예제 #3
0
        public static void CreateCustomerIfNotAlreadyExists(int id)
        {
            using (var dbContext = new TestDbContextContainer())
            {
                using (var repository = new DbContextCustomerRepository(dbContext))
                {
                    var existingCustomer = repository.FirstOrDefault(x => x.Id == id);
                    if (existingCustomer == null)
                    {
                        var customer = CreateCustomer(id);

                        repository.Add(customer);

                        dbContext.SaveChanges();
                    }
                }
            }
        }
예제 #4
0
            public void SucceedsWhenEntitiesMatchFilter()
            {
                using (var dbContext = new TestDbContextContainer())
                {
                    using (var repository = new DbContextCustomerRepository(dbContext))
                    {
                        EFTestHelper.CreateCustomerIfNotAlreadyExists(201);
                        EFTestHelper.CreateCustomerIfNotAlreadyExists(202);
                        EFTestHelper.CreateCustomerIfNotAlreadyExists(203);

                        repository.Delete(x => x.Id >= 201 && x.Id <= 203);

                        dbContext.SaveChanges();

                        Assert.IsNull(repository.GetByKey(201));
                        Assert.IsNull(repository.GetByKey(202));
                        Assert.IsNull(repository.GetByKey(203));
                    }
                }
            }
예제 #5
0
            public void UpdatesEntity()
            {
                using (var dbContext = new TestDbContextContainer())
                {
                    using (var repository = new DbContextCustomerRepository(dbContext))
                    {
                        EFTestHelper.CreateCustomerIfNotAlreadyExists(301);

                        var customer1 = repository.GetByKey(301);
                        customer1.Name = "John Doe";

                        repository.Update(customer1);

                        dbContext.SaveChanges();

                        var customer2 = repository.GetByKey(301);

                        Assert.IsNotNull(customer2);
                        Assert.AreEqual("John Doe", customer2.Name);
                    }
                }
            }
예제 #6
0
            public void DeletesSpecificEntity()
            {
                using (var dbContext = new TestDbContextContainer())
                {
                    using (var repository = new DbContextCustomerRepository(dbContext))
                    {
                        EFTestHelper.CreateCustomerIfNotAlreadyExists(201);

                        var customer1 = repository.GetByKey(201);

                        Assert.IsNotNull(customer1);

                        repository.Delete(customer1);

                        dbContext.SaveChanges();

                        var customer2 = repository.GetByKey(201);

                        Assert.IsNull(customer2);
                    }
                }
            }
    public static void SetUp()
    {
        //System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");

        // Required since we do multithreaded initialization
        //TypeCache.InitializeTypes(allowMultithreadedInitialization: false);
        TypeCache.InitializeTypes();

        using (var dbContext = new TestDbContextContainer())
        {
            dbContext.Database.CreateIfNotExists();

            // Delete all data
            var allOrders = (from x in dbContext.DbContextOrders
                             select x).ToList();
            foreach (var x in allOrders)
            {
                dbContext.DbContextOrders.Remove(x);
            }

            var allCustomers = (from x in dbContext.DbContextCustomers
                                select x).ToList();
            foreach (var x in allCustomers)
            {
                dbContext.DbContextCustomers.Remove(x);
            }

            var allProducts = (from x in dbContext.DbContextProducts
                               select x).ToList();
            foreach (var x in allProducts)
            {
                dbContext.DbContextProducts.Remove(x);
            }

            dbContext.SaveChanges();
        }
    }