public void FailsForDeleteDisallowed() { var item = new SmartEntity(_db) { Name = "Bob" }; item.SetAccessLevel(AccessLevel.Insert); _db.Add(item); Assert.Equal(1, _db.SaveChanges()); Assert.Equal(UpdateResult.FailedDeleteDisallowed, item.DeleteFromDatabase()); item.SetAccessLevel(AccessLevel.FullAccess); Assert.Equal(UpdateResult.Success, item.DeleteFromDatabase()); }
public void DeleteFromDatabase() { var item = new SmartEntity(_db) { Name = "Bob" }; _db.Add(item); Assert.Equal(1, _db.SaveChanges()); Assert.Single(_db.SmartEntities); Assert.Equal(UpdateResult.Success, item.DeleteFromDatabase()); Assert.Empty(_db.SmartEntities); }
public void DeleteSucceedsForConcurrentDelete() { var item = new SmartEntity(_db) { Name = "Bob" }; Assert.Equal(UpdateResult.Success, item.SaveToDatabase()); // removed in another thread. _db.Remove(item); Assert.Equal(1, _db.SaveChanges()); // the entity is still gone, even if deleted in another thread. Assert.Equal(UpdateResult.SuccessNoChanges, item.DeleteFromDatabase()); }
public void DeleteFailsForConcurrentUpdate() { var item = new SmartEntity(_db) { Name = "Bob" }; Assert.Equal(UpdateResult.Success, item.SaveToDatabase()); var v = item.RowVersion; item.Name = "Roy"; Assert.Equal(UpdateResult.Success, item.SaveToDatabase()); item.RowVersion = v; item.Name = "Jon"; Assert.Equal(UpdateResult.FailedUpdatedByOther, item.DeleteFromDatabase()); }