private void Awake()
 {
     buildingRange = GetComponentInParent <BuildingRange>();
 }
Beispiel #2
0
        // TODO: コルーチンにする
        private void CreateTestData()
        {
            List <Revision> testData = new List <Revision>()
            {
                new Revision(1, "このコミットは成功しています"),
                new Revision(2, "機能Aを実装" + Environment.NewLine + "* ビルドエラーがあるはず"),
                new Revision(3, "機能Bを実装" + Environment.NewLine + "* テスト通過済み"),
                new Revision(4, "機能Aのビルドエラーを修正しました"),
                new Revision(5, "機能Cの改良" + Environment.NewLine + "* テスト通過済み"),
                new Revision(6, "hoge" + Environment.NewLine + "fuga" + Environment.NewLine + "piyo"),
                new Revision(7, "ほげほげふがふがほげほげふがふがほげほげふがふが長いコミットメッセージほげほげふがふがほげほげふがふがほげほげふがふが"),
            };

            list = testData;

            BuildingRange = MakeRange(null, null);
            SuccessRange  = MakeRange(null, null);
            FailureRange  = MakeRange(null, null);
            PendingRange  = MakeRange(null, null);

            /////////////////////////////////////////
            // ◆1回目
            //  - 1回目のビルド(until rev.1)は 成功

            // [ビルド待ち] 1
            RecieveCommitNotification(1);
            Debug.Assert(PendingRange.GetSequence().SequenceEqual(Enumerable.Range(1, 1)));
            Debug.Assert(BuildingRange.GetSequence().SequenceEqual(Enumerable.Range(0, 0)));
            Debug.Assert(SuccessRange.GetSequence().SequenceEqual(Enumerable.Range(0, 0)));
            Debug.Assert(FailureRange.GetSequence().SequenceEqual(Enumerable.Range(0, 0)));

            // [ビルド中] 1
            RecieveNewBuildNotification(1);
            Debug.Assert(PendingRange.GetSequence().SequenceEqual(Enumerable.Range(0, 0)));
            Debug.Assert(BuildingRange.GetSequence().SequenceEqual(Enumerable.Range(1, 1)));
            Debug.Assert(SuccessRange.GetSequence().SequenceEqual(Enumerable.Range(0, 0)));
            Debug.Assert(FailureRange.GetSequence().SequenceEqual(Enumerable.Range(0, 0)));

            // [成功] 1
            RecieveBuildResult(1, BuildState.Success);
            Debug.Assert(PendingRange.GetSequence().SequenceEqual(Enumerable.Range(0, 0)));
            Debug.Assert(BuildingRange.GetSequence().SequenceEqual(Enumerable.Range(0, 0)));
            Debug.Assert(SuccessRange.GetSequence().SequenceEqual(Enumerable.Range(1, 1)));
            Debug.Assert(FailureRange.GetSequence().SequenceEqual(Enumerable.Range(0, 0)));

            /////////////////////////////////////////
            // ◆2回目
            //  - 2回目のビルド(until rev.3)は エラー

            // [成功] 1 / [ビルド待ち] 2,3
            RecieveCommitNotification(2);
            RecieveCommitNotification(3);
            Debug.Assert(PendingRange.GetSequence().SequenceEqual(Enumerable.Range(2, 3)));
            Debug.Assert(BuildingRange.GetSequence().SequenceEqual(Enumerable.Range(0, 0)));
            Debug.Assert(SuccessRange.GetSequence().SequenceEqual(Enumerable.Range(1, 1)));
            Debug.Assert(FailureRange.GetSequence().SequenceEqual(Enumerable.Range(0, 0)));

            // [成功] 1 / [ビルド中] 2,3
            RecieveNewBuildNotification(3);
            Debug.Assert(PendingRange.GetSequence().SequenceEqual(Enumerable.Range(0, 0)));
            Debug.Assert(BuildingRange.GetSequence().SequenceEqual(Enumerable.Range(2, 3)));
            Debug.Assert(SuccessRange.GetSequence().SequenceEqual(Enumerable.Range(1, 1)));
            Debug.Assert(FailureRange.GetSequence().SequenceEqual(Enumerable.Range(0, 0)));

            // [成功] 1 / [失敗] 2,3
            RecieveBuildResult(3, BuildState.Failure);
            Debug.Assert(PendingRange.GetSequence().SequenceEqual(Enumerable.Range(0, 0)));
            Debug.Assert(BuildingRange.GetSequence().SequenceEqual(Enumerable.Range(0, 0)));
            Debug.Assert(SuccessRange.GetSequence().SequenceEqual(Enumerable.Range(1, 1)));
            Debug.Assert(FailureRange.GetSequence().SequenceEqual(Enumerable.Range(2, 3)));

            /////////////////////////////////////////
            // ◆3回目
            //  - 3回目のビルド(until rev.5)で エラー修正
            //  - 3回目のビルド中に、rev.6 + rev.7 が コミットされた

            // [成功] 1 / [失敗] 2,3 / [ビルド待ち] 4,5
            RecieveCommitNotification(4);
            RecieveCommitNotification(5);
            Debug.Assert(PendingRange.GetSequence().SequenceEqual(Enumerable.Range(4, 5)));
            Debug.Assert(BuildingRange.GetSequence().SequenceEqual(Enumerable.Range(0, 0)));
            Debug.Assert(SuccessRange.GetSequence().SequenceEqual(Enumerable.Range(1, 1)));
            Debug.Assert(FailureRange.GetSequence().SequenceEqual(Enumerable.Range(2, 3)));

            // [成功] 1 / [失敗] 2,3 / [ビルド中] 4,5
            RecieveNewBuildNotification(5);
            Debug.Assert(PendingRange.GetSequence().SequenceEqual(Enumerable.Range(0, 0)));
            Debug.Assert(BuildingRange.GetSequence().SequenceEqual(Enumerable.Range(4, 5)));
            Debug.Assert(SuccessRange.GetSequence().SequenceEqual(Enumerable.Range(1, 1)));
            Debug.Assert(FailureRange.GetSequence().SequenceEqual(Enumerable.Range(2, 3)));

            // [成功] 1 / [失敗] 2,3 / [ビルド中] 4,5 / [ビルド待ち] 6,7
            RecieveCommitNotification(6);
            RecieveCommitNotification(7);
            Debug.Assert(PendingRange.GetSequence().SequenceEqual(Enumerable.Range(6, 7)));
            Debug.Assert(BuildingRange.GetSequence().SequenceEqual(Enumerable.Range(4, 5)));
            Debug.Assert(SuccessRange.GetSequence().SequenceEqual(Enumerable.Range(1, 1)));
            Debug.Assert(FailureRange.GetSequence().SequenceEqual(Enumerable.Range(2, 3)));

#if false
            // [成功] 1,(2),(3),4,5 / [ビルド待ち] 6,7
            RecieveBuildResult(5, BuildState.Success);
            Debug.Assert(PendingRange.GetSequence().SequenceEqual(Enumerable.Range(6, 7)));
            Debug.Assert(BuildingRange.GetSequence().SequenceEqual(Enumerable.Range(0, 0)));
            Debug.Assert(SuccessRange.GetSequence().SequenceEqual(Enumerable.Range(1, 5)));
            Debug.Assert(FailureRange.GetSequence().SequenceEqual(Enumerable.Range(0, 0)));
#endif
        }