public void EditingConcurrent() { var entityA = GetItemUpdated(2, "A"); var entityB = GetItemUpdated(2, "B"); using (var db = new WisperoDbContext()) { var dataService = new KnowledgeBaseData(db); Assert.IsTrue(entityA.RowVersion.SequenceEqual(entityB.RowVersion)); //Updating EntityA. dataService.Edit(entityA); dataService.CommitChanges(); var recentlyUpdated = dataService.Get(2); Assert.IsNotNull(recentlyUpdated.Query); Assert.IsTrue(recentlyUpdated.Query == entityA.Query); //Sleep to simulate a delay between updates. System.Threading.Thread.Sleep(10); //Updating EntityB. //It should failed because the version kept memory has changes on the source because of EntityA. try { dataService.Edit(entityB); dataService.CommitChanges(); Assert.Fail(); } catch (DbUpdateConcurrencyException) { } } }
public void Deleting() { using (var db = new WisperoDbContext()) { var dataService = new KnowledgeBaseData(db); dataService.Delete(1); dataService.CommitChanges(); var recentlyAdded = dataService.Get(1); Assert.IsNull(recentlyAdded); } }
public void Adding() { using (var db = new WisperoDbContext()) { var dataService = new KnowledgeBaseData(db); dataService.Add(new KnowledgeBaseItem() { Answer = "Answer3", Query = "Question3", Tags = "Tag4, Tag1", LastUpdateOn = DateTime.Now }); dataService.CommitChanges(); var recentlyAdded = dataService.GetByFilter(x => x.Answer == "Answer3"); Assert.IsNotNull(recentlyAdded); Assert.IsTrue(recentlyAdded.Count > 0); Assert.IsTrue(recentlyAdded[0].Query == "Question3"); } }
public void Editing() { using (var db = new WisperoDbContext()) { var dataService = new KnowledgeBaseData(db); var currentEntity = dataService.Get(2); //Making updates currentEntity.Answer = "NewAnswer2"; currentEntity.Query = "NewQuery2"; currentEntity.LastUpdateOn = DateTime.Now; currentEntity.Tags = "NewTags"; dataService.Edit(currentEntity); dataService.CommitChanges(); var recentlyUpdated = dataService.Get(2); Assert.IsNotNull(recentlyUpdated); Assert.IsTrue(recentlyUpdated.Query == "NewQuery2"); } }