public void Test_StateMachine() { var test = new TestStateMachine(); test.State = TestEnum.Test2; Assert.AreEqual(1, test.test2Count); test.IsLocked = true; test.State = TestEnum.Test1; Assert.AreEqual(0, test.test1Count); test.IsLocked = false; test.State = TestEnum.Test1; Assert.AreEqual(1, test.test1Count); test.SetStateDuration(1.0f); test.OnUpdate(new TimeSlice(1.5f)); Assert.AreEqual(test.finishedCount, 1); test.ResetStateTimer(); test.OnUpdate(new TimeSlice(.5f)); Assert.AreEqual(.5f, test.StateProgress, .001f); test.OnUpdate(new TimeSlice(.6f)); Assert.AreEqual(test.finishedCount, 2); test.State = TestEnum.Test2; Assert.AreEqual(TestEnum.Test1, test.PrevState); }