public void Stratabase_ClearAndIsSet() { Stratabase sb = new Stratabase(1); var id = Guid.NewGuid(); StrataPropertyValueAccess <double> pi = sb.GeneratePropertyAccess <double>(id, "Pi"); Assert.IsFalse(pi.IsSet); sb.SetBaselinePropertyValue(id, "Pi", 2.9); Assert.IsTrue(pi.IsSet); Assert.AreEqual(2.9, pi.GetValue()); sb.SetOverridePropertyValue(0, id, "Pi", 3.14159); Assert.AreEqual(3.14159, pi.GetValue()); sb.ClearPropertyOverride(0, id, "Pi"); Assert.IsTrue(pi.IsSet); Assert.AreEqual(2.9, pi.GetValue()); sb.ClearPropertyBaseline(id, "Pi"); Assert.IsFalse(pi.IsSet); }
public void Stratabase_ChangeEvents() { Guid?changedItemId = null; string changedProp = null; object changedData = null; bool? changeWasRemoval = null; int? changedLayer = null; bool? changeWasBaseline = null; Stratabase sb = new Stratabase(1); sb.BaselineDataChanged += _BaselineDataChanged; sb.OverrideDataChanged += _OverrideDataChanged; Guid item = Guid.NewGuid(); sb.SetBaselinePropertyValue(item, "Test", 1); _AssertBaselineMatch(item, "Test", false, 1); sb.ClearPropertyBaseline(item, "Test"); _AssertBaselineMatch(item, "Test", true); sb.SetOverridePropertyValue(0, item, "Test", 2); _AssertOverrideMatch(0, item, "Test", false, 2); sb.ClearPropertyOverride(0, item, "Test"); _AssertOverrideMatch(0, item, "Test", true); // Test End sb.BaselineDataChanged -= _BaselineDataChanged; sb.OverrideDataChanged -= _OverrideDataChanged; void _AssertBaselineMatch(Guid id, string prop, bool wasRemoval, object data = null) { _AssertDoesMatch(id, prop, data, wasRemoval); } void _AssertOverrideMatch(int layer, Guid id, string prop, bool wasRemoval, object data = null) { _AssertDoesMatch(id, prop, data, wasRemoval, layer); } void _AssertDoesMatch(Guid expectedId, string expectedProp, object expectedData, bool expectedWasRemoval, int?expectedOverrideLayer = null) { bool expectedIsBaseline = !expectedOverrideLayer.HasValue; Assert.IsTrue(changeWasBaseline.HasValue); Assert.AreEqual(expectedIsBaseline, changeWasBaseline.Value); Assert.IsTrue(changedItemId.HasValue); Assert.AreEqual(expectedId, changedItemId.Value); Assert.AreEqual(expectedProp, changedProp); Assert.AreEqual(expectedData, changedData); Assert.IsTrue(changeWasRemoval.HasValue); Assert.AreEqual(expectedWasRemoval, changeWasRemoval.Value); if (!expectedIsBaseline) { Assert.IsTrue(changedLayer.HasValue); Assert.AreEqual(expectedOverrideLayer.Value, changedLayer.Value); } changedItemId = null; changedProp = null; changedData = null; changeWasBaseline = null; changedLayer = null; } void _BaselineDataChanged(object sender, BaselineStratumModificationEventArgs e) { changeWasBaseline = true; changedItemId = e.ItemId; changedProp = e.PropertyName; changedData = e.NewData; changeWasRemoval = e.WasPropertyRemoved; } void _OverrideDataChanged(object sender, OverrideStratumModificationEventArgs e) { changeWasBaseline = false; changedItemId = e.ItemId; changedProp = e.PropertyName; changedData = e.NewData; changedLayer = e.LayerIndex; changeWasRemoval = e.WasPropertyRemoved; } }