コード例 #1
0
    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);
    }