public IEnumerator UpdateCurrentUserAfterLogin() { // テストデータ作成 NCMBUser.LogInAsync("tarou", "tarou", (e) => { Assert.Null(e); NCMBUser.CurrentUser.UserName = "******"; NCMBUser.CurrentUser.SaveAsync((NCMBException ex) => { Assert.Null(ex); NCMBTestSettings.CallbackFlag = true; }); }); yield return(NCMBTestSettings.AwaitAsync()); // 登録成功の確認 Assert.True(NCMBTestSettings.CallbackFlag); Assert.AreEqual("newUserName", NCMBUser.CurrentUser.UserName); Assert.AreEqual("dummySessionToken", NCMBUser._getCurrentSessionToken()); Assert.AreEqual("*****@*****.**", NCMBUser.CurrentUser.Email); }
public IEnumerator LinkWithAuthDataAsyncTwitter() { // テストデータ作成 NCMBUser user = new NCMBUser(); user.AuthData = facebookParams.param; // authData登録 user.LogInWithAuthDataAsync((NCMBException e) => { Assert.Null(e); NCMBTestSettings.CallbackFlag = true; }); yield return(NCMBTestSettings.AwaitAsync()); NCMBTestSettings.CallbackFlag = false; // authData追加 user.LinkWithAuthDataAsync(twitterParams.param, (NCMBException e1) => { Assert.Null(e1); NCMBTestSettings.CallbackFlag = true; }); yield return(NCMBTestSettings.AwaitAsync()); // 追加成功の確認 Assert.IsNotEmpty(NCMBUser._getCurrentSessionToken()); Assert.True(user.IsLinkWith("facebook")); Assert.True(user.IsLinkWith("twitter")); Assert.True(NCMBTestSettings.CallbackFlag); }
public IEnumerator LogInWithAuthDataAsyncFacebookStatus200() { // テストデータ作成 NCMBUser user = new NCMBUser(); user.AuthData = facebookParams200.param; // authData登録 user.LogInWithAuthDataAsync((NCMBException e1) => { Assert.Null(e1); NCMBUser currentUser = NCMBUser.CurrentUser; Assert.NotNull(currentUser); Assert.AreEqual("dummyObjectId", currentUser.ObjectId); // facebookパラメータ確認 Dictionary <string, object> authData = currentUser.GetAuthDataForProvider("facebook"); Assert.AreEqual("facebookDummyId200", authData ["id"]); Assert.AreEqual("facebookDummyAccessToken200", authData ["access_token"]); Assert.AreEqual("2017-02-07T01:02:03.004Z", authData ["expiration_date"]); // 登録成功の確認 Assert.IsNotEmpty(NCMBUser._getCurrentSessionToken()); Assert.True(currentUser.IsLinkWith("facebook")); NCMBTestSettings.CallbackFlag = true; }); yield return(NCMBTestSettings.AwaitAsync()); Assert.True(NCMBTestSettings.CallbackFlag); }
public IEnumerator LoginLogoutDeleteUser() { // テストデータ作成 NCMBUser.LogInAsync("tarou", "tarou", (e1) => { Assert.Null(e1); NCMBTestSettings.CallbackFlag = true; NCMBUser.LogOutAsync(); NCMBUser.LogInAsync("tarou", "tarou", (e2) => { Assert.Null(e2); NCMBUser user = new NCMBUser(); user.ObjectId = "anotherObjectId"; user.DeleteAsync((NCMBException e3) => { Assert.Null(e3); NCMBTestSettings.CallbackFlag = true; }); }); }); yield return(NCMBTestSettings.AwaitAsync()); Assert.True(NCMBTestSettings.CallbackFlag); Assert.AreEqual("dummySessionToken", NCMBUser._getCurrentSessionToken()); Assert.AreEqual("tarou", NCMBUser.CurrentUser.UserName); }
public IEnumerator LoginLogoutAddUser() { // テストデータ作成 NCMBUser.LogInAsync("tarou", "tarou", (e1) => { Assert.Null(e1); NCMBTestSettings.CallbackFlag = true; NCMBUser.LogOutAsync(); NCMBUser.LogInAsync("tarou", "tarou", (e2) => { Assert.Null(e2); NCMBUser user = new NCMBUser(); user.UserName = "******"; user.Password = "******"; user.SignUpAsync((NCMBException e3) => { Assert.Null(e3); NCMBTestSettings.CallbackFlag = true; }); }); }); yield return(NCMBTestSettings.AwaitAsync()); Assert.True(NCMBTestSettings.CallbackFlag); Assert.AreEqual("dummySessionToken", NCMBUser._getCurrentSessionToken()); Assert.AreEqual("tarou", NCMBUser.CurrentUser.UserName); }
public IEnumerator UnLinkWithAuthDataAsyncFacebook() { // テストデータ作成 NCMBUser user = new NCMBUser(); user.AuthData = facebookParams.param; // authData登録 user.LogInWithAuthDataAsync((NCMBException e) => { Assert.Null(e); NCMBTestSettings.CallbackFlag = true; }); yield return(NCMBTestSettings.AwaitAsync()); NCMBTestSettings.CallbackFlag = false; Assert.True(user.IsLinkWith("facebook")); // authData削除 user.UnLinkWithAuthDataAsync("facebook", (NCMBException e1) => { Assert.Null(e1); NCMBTestSettings.CallbackFlag = true; }); yield return(NCMBTestSettings.AwaitAsync()); // 削除成功の確認 Assert.False(user.IsLinkWith("facebook")); Assert.True(NCMBTestSettings.CallbackFlag); }
public IEnumerator FetchAsyncAuthenticationError() { // テストデータ作成 NCMBUser.LogInAsync("tarou", "tarou", (e) => { Assert.Null(e); NCMBUser.CurrentUser.SessionToken = "invalidToken"; NCMBUser.CurrentUser._currentOperations.Clear(); NCMBPush push = new NCMBPush(); push.ObjectId = "pushDummyObjectId"; push.FetchAsync((NCMBException ex) => { Assert.NotNull(ex); Assert.AreEqual("E401001", ex.ErrorCode); Assert.AreEqual("Authentication error by header incorrect.", ex.ErrorMessage); NCMBTestSettings.CallbackFlag = true; }); }); yield return(NCMBTestSettings.AwaitAsync()); // 登録成功の確認 Assert.True(NCMBTestSettings.CallbackFlag); }
public IEnumerator SignUpUseCurrentUserAfterLogin() { // テストデータ作成 NCMBUser.LogInAsync("tarou", "tarou", (e) => { Assert.Null(e); NCMBUser.CurrentUser.ObjectId = null; NCMBUser.CurrentUser.UserName = "******"; NCMBUser.CurrentUser.Password = "******"; // 会員登録 NCMBUser.CurrentUser.SignUpAsync((NCMBException ex) => { Assert.Null(ex); NCMBTestSettings.CallbackFlag = true; }); }); yield return(NCMBTestSettings.AwaitAsync()); // 登録成功の確認 Assert.True(NCMBTestSettings.CallbackFlag); Assert.AreEqual("testuser", NCMBUser.CurrentUser.UserName); Assert.AreEqual("dummySessionToken", NCMBUser._getCurrentSessionToken()); }
public IEnumerator FetchAsyncDataNotAvailable() { // テストデータ作成 NCMBUser.LogInAsync("tarou", "tarou", (e) => { Assert.Null(e); NCMBUser.CurrentUser.SessionToken = "invalidToken"; NCMBUser.CurrentUser._currentOperations.Clear(); NCMBRole exampleRole = new NCMBRole("exampleRole"); exampleRole.ObjectId = "roleInvalidObjectId"; exampleRole.FetchAsync((NCMBException ex) => { Assert.NotNull(ex); Assert.AreEqual("E404001", ex.ErrorCode); Assert.AreEqual("No data available.", ex.ErrorMessage); NCMBTestSettings.CallbackFlag = true; }); }); yield return(NCMBTestSettings.AwaitAsync()); // 登録成功の確認 Assert.True(NCMBTestSettings.CallbackFlag); }
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); }
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); }
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); } NCMBTestSettings.CallbackFlag = true; }); NCMBTestSettings.AwaitAsync(); Assert.True(NCMBTestSettings.CallbackFlag); }
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); }
public void UnLinkWithAuthDataAsyncTwitter() { // テストデータ作成 NCMBUser user = new NCMBUser(); user.AuthData = twitterParams.param; // authData登録 user.LogInWithAuthDataAsync((NCMBException e) => { Assert.Null(e); }); NCMBTestSettings.AwaitAsync(); Assert.True(user.IsLinkWith("twitter")); // authData削除 user.UnLinkWithAuthDataAsync("twitter", (NCMBException e1) => { Assert.Null(e1); NCMBTestSettings.CallbackFlag = true; }); NCMBTestSettings.AwaitAsync(); // 削除成功の確認 Assert.False(user.IsLinkWith("twitter")); Assert.True(NCMBTestSettings.CallbackFlag); NCMBUser.LogOutAsync(); }
public void LogInWithAuthDataAsyncTwitter() { // テストデータ作成 NCMBUser user = new NCMBUser(); user.AuthData = twitterParams.param; // authData登録 user.LogInWithAuthDataAsync((NCMBException e) => { Assert.Null(e); NCMBTestSettings.CallbackFlag = true; }); NCMBTestSettings.AwaitAsync(); Assert.AreEqual("dummyObjectId", user.ObjectId); // twitterパラメータ確認 Dictionary <string, object> authData = user.GetAuthDataForProvider("twitter"); Assert.AreEqual("twitterDummyId", authData["id"]); Assert.AreEqual("twitterDummyScreenName", authData["screen_name"]); Assert.AreEqual("twitterDummyConsumerKey", authData["oauth_consumer_key"]); Assert.AreEqual("twitterDummyConsumerSecret", authData["consumer_secret"]); Assert.AreEqual("twitterDummyAuthToken", authData["oauth_token"]); Assert.AreEqual("twitterDummyAuthSecret", authData["oauth_token_secret"]); // 登録成功の確認 Assert.NotNull(NCMBUser._getCurrentSessionToken()); Assert.True(user.IsLinkWith("twitter")); Assert.True(NCMBTestSettings.CallbackFlag); NCMBUser.LogOutAsync(); }
public void LinkWithAuthDataAsyncInvalidTwitter() { // テストデータ作成 NCMBUser user = new NCMBUser(); user.AuthData = facebookParams.param; // authData登録 user.LogInWithAuthDataAsync((NCMBException e) => { Assert.Null(e); }); NCMBTestSettings.AwaitAsync(); // authData追加 user.LinkWithAuthDataAsync(invalidTwitterParams.param, (NCMBException e) => { Assert.AreEqual(NCMBException.OAUTH_ERROR, e.ErrorCode); NCMBTestSettings.CallbackFlag = true; }); NCMBTestSettings.AwaitAsync(); // 追加失敗の確認 Assert.IsNotEmpty(NCMBUser._getCurrentSessionToken()); Assert.True(user.IsLinkWith("facebook")); Assert.False(user.IsLinkWith("twitter")); Assert.True(NCMBTestSettings.CallbackFlag); NCMBUser.LogOutAsync(); }
public IEnumerator FileResponseSignatureTest() { NCMBSettings.EnableResponseValidation(true); byte[] data = System.Text.Encoding.UTF8.GetBytes("hello"); NCMBFile file = new NCMBFile("test.txt", data); file.SaveAsync((NCMBException error) => { Assert.Null(error); NCMBTestSettings.CallbackFlag = true; }); yield return(NCMBTestSettings.AwaitAsync()); NCMBTestSettings.CallbackFlag = false; NCMBFile getFile = new NCMBFile("test.txt"); getFile.FetchAsync((byte[] fileData, NCMBException error) => { Assert.Null(error); NCMBTestSettings.CallbackFlag = true; }); yield return(NCMBTestSettings.AwaitAsync()); Assert.NotNull(file.CreateDate); Assert.True(NCMBTestSettings.CallbackFlag); }
public void LogInWithAuthDataAsyncFacebook() { // テストデータ作成 NCMBUser user = new NCMBUser(); user.AuthData = facebookParams.param; // authData登録 user.LogInWithAuthDataAsync((NCMBException e) => { Assert.Null(e); NCMBTestSettings.CallbackFlag = true; }); NCMBTestSettings.AwaitAsync(); Assert.AreEqual("dummyObjectId", user.ObjectId); // facebookパラメータ確認 Dictionary <string, object> authData = user.GetAuthDataForProvider("facebook"); Assert.AreEqual("facebookDummyId", authData["id"]); Assert.AreEqual("facebookDummyAccessToken", authData["access_token"]); Assert.AreEqual("2017-02-07T01:02:03.004Z", authData["expiration_date"]); // 登録成功の確認 Assert.IsNotEmpty(NCMBUser._getCurrentSessionToken()); Assert.True(user.IsLinkWith("facebook")); Assert.True(NCMBTestSettings.CallbackFlag); NCMBUser.LogOutAsync(); }
public IEnumerator FileDeleteTest() { byte[] data = System.Text.Encoding.UTF8.GetBytes("delete test"); NCMBFile file = new NCMBFile("delete.txt", data); file.SaveAsync((NCMBException error) => { Assert.Null(error); NCMBTestSettings.CallbackFlag = true; }); yield return(NCMBTestSettings.AwaitAsync()); NCMBTestSettings.CallbackFlag = false; Assert.NotNull(file.CreateDate); file.DeleteAsync((NCMBException error) => { Assert.Null(error); NCMBTestSettings.CallbackFlag = true; }); yield return(NCMBTestSettings.AwaitAsync()); NCMBTestSettings.CallbackFlag = false; NCMBQuery <NCMBFile> query = NCMBFile.GetQuery(); query.WhereEqualTo("fileName", "delete.txt"); query.FindAsync((List <NCMBFile> objList, NCMBException error) => { Assert.Null(error); Assert.AreEqual(0, objList.Count); NCMBTestSettings.CallbackFlag = true; }); yield return(NCMBTestSettings.AwaitAsync()); Assert.True(NCMBTestSettings.CallbackFlag); }
public IEnumerator FileACLTest() { byte[] data = System.Text.Encoding.UTF8.GetBytes("acl test"); NCMBACL acl = new NCMBACL(); acl.PublicReadAccess = true; NCMBFile file = new NCMBFile("ACL.txt", data, acl); file.SaveAsync((NCMBException error) => { NCMBTestSettings.CallbackFlag = true; }); yield return(NCMBTestSettings.AwaitAsync()); NCMBTestSettings.CallbackFlag = false; NCMBQuery <NCMBFile> query = NCMBFile.GetQuery(); query.WhereEqualTo("fileName", "ACL.txt"); query.FindAsync((List <NCMBFile> objList, NCMBException error) => { Assert.Null(error); NCMBFile getFile = objList [0]; Assert.True(getFile.ACL.PublicReadAccess); Assert.False(getFile.ACL.PublicWriteAccess); NCMBTestSettings.CallbackFlag = true; }); yield return(NCMBTestSettings.AwaitAsync()); Assert.True(NCMBTestSettings.CallbackFlag); }
public void UnLinkFacebookLinkTwitter() { // テストデータ作成 NCMBUser user = new NCMBUser(); user.AuthData = facebookParams.param; // authData登録 user.LogInWithAuthDataAsync((NCMBException e) => { Assert.Null(e); }); NCMBTestSettings.AwaitAsync(); // authData追加 user.LinkWithAuthDataAsync(twitterParams.param, (NCMBException e1) => { Assert.Null(e1); }); NCMBTestSettings.AwaitAsync(); Assert.True(user.IsLinkWith("twitter")); // authData削除 user.UnLinkWithAuthDataAsync("facebook", (NCMBException e2) => { Assert.Null(e2); NCMBTestSettings.CallbackFlag = true; }); NCMBTestSettings.AwaitAsync(); // 削除成功の確認 Assert.IsNotEmpty(NCMBUser._getCurrentSessionToken()); Assert.True(user.IsLinkWith("twitter")); Assert.False(user.IsLinkWith("facebook")); Assert.True(NCMBTestSettings.CallbackFlag); NCMBUser.LogOutAsync(); }
public IEnumerator FileDownloadTest() { byte[] data = System.Text.Encoding.UTF8.GetBytes("hello"); NCMBFile file = new NCMBFile("test.txt", data); file.SaveAsync((NCMBException error) => { Assert.Null(error); NCMBTestSettings.CallbackFlag = true; }); yield return(NCMBTestSettings.AwaitAsync()); NCMBTestSettings.CallbackFlag = false; NCMBFile getFile = new NCMBFile("test.txt"); getFile.FetchAsync((byte[] fileData, NCMBException error) => { Assert.Null(error); Assert.AreEqual("hello", Encoding.UTF8.GetString(fileData)); NCMBTestSettings.CallbackFlag = true; }); yield return(NCMBTestSettings.AwaitAsync()); Assert.NotNull(getFile.FileData); Assert.AreEqual("hello", Encoding.UTF8.GetString(getFile.FileData)); Assert.True(NCMBTestSettings.CallbackFlag); }
public IEnumerator UpdateCurrentUser() { // テストデータ作成 NCMBUser anonymousUser = new NCMBUser(); Dictionary <string, object> param = new Dictionary <string, object>(); Dictionary <string, object> anonymousParam = new Dictionary <string, object>() { { "id", "anonymousId" } }; param.Add("anonymous", anonymousParam); anonymousUser.AuthData = param; anonymousUser.SignUpAsync((NCMBException e) => { Assert.Null(e); Assert.NotNull(NCMBUser.CurrentUser); NCMBUser.CurrentUser.UserName = "******"; NCMBUser.CurrentUser.SaveAsync((NCMBException ex) => { Assert.Null(ex); NCMBTestSettings.CallbackFlag = true; }); }); yield return(NCMBTestSettings.AwaitAsync()); // 登録成功の確認 Assert.True(NCMBTestSettings.CallbackFlag); Assert.AreEqual("newUserName", NCMBUser.CurrentUser.UserName); Assert.IsTrue(NCMBUser.CurrentUser.IsLinkWith("anonymous")); }
public IEnumerator DeleteObject() { // テストデータ作成 NCMBUser anonymousUser = new NCMBUser(); Dictionary <string, object> param = new Dictionary <string, object>(); Dictionary <string, object> anonymousParam = new Dictionary <string, object>() { { "id", "anonymousId" } }; param.Add("anonymous", anonymousParam); anonymousUser.AuthData = param; anonymousUser.SignUpAsync((NCMBException e) => { Assert.Null(e); Assert.NotNull(NCMBUser.CurrentUser); Assert.IsTrue(NCMBUser.CurrentUser.IsLinkWith("anonymous")); NCMBObject obj = new NCMBObject("TestClass"); obj.ObjectId = "dummyObjectId"; obj.DeleteAsync((NCMBException ex) => { Assert.Null(ex); NCMBTestSettings.CallbackFlag = true; }); }); yield return(NCMBTestSettings.AwaitAsync()); Assert.NotNull(NCMBUser.CurrentUser); Assert.IsTrue(NCMBUser.CurrentUser.IsLinkWith("anonymous")); }
public IEnumerator UpdateOtherUserAfterLogin() { // テストデータ作成 NCMBUser.LogInAsync("tarou", "tarou", (e) => { Assert.Null(e); NCMBUser user = new NCMBUser(); user.ObjectId = "anotherObjectId"; user.UserName = "******"; user.SaveAsync((NCMBException ex) => { Assert.Null(ex); NCMBTestSettings.CallbackFlag = true; }); }); yield return(NCMBTestSettings.AwaitAsync()); // 登録成功の確認 Assert.True(NCMBTestSettings.CallbackFlag); Assert.IsNotNull(NCMBUser.CurrentUser); Assert.AreEqual("tarou", NCMBUser.CurrentUser.UserName); Assert.AreEqual("dummySessionToken", NCMBUser._getCurrentSessionToken()); }
public void FileUploadTextTest() { byte[] data = System.Text.Encoding.UTF8.GetBytes("hello"); NCMBFile file = new NCMBFile("test.txt", data); file.SaveAsync((NCMBException error) => { Assert.Null(error); NCMBTestSettings.CallbackFlag = true; }); NCMBTestSettings.AwaitAsync(); Assert.NotNull(file.CreateDate); Assert.True(NCMBTestSettings.CallbackFlag); }
public IEnumerator FileUploadFileNameTest() { byte[] data = System.Text.Encoding.UTF8.GetBytes("hello"); NCMBFile file = new NCMBFile("日本語.txt", data); file.SaveAsync((NCMBException error) => { Assert.Null(error); NCMBTestSettings.CallbackFlag = true; }); yield return(NCMBTestSettings.AwaitAsync()); Assert.NotNull(file.CreateDate); Assert.True(NCMBTestSettings.CallbackFlag); }
public IEnumerator LogInAsync() { // テストデータ作成 NCMBUser.LogInAsync("tarou", "tarou", (e) => { Assert.Null(e); NCMBTestSettings.CallbackFlag = true; }); yield return(NCMBTestSettings.AwaitAsync()); // 登録成功の確認 Assert.AreEqual("dummySessionToken", NCMBUser._getCurrentSessionToken()); Assert.AreEqual("tarou", NCMBUser.CurrentUser.UserName); Assert.True(NCMBTestSettings.CallbackFlag); }
public IEnumerator LogInWithMailAddressAsync() { // テストデータ作成 NCMBUser.LogInWithMailAddressAsync("*****@*****.**", "password", (e) => { Assert.Null(e); NCMBTestSettings.CallbackFlag = true; }); yield return(NCMBTestSettings.AwaitAsync()); // 登録成功の確認 Assert.AreEqual("dummySessionToken", NCMBUser._getCurrentSessionToken()); Assert.AreEqual("*****@*****.**", NCMBUser.CurrentUser.Email); Assert.True(NCMBTestSettings.CallbackFlag); }
public void FileUploadImageTest() { FileStream fileStream = new FileStream("Assets/ncmb_unity/ncmb_unity/Assets/Editor/logo.png", FileMode.Open, FileAccess.Read); BinaryReader bin = new BinaryReader(fileStream); byte[] data = bin.ReadBytes((int)bin.BaseStream.Length); bin.Close(); NCMBFile file = new NCMBFile("logo.png", data); file.SaveAsync((NCMBException error) => { Assert.Null(error); NCMBTestSettings.CallbackFlag = true; }); NCMBTestSettings.AwaitAsync(); Assert.NotNull(file.CreateDate); Assert.True(NCMBTestSettings.CallbackFlag); }