Exemple #1
0
    public IEnumerator PurchaseReadyGetProductsFailThenReadyAgain()
    {
        // まずシャットダウン
        Autoya.Purchase_DEBUG_Shutdown();

        // 通信を必ず失敗するようにセット
        Autoya.forceFailHttp = true;

        // routerを再度生成する。
        Autoya.Purchase_DEBUG_Reload();

        // attemptReadyPurchaseを着火する必要があるタイミングに切り替わるのを待つ
        yield return(WaitUntil(
                         () => Autoya.Purchase_NeedAttemptReadyPurchase(),
                         () => { throw new TimeoutException("too late."); },
                         10
                         ));

        Autoya.forceFailHttp = false;

        Autoya.Purchase_AttemptReadyPurcase();

        yield return(WaitUntil(
                         () => Autoya.Purchase_IsReady(),
                         () => { throw new TimeoutException("too late."); },
                         10
                         ));
    }
Exemple #2
0
    public IEnumerator Setup()
    {
        var done = false;

        // overwrite Autoya instance for test purchase feature.
        yield return(WaitPurchaseFeatureOfAutoya(
                         () =>
        {
            done = true;
        }
                         ));

        yield return(WaitUntil(
                         () => done,
                         () => { throw new TimeoutException("failed to ready."); }
                         ));

        if (!done)
        {
            Fail("Purchase feature test setup is failed to ready.");
            yield break;
        }

        // shutdown purchase feature for get valid result from Unity IAP.
        Autoya.Purchase_DEBUG_Shutdown();

        var purchaseRunner = new GameObject("PurchaseTestRunner");

        runner = purchaseRunner.AddComponent <TestMBRunner>();

        router = new PurchaseRouter(
            iEnum =>
        {
            runner.StartCoroutine(iEnum);
        },
            () => PurchaseRouter.RequestProductInfosAs.Binary,
            productData =>
        {
            // dummy response.
            return(new ProductInfo[] {
                new ProductInfo("100_gold_coins", "100_gold_coins_iOS", true, "one hundled of coins."),
                new ProductInfo("1000_gold_coins", "1000_gold_coins_iOS", true, "one ton of coins.")
            });
        },
            givenProductId => Encoding.UTF8.GetBytes(givenProductId),
            ticketData => Encoding.UTF8.GetString((byte[])ticketData),
            () => { },
            (err, code, reason) => { },
            ticketAndReceipt => Encoding.UTF8.GetBytes(JsonUtility.ToJson(ticketAndReceipt)),
            ticketAndReceipt => Encoding.UTF8.GetBytes(JsonUtility.ToJson(ticketAndReceipt)),
            failData => Encoding.UTF8.GetBytes(JsonUtility.ToJson(failData))
            );

        yield return(WaitUntil(() => router.IsPurchaseReady(), () => { throw new TimeoutException("failed to ready."); }));
    }