Exemplo n.º 1
0
        public void Delete_Operations_Can_Be_Batched()
        {
            var repo = new InMemoryRepository <Order, int>();

            repo.Add(new Order {
                Name = "Order 1"
            });
            repo.Add(new Order {
                Name = "Order 2"
            });

            repo.GetAll().Count().ShouldBe(2);

            using (var batch = repo.BeginBatch())
            {
                foreach (var order in repo.GetAll().ToList())
                {
                    batch.Delete(order);
                }

                repo.GetAll().Count().ShouldBe(2);
                batch.Commit();
            }

            repo.GetAll().Count().ShouldBe(0);
        }
Exemplo n.º 2
0
        public void Update_Operations_Can_Be_Batched()
        {
            var repo = new InMemoryRepository <Order, int>();

            repo.Add(new Order {
                Name = "Order 1"
            });
            repo.Add(new Order {
                Name = "Order 2"
            });
            repo.GetAll().Count().ShouldBe(2);

            using (var batch = repo.BeginBatch())
            {
                foreach (var order in repo.GetAll())
                {
                    order.Name = "Updated";
                    batch.Update(order);
                }

                repo.GetAll().Count().ShouldBe(2);
                repo.GetAll().Count(x => x.Name.StartsWith("Update")).ShouldBe(0);

                batch.Commit();
            }

            repo.GetAll().Count().ShouldBe(2);
            repo.GetAll().Count(x => x.Name.StartsWith("Update")).ShouldBe(2);
        }
Exemplo n.º 3
0
        public void Repository_Should_BeginBatch()
        {
            var repository = new InMemoryRepository <Contact, Int32>();

            using (var batch = repository.BeginBatch())
            {
                batch.Add(new Contact {
                    Name = "Test User 1"
                });

                var result = repository.GetAll();
                result.Count().ShouldEqual(0); // shouldn't have really been added yet

                batch.Add(new Contact {
                    Name = "Test User 2"
                });

                result = repository.GetAll();
                result.Count().ShouldEqual(0); // shouldn't have really been added yet

                batch.Commit();
            }

            repository.GetAll().Count().ShouldEqual(2);
        }
Exemplo n.º 4
0
        public void Repository_Provides_New_Batch()
        {
            var            repo  = new InMemoryRepository <Order, int>();
            IBatch <Order> batch = repo.BeginBatch();

            batch.ShouldNotBeNull();
        }
Exemplo n.º 5
0
 public void Batch_Is_IDisposable_Type()
 {
     var repo = new InMemoryRepository<Order, int>();
     using (var batch = repo.BeginBatch())
     {
         batch.ShouldNotBeNull();
     }
 }
Exemplo n.º 6
0
        public void Batch_Default_Should_Contain_No_Actions()
        {
            var repository = new InMemoryRepository <Contact, Int32>();

            using (var batch = repository.BeginBatch())
            {
                batch.BatchActions.Count.ShouldEqual(0);
            }
        }
Exemplo n.º 7
0
        public void Batch_Is_IDisposable_Type()
        {
            var repo = new InMemoryRepository <Order, int>();

            using (var batch = repo.BeginBatch())
            {
                batch.ShouldNotBeNull();
            }
        }
Exemplo n.º 8
0
        public void Batch_Default_Should_Contain_No_Actions()
        {
            var repository = new InMemoryRepository<Contact, Int32>();

            using (var batch = repository.BeginBatch())
            {
                batch.BatchActions.Count.ShouldEqual(0);
            }
        }
Exemplo n.º 9
0
        public void Batch_Rollback_Should_Reset_Actions()
        {
            var repository = new InMemoryRepository<Contact, Int32>();

            using (var batch = repository.BeginBatch())
            {
                batch.Add(new Contact());
                batch.Rollback();
                batch.BatchActions.Count.ShouldEqual(0);
            }
        }
Exemplo n.º 10
0
        public void Batch_Rollback_Should_Reset_Actions()
        {
            var repository = new InMemoryRepository <Contact, Int32>();

            using (var batch = repository.BeginBatch())
            {
                batch.Add(new Contact());
                batch.Rollback();
                batch.BatchActions.Count.ShouldEqual(0);
            }
        }
Exemplo n.º 11
0
        public void Batch_Update_Should_Queue_Delete_Action()
        {
            var repository = new InMemoryRepository <Contact, Int32>();

            using (var batch = repository.BeginBatch())
            {
                var contact = new Contact();
                batch.Delete(contact);
                batch.BatchActions.FirstOrDefault().Item.ShouldEqual(contact);
                batch.BatchActions.FirstOrDefault().Action.ShouldEqual(BatchAction.Delete);
            }
        }
