public void ControlledUpdate_EntityWithMigrationLevelAuthorization_OverrideAnyLevel() { //ARRANGE const string higherContext = "HigherUser"; var auth = new Dictionary <string, string> { { "Name", higherContext } }; string authXml = SerialisationUtils.ToXml(auth); ControlledUpdateThing thing = new ControlledUpdateThing { DbName = "Test Thing", DbPropertyAuthorization = authXml }; const string newName = "New Thing"; //ACT using (PebblecodeUpdateContexts.Migration(thing)) { thing.Name = newName; } //ASSERT Assert.AreEqual(newName, thing.Name); }
public void ControlledUpdate_EntityWithMigrationLevelAuthorization_KeepUpdateLevelUnchanged() { //ARRANGE const string previousHigherContext = "HigherUser"; var auth = new Dictionary <string, string> { { "Name", previousHigherContext } }; string authXml = SerialisationUtils.ToXml(auth); ControlledUpdateThing thing = new ControlledUpdateThing { DbName = "Test Thing", DbPropertyAuthorization = authXml }; const string newName = "New Thing"; //ACT using (PebblecodeUpdateContexts.Migration(thing)) { thing.Name = newName; } Dictionary <string, string> currentAuth = SerialisationUtils.FromXml <Dictionary <string, string> >(thing.DbPropertyAuthorization); //ASSERT Assert.IsTrue(currentAuth.ContainsKey("Name")); Assert.AreEqual(previousHigherContext, currentAuth["Name"]); }