public void UnLinkWithAuthDataAsyncFacebook() { // テストデータ作成 NCMBUser user = new NCMBUser(); user.AuthData = facebookParams.param; // authData登録 user.LogInWithAuthDataAsync((NCMBException e) => { Assert.Null(e); }); NCMBTestSettings.AwaitAsync(); Assert.True(user.IsLinkWith("facebook")); // authData削除 user.UnLinkWithAuthDataAsync("facebook", (NCMBException e1) => { Assert.Null(e1); NCMBTestSettings.CallbackFlag = true; }); NCMBTestSettings.AwaitAsync(); // 削除成功の確認 Assert.False(user.IsLinkWith("facebook")); Assert.True(NCMBTestSettings.CallbackFlag); NCMBUser.LogOutAsync(); }
/// <summary> /// 非同期処理で現在ログインしているユーザのauthDataの削除を行います。<br/> /// 通信結果が必要な場合はコールバックを指定するこちらを使用します。 /// </summary> /// <param name="provider">SNS名</param> /// <returns>削除後のユーザ</returns> public static IObservable <NCMBUser> UnLinkWithAuthDataAsyncAsStream(this NCMBUser user, string provider) { return(Observable.Create <NCMBUser>(observer => { var gate = new object(); var isDisposed = false; user.UnLinkWithAuthDataAsync(provider, error => { lock (gate) { if (isDisposed) { return; } if (error == null) { observer.OnNext(user); observer.OnCompleted(); } else { observer.OnError(error); } } }); return Disposable.Create(() => { lock (gate) { isDisposed = true; } }); })); }
public IEnumerator UnLinkWithAuthDataAsyncTwitter() { // テストデータ作成 NCMBUser user = new NCMBUser(); user.AuthData = twitterParams.param; // authData登録 user.LogInWithAuthDataAsync((NCMBException e) => { Assert.Null(e); NCMBTestSettings.CallbackFlag = true; }); yield return(NCMBTestSettings.AwaitAsync()); NCMBTestSettings.CallbackFlag = false; Assert.True(user.IsLinkWith("twitter")); // authData削除 user.UnLinkWithAuthDataAsync("twitter", (NCMBException e1) => { Assert.Null(e1); NCMBTestSettings.CallbackFlag = true; }); yield return(NCMBTestSettings.AwaitAsync()); // 削除成功の確認 Assert.False(user.IsLinkWith("twitter")); Assert.True(NCMBTestSettings.CallbackFlag); }
/// <summary> /// 非同期処理で現在ログインしているユーザのauthDataの削除を行います。<br/> /// </summary> /// <param name="provider">SNS名</param> public static Task <NCMBUser> UnLinkWithAuthDataTaskAsync(this NCMBUser user, string provider) { var tcs = new TaskCompletionSource <NCMBUser>(); user.UnLinkWithAuthDataAsync(provider, error => { if (error != null) { tcs.SetException(error); } else { tcs.SetResult(user); } }); return(tcs.Task); }
public IEnumerator UnLinkFacebookLinkTwitter() { // テストデータ作成 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()); NCMBTestSettings.CallbackFlag = false; Assert.True(user.IsLinkWith("twitter")); // authData削除 user.UnLinkWithAuthDataAsync("facebook", (NCMBException e2) => { Assert.Null(e2); NCMBTestSettings.CallbackFlag = true; }); yield return(NCMBTestSettings.AwaitAsync()); // 削除成功の確認 Assert.IsNotEmpty(NCMBUser._getCurrentSessionToken()); Assert.True(user.IsLinkWith("twitter")); Assert.False(user.IsLinkWith("facebook")); Assert.True(NCMBTestSettings.CallbackFlag); }