Пример #1
0
    public void ExecuteCallbackWhenExecuteScriptTest_GET_Count()
    {
        NCMBScript script = new NCMBScript("testScript_GET.js", NCMBScript.MethodType.GET, _endPoint);
        Dictionary <string, object> query = new Dictionary <string, object> ()
        {
            { "name", "tarou" }, { "message", "hello" }
        };

        script.ExecuteAsync(null, null, query, (byte[] result, NCMBException e) => {
            if (e == null)
            {
                string cmd = System.Text.Encoding.UTF8.GetString(result);
                cmd        = cmd.TrimEnd('\0');          //終端文字の削除
                Assert.AreEqual("count:2", cmd);
            }
            else
            {
                Assert.Fail(e.ErrorMessage);
            }
            _callbackFlag = true;
        });

        AwaitAsync();
        Assert.True(_callbackFlag);
    }
Пример #2
0
    public IEnumerator ExecuteCallbackWhenExecuteScriptTest_PUT()
    {
        NCMBScript script = new NCMBScript("testScript_PUT.js", NCMBScript.MethodType.PUT, _endPoint);
        Dictionary <string, object> body = new Dictionary <string, object> ()
        {
            { "name", "tarou" }
        };

        script.ExecuteAsync(null, body, null, (byte[] result, NCMBException e) => {
            if (e == null)
            {
                string cmd = System.Text.Encoding.UTF8.GetString(result);
                cmd        = cmd.TrimEnd('\0');          //終端文字の削除
                Assert.AreEqual("hello,tarou", cmd);
            }
            else
            {
                Assert.Fail(e.ErrorMessage);
            }
            NCMBTestSettings.CallbackFlag = true;
        });

        yield return(NCMBTestSettings.AwaitAsync());

        Assert.True(NCMBTestSettings.CallbackFlag);
    }
Пример #3
0
    public IEnumerator ExecuteCallbackWhenExecuteScriptObjectTest_GET()
    {
        string[]   strArray = { "tarou1", "tarou2" };
        NCMBScript script   = new NCMBScript("testScriptObject_GET.js", NCMBScript.MethodType.GET, _endPoint);
        Dictionary <string, object> query = new Dictionary <string, object> ()
        {
            { "name", strArray }
        };

        script.ExecuteAsync(null, null, query, (byte[] result, NCMBException e) => {
            if (e == null)
            {
                string cmd = System.Text.Encoding.UTF8.GetString(result);
                cmd        = cmd.TrimEnd('\0');          //終端文字の削除
                Assert.AreEqual("{\"name\":\"[\\\"tarou1\\\",\\\"tarou2\\\"]\"}", cmd);
            }
            else
            {
                Assert.Fail(e.ErrorMessage);
            }
            NCMBTestSettings.CallbackFlag = true;
        });

        yield return(NCMBTestSettings.AwaitAsync());

        Assert.True(NCMBTestSettings.CallbackFlag);
    }
Пример #4
0
    public void ExecuteCallbackWhenExecuteScriptTest_Header()
    {
        NCMBScript script = new NCMBScript("testScript_Header.js", NCMBScript.MethodType.POST, _endPoint);
        Dictionary <string, object> header = new Dictionary <string, object> ()
        {
            { "key", "value" }
        };

        script.ExecuteAsync(header, null, null, (byte[] result, NCMBException e) => {
            if (e == null)
            {
                string cmd = System.Text.Encoding.UTF8.GetString(result);
                cmd        = cmd.TrimEnd('\0');          //終端文字の削除
                Assert.AreEqual("value", cmd);
            }
            else
            {
                Assert.Fail(e.ErrorMessage);
            }
            NCMBTestSettings.CallbackFlag = true;
        });

        NCMBTestSettings.AwaitAsync();
        Assert.True(NCMBTestSettings.CallbackFlag);
    }
Пример #5
0
    public void ScriptGet()
    {
        NCMBScript script = new NCMBScript("script_get.js", NCMBScript.MethodType.GET);

        script.ExecuteAsync(null, null, null, (byte[] result, NCMBException e) => {
            if (e != null)
            {
                // 失敗
                Debug.LogError(e);
            }
            else
            {
                // 成功
                Debug.Log("Script get run successful ");
            }
        });
    }
        /// <summary>
        /// 非同期処理でスクリプトの実行を行います。
        /// </summary>
        /// <param name="header">リクエストヘッダー.</param>
        /// <param name="body">リクエストボディ</param>
        /// <param name="query">クエリパラメーター</param>
        public static Task <byte[]> ExecuteTaskAsync(this NCMBScript script,
                                                     IDictionary <string, object> header, IDictionary <string, object> body, IDictionary <string, object> query)
        {
            var tcs = new TaskCompletionSource <byte[]>();

            script.ExecuteAsync(header, body, query, (data, error) =>
            {
                if (error != null)
                {
                    tcs.SetException(error);
                }
                else
                {
                    tcs.SetResult(data);
                }
            });
            return(tcs.Task);
        }
