public IEnumerator shouldResetObjectToInitialPositionIfCheckingOutCommitWhereItWasNotTracked() { VersionableObjectFactory factory = new VersionableObjectFactory(); VersionController testController = factory.createVersionableBox(); GameObject testObject = testController.GetActiveVersion(); testObject.transform.position = new Vector2(0.0f, 0.0f); VersionManager.Instance().Add(testController); Guid firstCommitId = VersionManager.Instance().Commit("Create a box").GetId(); yield return(null); VersionController otherTestController = factory.createVersionableBox(); GameObject otherTestObject = otherTestController.GetActiveVersion(); otherTestController.GetComponent <TransformVersionable>().SetInitialState(new Vector2(5.0f, 0.0f)); testObject.transform.position = new Vector2(-3.0f, 0.0f); otherTestObject.transform.position = new Vector2(3.0f, -2.0f); VersionManager.Instance().Add(testController); VersionManager.Instance().Add(otherTestController); VersionManager.Instance().Commit("Create another box and move the first box"); yield return(null); VersionManager.Instance().Checkout(VersionManager.Instance().GetActiveBranch(), firstCommitId); Assert.AreEqual(0.0f, testObject.transform.position.x, 0.1f); Assert.AreEqual(0.0f, testObject.transform.position.y, 0.1f); Assert.AreEqual(5.0f, otherTestObject.transform.position.x, 0.1f); Assert.AreEqual(0.0f, otherTestController.transform.position.y, 0.1f); }