public void LoginOrRegister(UUnitTestContext testContext) { var loginRequest = new LoginWithCustomIDRequest { TitleId = PlayFabSettings.staticSettings.TitleId, CustomId = PlayFabSettings.BuildIdentifier, CreateAccount = true }; var loginTask = clientApi.LoginWithCustomIDAsync(loginRequest, null, testTitleData.extraHeaders); ContinueWithContext(loginTask, testContext, LoginOrRegisterContinued, true, "User login failed", true); }
private static async Task PostTestResultsToCloudScript(TestSuiteReport testReport) { #if !DISABLE_PLAYFABCLIENT_API PfClient.GetSettings().TitleId = TestTitleData.titleId; var loginRequest = new LoginWithCustomIDRequest { CustomId = PlayFabSettings.BuildIdentifier, CreateAccount = true, }; var saveRequest = new ExecuteCloudScriptRequest { FunctionName = "SaveTestData", FunctionParameter = new Dictionary <string, object> { { "customId", PlayFabSettings.BuildIdentifier }, { "testReport", new[] { testReport } } }, GeneratePlayStreamEvent = true }; try { var loginResult = await PfClient.LoginWithCustomIDAsync(loginRequest); var saveResult = await PfClient.ExecuteCloudScriptAsync(saveRequest); _onComplete?.Invoke(saveResult); } catch (Exception e) { var failResult = new PlayFabResult <ExecuteCloudScriptResult>(); failResult.Error = new PlayFabError(); failResult.Error.ErrorMessage = e.ToString(); _onComplete?.Invoke(failResult); } #endif }
public void Instance2Login(UUnitTestContext testContext) { var loginRequest = new LoginWithCustomIDRequest { CustomId = PlayFabSettings.BuildIdentifier, CreateAccount = true, }; var loginTask = client2.LoginWithCustomIDAsync(loginRequest); loginTask.Wait(); testContext.True(player2.IsClientLoggedIn(), "player2 client login failed, "); testContext.True(client2.IsClientLoggedIn(), "client2 client login failed"); testContext.True(player2.IsEntityLoggedIn(), "player2 entity login failed"); testContext.True(auth2.IsEntityLoggedIn(), "auth2 entity login failed"); testContext.False(PlayFabClientAPI.IsClientLoggedIn(), "p2 client context leaked to static context"); testContext.False(PlayFabAuthenticationAPI.IsEntityLoggedIn(), "p2 entity context leaked to static context"); // Verify useful player information testContext.NotNull(player2.PlayFabId); testContext.NotNull(player2.EntityId); testContext.NotNull(player2.EntityType); testContext.EndTest(UUnitFinishState.PASSED, PlayFabSettings.staticSettings.TitleId + ", " + loginTask.Result.Result.PlayFabId); }
private static async Task Run(string titleId, string playerId, bool chinaVer, bool listQosForTitle, bool verbose) { PlayFabApiSettings settings = new PlayFabApiSettings() { TitleId = titleId }; PlayFabClientInstanceAPI clientApi = new PlayFabClientInstanceAPI(settings); // Login var loginRequest = new LoginWithCustomIDRequest() { CustomId = playerId, CreateAccount = true }; PlayFabResult <LoginResult> login = await clientApi.LoginWithCustomIDAsync(loginRequest); if (login.Error != null) { Console.WriteLine(login.Error.ErrorMessage); throw new Exception($"Login failed with HttpStatus={login.Error.HttpStatus}"); } Console.WriteLine($"Logged in player {login.Result.PlayFabId} (CustomId={playerId})"); Console.WriteLine(); // Measure QoS Stopwatch sw = Stopwatch.StartNew(); PlayFabSDKWrapper.QoS.PlayFabQosApi qosApi = new PlayFabSDKWrapper.QoS.PlayFabQosApi(settings, clientApi.authenticationContext); PlayFabSDKWrapper.QoS.QosResult qosResult = await qosApi.GetQosResultAsync(250, degreeOfParallelism : 4, pingsPerRegion : 10, listQosForTitle : listQosForTitle, chinaVer : chinaVer); if (qosResult.ErrorCode != 0) { Console.WriteLine(qosResult.ErrorMessage); throw new Exception($"QoS ping failed with ErrorCode={qosResult.ErrorCode}"); } Console.WriteLine($"Pinged QoS servers in {sw.ElapsedMilliseconds}ms with results:"); if (verbose) { string resultsStr = JsonConvert.SerializeObject(qosResult.RegionResults, Formatting.Indented); Console.WriteLine(resultsStr); } int timeouts = qosResult.RegionResults.Sum(x => x.NumTimeouts); Console.WriteLine(string.Join(Environment.NewLine, qosResult.RegionResults.Select(x => $"{x.Region} - {x.LatencyMs}ms"))); Console.WriteLine($"NumTimeouts={timeouts}"); Console.WriteLine(); Console.ReadKey(); }
public override void SetUp(UUnitTestContext testContext) { testTitleData = TestTitleDataLoader.Load(null); PlayFabSettings.staticSettings.TitleId = testTitleData.titleId; var task = clientApi.LoginWithCustomIDAsync(new LoginWithCustomIDRequest { CreateAccount = true, CustomId = TEST_CUSTOM_ID, TitleId = testTitleData.titleId }); task.Wait(); testContext.True(clientApi.IsClientLoggedIn(), "User login not successful: " + task.Result.Error?.GenerateErrorReport()); }
private int Login(string titleId, string buildIdentifier, TestTitleData testTitleData) { PlayFabSettings.staticSettings.TitleId = titleId; var task = clientApi.LoginWithCustomIDAsync(new LoginWithCustomIDRequest { TitleId = titleId, CustomId = buildIdentifier, CreateAccount = true }, null, testTitleData.extraHeaders); task.Wait(); var returnCode = clientApi.IsClientLoggedIn() ? 0 : 1; if (returnCode != 0) { JcuUtil.FancyWriteToConsole(ConsoleColor.Red, "Failed to log in using CustomID: " + titleId + ", " + buildIdentifier); JcuUtil.FancyWriteToConsole(ConsoleColor.Red, task.Result.Error?.GenerateErrorReport()); } else { JcuUtil.FancyWriteToConsole(ConsoleColor.Gray, "Login successful, PlayFabId: " + task.Result.Result.PlayFabId); } return(returnCode); }
public void QosTest(UUnitTestContext testContext) { var loginWithCustomIdRequest = new LoginWithCustomIDRequest() { CreateAccount = true, CustomId = "test_Instance1" }; try { clientApi.LoginWithCustomIDAsync(loginWithCustomIdRequest, null, testTitleData.extraHeaders).Wait(); } catch (AggregateException aggregateException) when(aggregateException.InnerException != null) { throw aggregateException.InnerException; } PlayFabQosApi playFabQosApi = new PlayFabQosApi(); QosResult qoSResult = playFabQosApi.GetQosResultAsync().Result; testContext.IntEquals(0, qoSResult.ErrorCode, $"Qos ErrorMessage: {qoSResult.ErrorMessage}"); testContext.EndTest(UUnitFinishState.PASSED, null); }
private static async Task Run(string titleId, string playerId, string buildId, bool verbose) { PlayFabApiSettings settings = new PlayFabApiSettings() { TitleId = titleId }; PlayFabClientInstanceAPI clientApi = new PlayFabClientInstanceAPI(settings); // Login var loginRequest = new LoginWithCustomIDRequest() { CustomId = playerId, CreateAccount = true }; PlayFabResult <LoginResult> login = await clientApi.LoginWithCustomIDAsync(loginRequest); if (login.Error != null) { Console.WriteLine(login.Error.ErrorMessage); throw new Exception($"Login failed with HttpStatus={login.Error.HttpStatus}"); } Console.WriteLine($"Logged in player {login.Result.PlayFabId} (CustomId={playerId})"); Console.WriteLine(); // Measure QoS Stopwatch sw = Stopwatch.StartNew(); PlayFabQosApi qosApi = new PlayFabQosApi(settings, clientApi.authenticationContext); QosResult qosResult = await qosApi.GetQosResultAsync(250, degreeOfParallelism : 4, pingsPerRegion : 10); if (qosResult.ErrorCode != 0) { Console.WriteLine(qosResult.ErrorMessage); throw new Exception($"QoS ping failed with ErrorCode={qosResult.ErrorCode}"); } Console.WriteLine($"Pinged QoS servers in {sw.ElapsedMilliseconds}ms with results:"); if (verbose) { string resultsStr = JsonConvert.SerializeObject(qosResult.RegionResults, Formatting.Indented); Console.WriteLine(resultsStr); } int timeouts = qosResult.RegionResults.Sum(x => x.NumTimeouts); Console.WriteLine(string.Join(Environment.NewLine, qosResult.RegionResults.Select(x => $"{x.Region} - {x.LatencyMs}ms"))); Console.WriteLine($"NumTimeouts={timeouts}"); Console.WriteLine(); // Allocate a server string sessionId = Guid.NewGuid().ToString(); List <string> preferredRegions = qosResult.RegionResults .Where(x => x.ErrorCode == (int)QosErrorCode.Success) .Select(x => x.Region).ToList(); PlayFabMultiplayerInstanceAPI mpApi = new PlayFabMultiplayerInstanceAPI(settings, clientApi.authenticationContext); PlayFabResult <RequestMultiplayerServerResponse> server = await mpApi.RequestMultiplayerServerAsync(new RequestMultiplayerServerRequest() { BuildId = buildId, PreferredRegions = preferredRegions, SessionId = sessionId } ); if (server.Error != null) { Console.WriteLine(server.Error.ErrorMessage); throw new Exception($"Allocation failed with HttpStatus={server.Error.HttpStatus}"); } string serverLoc = $"{server.Result.IPV4Address}:{server.Result.Ports[0].Num}"; Console.WriteLine($"Allocated server {serverLoc}"); // Issue Http request against the server using (HttpResponseMessage getResult = await HttpClient.GetAsync("http://" + serverLoc)) { getResult.EnsureSuccessStatusCode(); Console.WriteLine("Received response:"); string responseStr = await getResult.Content.ReadAsStringAsync(); Console.WriteLine(responseStr); Console.WriteLine(); } }