Пример #1
0
            public IEnumerator 캔버스매니져의_ShowMultiple함수는_인스턴스여러개를_띄울수있습니다()
            {
                Debug.Log(nameof(캔버스매니져의_ShowMultiple함수는_인스턴스여러개를_띄울수있습니다).ConvertRichText_SetColor(EColor_ForRichText.red));

                CanvasManager_Example.DoDestroy_Manager(true);
                Assert.AreEqual(UICommandHandle <Canvas_ForTest> .g_iInstanceCount, 0);

                int iRandomCountMax = 0;
                int iTestCase       = 3;

                for (int i = 0; i < iTestCase; i++)
                {
                    int iMultipleOpenCount = Random.Range(10, 20);
                    iRandomCountMax += iMultipleOpenCount;

                    yield return(MultiplePopup_ShowHideTest(iMultipleOpenCount, 2));

                    Debug.LogWarning("------------------------------------");
                    Debug.LogWarning(string.Format("Test Count : {0} // Test Cycle : {1} / {2}", iMultipleOpenCount, i + 1, iTestCase));
                    Debug.LogWarning("------------------------------------");

                    yield return(null); // Handle이 초기화될때까지 기다린다.

                    Assert.AreEqual(UICommandHandle <Canvas_ForTest> .g_iInstanceCount, 0);
                }

                yield break;
            }
Пример #2
0
            public IEnumerator ICanvas_확장함수_테스트()
            {
                Debug.LogWarning(nameof(ICanvas_확장함수_테스트).ConvertRichText_SetColor(EColor_ForRichText.red));

                CanvasManager_Example.DoDestroy_Manager(true);

                iWaitFrameCount = Random.Range(3, 6);
                // 매니져를 통한 팝업 켜기
                var pHandle = CanvasManager_Example.DoShow <Canvas_ForTest>(CanvasManager_Example.ECanvasName.Single).
                              Set_OnBeforeShow((Canvas_ForTest pPopup) => pPopup.DoSetWaitFrameCount(iWaitFrameCount));

                yield return(null); // 핸들을 통해 UI Object를 얻어올때는 인스턴스가 Null일시 한프레임 기다려야 합니다.

                while (pHandle.pUIObject.bIsPlay_Coroutine == false)
                {
                    if (CanvasManager_Example.const_bIsDebug)
                    {
                        Debug.Log("Wait..");
                    }
                    yield return(null);
                }
                Assert.IsTrue(pHandle.pUIObject.bIsPlay_Coroutine);

                // 팝업의 코루틴 대기
                int iWaitFrame = iWaitFrameCount;

                while (pHandle.pUIObject.bIsPlay_Coroutine)
                {
                    iWaitFrame--;
                    yield return(null);
                }

                Assert.IsFalse(pHandle.pUIObject.bIsPlay_Coroutine);
                // 팝업에게 바로 Hide 명령
                pHandle.pUIObject.DoHide_Coroutine();
                while (pHandle.pUIObject.bIsPlay_Coroutine == false)
                {
                    if (CanvasManager_Example.const_bIsDebug)
                    {
                        Debug.Log("Wait..");
                    }
                    yield return(null);
                }

                Assert.IsTrue(pHandle.pUIObject.bIsPlay_Coroutine);

                // 팝업의 코루틴 대기
                iWaitFrame = iWaitFrameCount;
                while (pHandle.pUIObject.bIsPlay_Coroutine)
                {
                    iWaitFrame--;
                    yield return(null);
                }

                Assert.LessOrEqual(iWaitFrame, 1);
                Assert.IsFalse(pHandle.pUIObject.bIsPlay_Coroutine);
            }
Пример #3
0
            public IEnumerator ICanvas_Basic_Test()
            {
                Debug.LogWarning(nameof(ICanvas_Basic_Test).ConvertRichText_SetColor(EColor_ForRichText.red));

                CanvasManager_Example.DoDestroy_Manager(true);

                iWaitFrameCount = Random.Range(3, 6);
                // 매니져를 통한 팝업 켜기
                var pHandle = CanvasManager_Example.DoShow <Canvas_ForTest>(CanvasManager_Example.ECanvasName.Single).
                              Set_OnBeforeShow((Canvas_ForTest pPopup) => pPopup.DoSetWaitFrameCount(iWaitFrameCount));

                yield return(null); // 핸들을 통해 UI Object를 얻어올때는 인스턴스가 Null일시 한프레임 기다려야 합니다.

                while (pHandle.pUIObject.bIsPlay_Coroutine == false)
                {
                    if (CanvasManager_Example.const_bIsDebug)
                    {
                        Debug.Log("Wait..");
                    }
                    yield return(null);
                }

                // OnShow 코루틴 대기
                var pTestTarget = pHandle.pUIObject;

                Assert.IsTrue(pTestTarget.bIsPlay_Coroutine);

                // 팝업에서 세팅한 WaitFrameCount와 여기서 세팅한 WaitFrameCount를 일치시키고
                // 똑같이 기다립니다.
                int iWaitFrame = iWaitFrameCount;

                while (pTestTarget.bIsPlay_Coroutine)
                {
                    iWaitFrame--;
                    yield return(null);
                }

                // 기다린 Frame Count가 거의 일치합니다.
                Assert.LessOrEqual(iWaitFrame, 1);
                Assert.IsFalse(pTestTarget.bIsPlay_Coroutine);
            }