Exemplo n.º 12
0
        public void Batch_Can_Be_Disregarded()
        {
            var repo = new InMemoryRepository<Order, int>();

            using (var batch = repo.BeginBatch())
            {
                batch.Add(new Order { Name = "Order 1" });
                batch.Add(new Order { Name = "Order 2" });
            }

            repo.GetAll().Count().ShouldEqual(0);
        }
Exemplo n.º 13
0
        public void Batch_Update_Should_Queue_Delete_Action()
        {
            var repository = new InMemoryRepository<Contact, Int32>();

            using (var batch = repository.BeginBatch())
            {
                var contact = new Contact();
                batch.Delete(contact);
                batch.BatchActions.FirstOrDefault().Item.ShouldEqual(contact);
                batch.BatchActions.FirstOrDefault().Action.ShouldEqual(BatchAction.Delete);
            }
        }
Exemplo n.º 14
0
        public void Batch_Add_Should_Queue_Add_Action()
        {
            var repository = new InMemoryRepository <Contact, Int32>();

            using (var batch = repository.BeginBatch())
            {
                var contact = new Contact();
                batch.Add(contact);
                batch.BatchActions.FirstOrDefault().Item.ShouldBe(contact);
                batch.BatchActions.FirstOrDefault().Action.ShouldBe(BatchAction.Add);
            }
        }
Exemplo n.º 15
0
        public void Add_Operations_Can_Be_Batched()
        {
            var repo = new InMemoryRepository<Order, int>();

            using (var batch = repo.BeginBatch())
            {
                batch.Add(new Order { Name = "Order 1" });
                batch.Add(new Order { Name = "Order 2" });
                repo.GetAll().Count().ShouldEqual(0);

                batch.Commit();
            }

            repo.GetAll().Count().ShouldEqual(2);
        }
Exemplo n.º 16
0
        public void Batch_Can_Be_Disregarded()
        {
            var repo = new InMemoryRepository <Order, int>();

            using (var batch = repo.BeginBatch())
            {
                batch.Add(new Order {
                    Name = "Order 1"
                });
                batch.Add(new Order {
                    Name = "Order 2"
                });
            }

            repo.GetAll().Count().ShouldBe(0);
        }
Exemplo n.º 17
0
        public void Batch_Can_Be_Rolled_Back()
        {
            var repo = new InMemoryRepository <Order, int>();

            using (var batch = repo.BeginBatch())
            {
                batch.Add(new Order {
                    Name = "Order 1"
                });
                batch.Add(new Order {
                    Name = "Order 2"
                });
                repo.GetAll().Count().ShouldBe(0);
                batch.Rollback();
                batch.Commit();
            }

            repo.GetAll().Count().ShouldBe(0);
        }
Exemplo n.º 18
0
        public void Add_Operations_Can_Be_Batched()
        {
            var repo = new InMemoryRepository <Order, int>();

            using (var batch = repo.BeginBatch())
            {
                batch.Add(new Order {
                    Name = "Order 1"
                });
                batch.Add(new Order {
                    Name = "Order 2"
                });
                repo.GetAll().Count().ShouldEqual(0);

                batch.Commit();
            }

            repo.GetAll().Count().ShouldEqual(2);
        }
Exemplo n.º 19
0
        public void Repository_Should_BeginBatch()
        {
            var repository = new InMemoryRepository<Contact, Int32>();

            using (var batch = repository.BeginBatch())
            {
                batch.Add(new Contact { Name = "Test User 1" });

                var result = repository.GetAll();
                result.Count().ShouldEqual(0); // shouldn't have really been added yet

                batch.Add(new Contact { Name = "Test User 2" });

                result = repository.GetAll();
                result.Count().ShouldEqual(0); // shouldn't have really been added yet

                batch.Commit();
            }

            repository.GetAll().Count().ShouldEqual(2);
        }
Exemplo n.º 20
0
 public void Repository_Provides_New_Batch()
 {
     var repo = new InMemoryRepository<Order, int>();
     IBatch<Order> batch = repo.BeginBatch();
     batch.ShouldNotBeNull();
 }
Exemplo n.º 21
0
        public void Update_Operations_Can_Be_Batched()
        {
            var repo = new InMemoryRepository<Order, int>();
            repo.Add(new Order { Name = "Order 1" });
            repo.Add(new Order { Name = "Order 2" });
            repo.GetAll().Count().ShouldEqual(2);

            using (var batch = repo.BeginBatch())
            {
                foreach (var order in repo.GetAll())
                {
                    order.Name = "Updated";
                    batch.Update(order);
                }

                repo.GetAll().Count().ShouldEqual(2);
                repo.GetAll().Count(x => x.Name.StartsWith("Update")).ShouldEqual(0);

                batch.Commit();
            }

            repo.GetAll().Count().ShouldEqual(2);
            repo.GetAll().Count(x => x.Name.StartsWith("Update")).ShouldEqual(2);
        }