Пример #7
0
    public void ExecuteCallbackWhenExecuteScriptTest_Error()
    {
        NCMBScript script = new NCMBScript("testScript_Error.js", NCMBScript.MethodType.GET, _endPoint);

        script.ExecuteAsync(null, null, null, (byte[] result, NCMBException e) => {
            if (e == null)
            {
                Assert.Fail("Always test case to fail.");
            }
            else
            {
                Assert.AreEqual("name must not be null.", e.ErrorMessage);
                Assert.AreEqual(HttpStatusCode.BadRequest.ToString(), e.ErrorCode);
            }
            _callbackFlag = true;
        });

        AwaitAsync();
        Assert.True(_callbackFlag);
    }
Пример #8
0
    public void ExecuteCallbackWhenExecuteScriptTest_DELETE()
    {
        NCMBScript script = new NCMBScript("testScript_DELETE.js", NCMBScript.MethodType.DELETE, _endPoint);

        script.ExecuteAsync(null, null, null, (byte[] result, NCMBException e) => {
            if (e == null)
            {
                string cmd = System.Text.Encoding.UTF8.GetString(result);
                cmd        = cmd.TrimEnd('\0');          //終端文字の削除
                Assert.AreEqual("", cmd);
            }
            else
            {
                Assert.Fail(e.ErrorMessage);
            }
            _callbackFlag = true;
        });

        AwaitAsync();
        Assert.True(_callbackFlag);
    }
Пример #9
0
    public void ScriptPost()
    {
        NCMBScript script = new NCMBScript("script_post.js", NCMBScript.MethodType.POST);
        Dictionary <string, object> body = new Dictionary <string, object>()
        {
            { "message", DateTime.Now.ToString("yyyy_MM_dd_HHmmss") }
        };

        script.ExecuteAsync(null, body, null, (byte[] result, NCMBException e) => {
            if (e != null)
            {
                // 失敗
                Debug.LogError(e);
            }
            else
            {
                lastPostObjectId = JsonUtility.FromJson <TestClass>(System.Text.Encoding.UTF8.GetString(result)).objectId;

                // 成功
                Debug.Log("Script post run successful ");
            }
        });
    }
        /// <summary>
        /// 非同期処理でスクリプトの実行を行います。
        /// </summary>
        /// <param name="header">リクエストヘッダー.</param>
        /// <param name="body">リクエストボディ</param>
        /// <param name="query">クエリパラメーター</param>
        /// <returns>結果</returns>
        public static IObservable <byte[]> ExecuteAsyncAsStream(this NCMBScript script,
                                                                IDictionary <string, object> header, IDictionary <string, object> body, IDictionary <string, object> query)
        {
            return(Observable.Create <byte[]>(observer =>
            {
                var gate = new object();
                var isDisposed = false;
                script.ExecuteAsync(header, body, query, (data, error) =>
                {
                    lock (gate)
                    {
                        if (isDisposed)
                        {
                            return;
                        }

                        if (error == null)
                        {
                            observer.OnNext(data);
                            observer.OnCompleted();
                        }
                        else
                        {
                            observer.OnError(error);
                        }
                    }
                });

                return Disposable.Create(() =>
                {
                    lock (gate)
                    {
                        isDisposed = true;
                    }
                });
            }));
        }
Пример #11
0
 public void ScriptDelete()
 {
     if (lastPostObjectId != null)
     {
         NCMBScript script = new NCMBScript("script_delete.js", NCMBScript.MethodType.DELETE);
         Dictionary <string, object> query = new Dictionary <string, object>()
         {
             { "id", lastPostObjectId }
         };
         script.ExecuteAsync(null, null, query, (byte[] result, NCMBException e) => {
             if (e != null)
             {
                 // 失敗
                 Debug.LogError(e);
             }
             else
             {
                 lastPostObjectId = null;
                 // 成功
                 Debug.Log("Script delete run successful ");
             }
         });
     }
 }