public void TestSetMonitorProtectionFromChange() { const int valueIndex = 2; var initialValue = InitialValues[valueIndex]; var key = initialValue.Key; var value = initialValue.Value; const string changedValue = "ChangedValue"; AssertStartup(TestMonitor); Assert.AreEqual(ChangeCount, 0); AssertValueChange(TestMonitor, key, changedValue); Assert.AreEqual(ChangeCount, 1); AssertValueChange(TestMonitor, key, value); Assert.AreEqual(ChangeCount, 2); // Setting the value to itself. TestMonitor.InnerSet[key] = value; TestMonitor.WaitOnUpdate(); Assert.AreEqual(ChangeCount, 2); Assert.IsTrue(TestMonitor.Stop()); }