public async Task LinkWithAuthDataTaskAsyncInvalidTwitterTask()
    {
        // テストデータ作成
        NCMBUser user = new NCMBUser();

        user.AuthData = facebookParams.param;

        // authData登録
        await user.LogInWithAuthDataTaskAsync();

        try
        {
            // authData追加
            await user.LinkWithAuthDataTaskAsync(invalidTwitterParams.param);

            Assert.Fail("Exception not thrown");
        }
        catch (NCMBException e)
        {
            Assert.AreEqual(NCMBException.OAUTH_ERROR, e.ErrorCode);
        }

        // 追加失敗の確認
        Assert.IsNotEmpty(NCMBUser._getCurrentSessionToken());
        Assert.True(user.IsLinkWith("facebook"));
        Assert.False(user.IsLinkWith("twitter"));
        Assert.True(NCMBTestSettings.CallbackFlag);
    }
    public async Task LogInWithAuthDataTaskAsyncTwitterTask()
    {
        // テストデータ作成
        NCMBUser user = new NCMBUser();

        user.AuthData = twitterParams.param;

        // authData登録
        await user.LogInWithAuthDataTaskAsync();

        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);
    }
    public async Task UnLinkWithAuthDataTaskAsyncTwitterTask()
    {
        // テストデータ作成
        NCMBUser user = new NCMBUser();

        user.AuthData = twitterParams.param;

        // authData登録
        await user.LogInWithAuthDataTaskAsync();

        Assert.True(user.IsLinkWith("twitter"));

        // authData削除
        await user.UnLinkWithAuthDataTaskAsync("twitter");

        // 削除成功の確認
        Assert.False(user.IsLinkWith("twitter"));
        Assert.True(NCMBTestSettings.CallbackFlag);
    }
    public async Task LinkWithAuthDataTaskAsyncTwitterTask()
    {
        // テストデータ作成
        NCMBUser user = new NCMBUser();

        user.AuthData = facebookParams.param;

        // authData登録
        await user.LogInWithAuthDataTaskAsync();

        // authData追加
        await user.LinkWithAuthDataTaskAsync(twitterParams.param);

        // 追加成功の確認
        Assert.IsNotEmpty(NCMBUser._getCurrentSessionToken());
        Assert.True(user.IsLinkWith("facebook"));
        Assert.True(user.IsLinkWith("twitter"));
        Assert.True(NCMBTestSettings.CallbackFlag);
    }
    public async Task LogInWithAuthDataTaskAsyncFacebookTask()
    {
        // テストデータ作成
        NCMBUser user = new NCMBUser();

        user.AuthData = facebookParams.param;

        // authData登録
        await user.LogInWithAuthDataTaskAsync();

        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);
    }