public void PropertyAspectTest() { MathIdentifier propertyId = new MathIdentifier("T0_PA", "FundamentTest"); NodeProperty property = NodeProperty.Register(propertyId, typeof(string), typeof(FundamentTest)); NodeObject n = new NodeObject(); _counter = 0; n.AddHandler(property.PropertyChangedEvent, new EventHandler <NodePropertyChangedEventArgs>(OnPropertyChanged)); Assert.AreEqual(0, _counter, "X1"); Assert.IsFalse(n.IsPropertySet(property, false), "A01"); Assert.IsFalse(n.IsPropertySet(property, true), "A02"); Assert.IsFalse(n.IsPropertyDirty(property), "A03"); Assert.AreEqual("nothing", n.GetProperty(property, "nothing", false), "A04"); Assert.AreEqual("nothing", n.GetProperty(property, "nothing", true), "A05"); n.SetProperty(property, "myvalue"); Assert.AreEqual(1, _counter, "X2"); Assert.AreEqual(null, _lastPropertyChangedEventArgs.OldValue, "X2a"); Assert.AreEqual("myvalue", _lastPropertyChangedEventArgs.NewValue, "X2b"); Assert.IsTrue(n.IsPropertySet(property, false), "B01"); Assert.IsTrue(n.IsPropertySet(property, true), "B02"); Assert.IsFalse(n.IsPropertyDirty(property), "B03"); Assert.AreEqual("myvalue", n.GetProperty(property, "nothing", false), "B04"); Assert.AreEqual("myvalue", n.GetProperty(property, "nothing", true), "B05"); n.DirtyPropertyIfSet(property); Assert.AreEqual(1, _counter, "X3"); Assert.IsFalse(n.IsPropertySet(property, false), "C01"); Assert.IsTrue(n.IsPropertySet(property, true), "C02"); Assert.IsTrue(n.IsPropertyDirty(property), "C03"); Assert.AreEqual("nothing", n.GetProperty(property, "nothing", false), "C04"); Assert.AreEqual("myvalue", n.GetProperty(property, "nothing", true), "C05"); n.SetProperty(property, "newvalue"); Assert.AreEqual(2, _counter, "X4"); Assert.AreEqual("myvalue", _lastPropertyChangedEventArgs.OldValue, "X4a"); Assert.AreEqual("newvalue", _lastPropertyChangedEventArgs.NewValue, "X4b"); Assert.IsTrue(n.IsPropertySet(property, false), "D01"); Assert.IsTrue(n.IsPropertySet(property, true), "D02"); Assert.IsFalse(n.IsPropertyDirty(property), "D03"); Assert.AreEqual("newvalue", n.GetProperty(property, "nothing", false), "D04"); Assert.AreEqual("newvalue", n.GetProperty(property, "nothing", true), "D05"); n.ClearProperty(property); Assert.AreEqual(3, _counter, "X5"); Assert.AreEqual("newvalue", _lastPropertyChangedEventArgs.OldValue, "X5a"); Assert.AreEqual(null, _lastPropertyChangedEventArgs.NewValue, "X5b"); Assert.IsFalse(n.IsPropertySet(property, false), "E01"); Assert.IsFalse(n.IsPropertySet(property, true), "E02"); Assert.IsFalse(n.IsPropertyDirty(property), "E03"); Assert.AreEqual("nothing", n.GetProperty(property, "nothing", false), "E04"); Assert.AreEqual("nothing", n.GetProperty(property, "nothing", true), "E05"); }
public void PropertyTriggerTest() { MathIdentifier propertyId = new MathIdentifier("T2_PT", "FundamentTest"); NodeEvent clearEvent = NodeEvent.Register(propertyId.DerivePostfix("ClearTrigger"), typeof(EventHandler), typeof(FundamentTest)); NodeEvent clear2Event = NodeEvent.Register(propertyId.DerivePostfix("Clear2Trigger"), typeof(EventHandler), typeof(FundamentTest)); NodeEvent clear3Event = NodeEvent.Register(propertyId.DerivePostfix("Clear3Trigger"), typeof(EventHandler), typeof(FundamentTest)); NodeEvent reevaluateEvent = NodeEvent.Register(propertyId.DerivePostfix("ReevaluateTrigger"), typeof(EventHandler), typeof(FundamentTest)); NodeProperty property = NodeProperty.Register(propertyId, typeof(string), typeof(FundamentTest), new NodeEventTrigger(EventTriggerAction.Clear, clearEvent, clear2Event), new NodeEventTrigger(EventTriggerAction.Clear, clear3Event), new NodeEventTrigger(EventTriggerAction.Reevaluate, reevaluateEvent)); NodeObject n = new NodeObject(); Assert.IsFalse(n.IsPropertySet(property), "A01"); n.SetProperty(property, "test"); Assert.IsTrue(n.IsPropertySet(property), "B01"); n.RaiseEvent(clearEvent, EventArgs.Empty); Assert.IsFalse(n.IsPropertySet(property), "C01"); n.SetProperty(property, "test2"); Assert.IsTrue(n.IsPropertySet(property), "D01"); Assert.AreEqual("test2", n.GetProperty(property), "D02"); n.RaiseEvent(reevaluateEvent, EventArgs.Empty); Assert.IsTrue(n.IsPropertySet(property), "E01"); Assert.AreEqual("test2", n.GetProperty(property), "E02"); n.RaiseEvent(clear2Event, EventArgs.Empty); Assert.IsFalse(n.IsPropertySet(property), "F01"); n.SetProperty(property, "test3"); Assert.IsTrue(n.IsPropertySet(property), "G01"); n.RaiseEvent(clear3Event, EventArgs.Empty); Assert.IsFalse(n.IsPropertySet(property), "H01"); }
public void PropertyAspectTest() { MathIdentifier propertyId = new MathIdentifier("T0_PA", "FundamentTest"); NodeProperty property = NodeProperty.Register(propertyId, typeof(string), typeof(FundamentTest)); NodeObject n = new NodeObject(); _counter = 0; n.AddHandler(property.PropertyChangedEvent, new EventHandler<NodePropertyChangedEventArgs>(OnPropertyChanged)); Assert.AreEqual(0, _counter, "X1"); Assert.IsFalse(n.IsPropertySet(property, false), "A01"); Assert.IsFalse(n.IsPropertySet(property, true), "A02"); Assert.IsFalse(n.IsPropertyDirty(property), "A03"); Assert.AreEqual("nothing", n.GetProperty(property, "nothing", false), "A04"); Assert.AreEqual("nothing", n.GetProperty(property, "nothing", true), "A05"); n.SetProperty(property, "myvalue"); Assert.AreEqual(1, _counter, "X2"); Assert.AreEqual(null, _lastPropertyChangedEventArgs.OldValue, "X2a"); Assert.AreEqual("myvalue", _lastPropertyChangedEventArgs.NewValue, "X2b"); Assert.IsTrue(n.IsPropertySet(property, false), "B01"); Assert.IsTrue(n.IsPropertySet(property, true), "B02"); Assert.IsFalse(n.IsPropertyDirty(property), "B03"); Assert.AreEqual("myvalue", n.GetProperty(property, "nothing", false), "B04"); Assert.AreEqual("myvalue", n.GetProperty(property, "nothing", true), "B05"); n.DirtyPropertyIfSet(property); Assert.AreEqual(1, _counter, "X3"); Assert.IsFalse(n.IsPropertySet(property, false), "C01"); Assert.IsTrue(n.IsPropertySet(property, true), "C02"); Assert.IsTrue(n.IsPropertyDirty(property), "C03"); Assert.AreEqual("nothing", n.GetProperty(property, "nothing", false), "C04"); Assert.AreEqual("myvalue", n.GetProperty(property, "nothing", true), "C05"); n.SetProperty(property, "newvalue"); Assert.AreEqual(2, _counter, "X4"); Assert.AreEqual("myvalue", _lastPropertyChangedEventArgs.OldValue, "X4a"); Assert.AreEqual("newvalue", _lastPropertyChangedEventArgs.NewValue, "X4b"); Assert.IsTrue(n.IsPropertySet(property, false), "D01"); Assert.IsTrue(n.IsPropertySet(property, true), "D02"); Assert.IsFalse(n.IsPropertyDirty(property), "D03"); Assert.AreEqual("newvalue", n.GetProperty(property, "nothing", false), "D04"); Assert.AreEqual("newvalue", n.GetProperty(property, "nothing", true), "D05"); n.ClearProperty(property); Assert.AreEqual(3, _counter, "X5"); Assert.AreEqual("newvalue", _lastPropertyChangedEventArgs.OldValue, "X5a"); Assert.AreEqual(null, _lastPropertyChangedEventArgs.NewValue, "X5b"); Assert.IsFalse(n.IsPropertySet(property, false), "E01"); Assert.IsFalse(n.IsPropertySet(property, true), "E02"); Assert.IsFalse(n.IsPropertyDirty(property), "E03"); Assert.AreEqual("nothing", n.GetProperty(property, "nothing", false), "E04"); Assert.AreEqual("nothing", n.GetProperty(property, "nothing", true), "E05"); }