public async Task UserSigninProviderError() // provider error { var user = new XboxLiveUser(); var result = new TokenRequestResult(null); result.ResponseStatus = WebTokenRequestStatus.ProviderError; result.ResponseError = new WebProviderError(mockErrorcode, mockErrorMessage); // ProviderError will convert to exception try { var silentResult = await user.SignInSilentlyAsync(); } catch (XboxException ex) { Assert.AreEqual(ex.HResult, mockErrorcode); Assert.IsFalse(string.IsNullOrEmpty(ex.Message)); Assert.IsFalse(user.IsSignedIn); return; } Assert.Fail("No exception was thrown."); }
private Mock <AccountProvider> CreateMockAccountProvider(TokenRequestResult silentResult, TokenRequestResult uiResult) { var provider = new Mock <AccountProvider>(); if (silentResult != null) { provider .Setup(o => o.GetTokenSilentlyAsync(It.IsAny <WebTokenRequest>())) .ReturnsAsync(silentResult); } if (uiResult != null) { provider .Setup(o => o.RequestTokenAsync(It.IsAny <WebTokenRequest>())) .Callback(() => { // Make sure it is called on the UI thread with a coreWindow. // Calling API can only be called on UI thread. var resourceContext = Windows.ApplicationModel.Resources.Core.ResourceContext.GetForCurrentView(); }) .ReturnsAsync(uiResult); } return(provider); }
public async Task UserSigninUIUserCancel() { var user = new XboxLiveUser(); var result = new TokenRequestResult(null); result.ResponseStatus = WebTokenRequestStatus.UserCancel; var signinResult = await user.SignInAsync(); Assert.AreEqual(signinResult.Status, SignInStatus.UserCancel); Assert.IsFalse(user.IsSignedIn); }
public async Task UserSigninSilentlyUserInteractionRequired() { var user = new XboxLiveUser(); var result = new TokenRequestResult(null); result.ResponseStatus = WebTokenRequestStatus.UserInteractionRequired; var signinResult = await user.SignInSilentlyAsync(); Assert.AreEqual(signinResult.Status, SignInStatus.UserInteractionRequired); Assert.IsFalse(user.IsSignedIn); }
public async Task UserSigninUIUserCancel() { var user = new XboxLiveUser(); var result = new TokenRequestResult(null); result.ResponseStatus = WebTokenRequestStatus.UserCancel; user.Impl.Provider = CreateMockAccountProvider(null, result).Object; var signinResult = await user.SignInAsync(); Assert.AreEqual(signinResult.Status, SignInStatus.UserCancel); Assert.IsFalse(user.IsSignedIn); }
public async Task UserSignOut() // provider error { var user = new XboxLiveUser(); Assert.IsFalse(user.IsSignedIn); AutoResetEvent signoutEvent = new AutoResetEvent(false); XboxLiveUser.SignOutCompleted += ((Object o, SignOutCompletedEventArgs args) => { Assert.AreEqual(args.User, user); signoutEvent.Set(); }); var successResponse = CreateSuccessTokenResponse(); var errorResponse = new TokenRequestResult(null); errorResponse.ResponseStatus = WebTokenRequestStatus.UserInteractionRequired; var provider = new Mock <AccountProvider>(); provider .SetupSequence(o => o.GetTokenSilentlyAsync(It.IsAny <WebTokenRequest>())) .ReturnsAsync(successResponse) .ReturnsAsync(errorResponse); user.Impl.Provider = provider.Object; var silentResult = await user.SignInSilentlyAsync(); Assert.AreEqual(silentResult.Status, SignInStatus.Success); Assert.IsTrue(user.IsSignedIn); try { var token = await user.GetTokenAndSignatureAsync("GET", "", ""); } catch (XboxException ex) { Assert.IsFalse(string.IsNullOrEmpty(ex.Message)); Assert.IsFalse(user.IsSignedIn); Assert.IsTrue(signoutEvent.WaitOne(100), "wait signout event time out"); return; } Assert.Fail("No exception was thrown."); }
private TokenRequestResult CreateSuccessTokenResponse() { var result = new TokenRequestResult(null); result.ResponseStatus = WebTokenRequestStatus.Success; result.Token = mockToken; result.WebAccountId = mockWebAccountId; result.Properties = new Dictionary <string, string>(); result.Properties.Add("XboxUserId", mockXuid); result.Properties.Add("Gamertag", mockGamerTag); result.Properties.Add("AgeGroup", mockAgeGroup); result.Properties.Add("Environment", mockEnvironment); result.Properties.Add("Sandbox", mockSandbox); result.Properties.Add("Signature", mockSignature); result.Properties.Add("Privileges", mockPrivileges); return(result); }