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); }
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); }
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); }
public void Repository_Provides_New_Batch() { var repo = new InMemoryRepository <Order, int>(); IBatch <Order> batch = repo.BeginBatch(); batch.ShouldNotBeNull(); }
public void Batch_Is_IDisposable_Type() { var repo = new InMemoryRepository<Order, int>(); using (var batch = repo.BeginBatch()) { batch.ShouldNotBeNull(); } }
public void Batch_Default_Should_Contain_No_Actions() { var repository = new InMemoryRepository <Contact, Int32>(); using (var batch = repository.BeginBatch()) { batch.BatchActions.Count.ShouldEqual(0); } }
public void Batch_Is_IDisposable_Type() { var repo = new InMemoryRepository <Order, int>(); using (var batch = repo.BeginBatch()) { batch.ShouldNotBeNull(); } }
public void Batch_Default_Should_Contain_No_Actions() { var repository = new InMemoryRepository<Contact, Int32>(); using (var batch = repository.BeginBatch()) { batch.BatchActions.Count.ShouldEqual(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); } }
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); } }
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); } }
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); }
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); } }
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); } }
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); }
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); }
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); }
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); }
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); }
public void Repository_Provides_New_Batch() { var repo = new InMemoryRepository<Order, int>(); IBatch<Order> batch = repo.BeginBatch(); batch.ShouldNotBeNull(); }
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); }