public void TestLiveBasics() { var a = new Live<int>(-1) { Transactional = false }; a.Trace("a"); a.States().Take(1).Check( () => { }, results => { var state = results.Single(); Assert.AreEqual(StateStatus.Connecting, state.Status); Assert.IsFalse(state.HasChange); Assert.AreEqual(-1, state.NewValue); }); a.States().Check( () => a.SetValue(1, 1000), results => { var state = results.Single(); Assert.AreEqual(StateStatus.Connected, state.Status); Assert.IsTrue(state.HasChange); Assert.AreEqual(-1, state.OldValue); Assert.AreEqual(1000, state.LastUpdated); }); a.States().Skip(1).Take(1).Check( () => a.SetValue(2, 2000), results => { var state = results.Single(); Assert.AreEqual(StateStatus.Connected, state.Status); Assert.IsTrue(state.HasChange); Assert.AreEqual(1, state.OldValue); Assert.AreEqual(2, state.NewValue); Assert.AreEqual(2000, state.LastUpdated); }); }