public void Trigger_DoesTransition() { var w = new TestState("w"); var j = new TestState("j"); var signal = new TestSignal() { Value = true }; var signal2 = new TestSignal() { Value = false }; w.Add(signal, () => j); j.Add(signal2, () => w); var n = w.Update(0.0f); Assert.AreEqual(j, n.Peek()); Assert.AreEqual(w.enterCalled, 1); Assert.AreEqual(w.exitCalled, 1); Assert.AreEqual(signal.ResetCalled, 1); Assert.AreEqual(signal.UpdateCalled, 1); Assert.AreEqual(signal2.UpdateCalled, 0); var n2 = n.Peek().Update(0.0f); Assert.AreEqual(n.Peek(), n2.Peek()); Assert.AreEqual(j.enterCalled, 1); Assert.AreEqual(j.exitCalled, 0); Assert.AreEqual(signal2.ResetCalled, 1); Assert.AreEqual(signal.ResetCalled, 1); Assert.AreEqual(signal.UpdateCalled, 1); Assert.AreEqual(signal2.UpdateCalled, 1); }
public void NoTrigger_DoesNotTransition() { var w = new TestState("w"); var j = new TestState("j"); w.Add(new TestSignal(), () => j); var n = w.Update(0.0f); Assert.AreEqual(w, n.Peek()); Assert.AreEqual(w.enterCalled, 1); Assert.AreEqual(w.exitCalled, 0); }