private void UserDataApiContinued3(PlayFabResult <GetUserDataResult> getDataResult2, UUnitTestContext testContext, string failMessage) { int testCounterValueActual; UserDataRecord testCounter; getDataResult2.Result.Data.TryGetValue(TEST_DATA_KEY, out testCounter); testContext.NotNull(testCounter, "The updated UserData was not found in the Api results"); int.TryParse(testCounter.Value, out testCounterValueActual); testContext.IntEquals(_testInteger, testCounterValueActual); var timeUpdated = testCounter.LastUpdated; var testMin = DateTime.UtcNow - TimeSpan.FromMinutes(5); var testMax = testMin + TimeSpan.FromMinutes(10); testContext.True(testMin <= timeUpdated && timeUpdated <= testMax); }
public void MultipleLoginWithStaticMethods(UUnitTestContext testContext) { // If the setup failed to log in a user, we need to create one. var loginRequest1 = new LoginWithCustomIDRequest { TitleId = PlayFabSettings.staticSettings.TitleId, CustomId = "test_SDK1", CreateAccount = true, }; var loginRequest2 = new LoginWithCustomIDRequest { TitleId = PlayFabSettings.staticSettings.TitleId, CustomId = "test_SDK2", CreateAccount = true, }; var loginRequest3 = new LoginWithCustomIDRequest { TitleId = PlayFabSettings.staticSettings.TitleId, CustomId = "test_SDK3", CreateAccount = true, }; var loginTask1 = clientApi.LoginWithCustomIDAsync(loginRequest1, null, testTitleData.extraHeaders).Result; var loginTask2 = clientApi.LoginWithCustomIDAsync(loginRequest2, null, testTitleData.extraHeaders).Result; var loginTask3 = clientApi.LoginWithCustomIDAsync(loginRequest3, null, testTitleData.extraHeaders).Result; testContext.NotNull(loginTask1.Result, "Login Result is null for loginRequest1"); testContext.NotNull(loginTask2.Result, "Login Result is null for loginRequest2"); testContext.NotNull(loginTask3.Result, "Login Result is null for loginRequest3"); testContext.IsNull(loginTask1.Error, "Login error occured for loginRequest1: " + loginTask1.Error?.ErrorMessage ?? string.Empty); testContext.IsNull(loginTask2.Error, "Login error occured for loginRequest2: " + loginTask2.Error?.ErrorMessage ?? string.Empty); testContext.IsNull(loginTask3.Error, "Login error occured for loginRequest3: " + loginTask3.Error?.ErrorMessage ?? string.Empty); testContext.NotNull(loginTask1.Result.AuthenticationContext, "AuthenticationContext is not set for loginRequest1,"); testContext.NotNull(loginTask2.Result.AuthenticationContext, "AuthenticationContext is not set for loginRequest2"); testContext.NotNull(loginTask3.Result.AuthenticationContext, "AuthenticationContext is not set for loginRequest3"); if (string.Equals(loginTask1.Result.AuthenticationContext.ClientSessionTicket, loginTask2.Result.AuthenticationContext.ClientSessionTicket)) { testContext.Fail("Multiple Login Failed AuthenticationContexts are same for task1 and task2: " + loginTask1.Result.AuthenticationContext.ClientSessionTicket); } if (string.Equals(loginTask2.Result.AuthenticationContext.ClientSessionTicket, loginTask3.Result.AuthenticationContext.ClientSessionTicket)) { testContext.Fail("Multiple Login Failed AuthenticationContexts are same for task2 and task3: " + loginTask2.Result.AuthenticationContext.ClientSessionTicket); } if (string.Equals(loginTask1.Result.AuthenticationContext.ClientSessionTicket, loginTask3.Result.AuthenticationContext.ClientSessionTicket)) { testContext.Fail("Multiple Login Failed AuthenticationContexts are same for task1 and task3: " + loginTask1.Result.AuthenticationContext.ClientSessionTicket); } authenticationContext1 = loginTask1.Result.AuthenticationContext; authenticationContext2 = loginTask2.Result.AuthenticationContext; authenticationContext3 = loginTask3.Result.AuthenticationContext; testContext.EndTest(UUnitFinishState.PASSED, null); }
private void CloudScriptContinued(PlayFabResult <ClientModels.ExecuteCloudScriptResult> cloudResult, UUnitTestContext testContext, string failMessage) { string messageValue = null; // Get the helloWorld return message testContext.NotNull(cloudResult.Result.FunctionResult); var sjobj = cloudResult.Result.FunctionResult as JsonObject; if (sjobj != null) { messageValue = sjobj["messageValue"] as string; } //var njobj = cloudResult.Result.FunctionResult as Newtonsoft.Json.Linq.JObject; //if (njobj != null) // messageValue = njobj["messageValue"].ToObject<string>(); testContext.StringEquals("Hello " + PlayFabId + "!", messageValue); }
public void PfPush_JsonSerialization(UUnitTestContext testContext) { var tempJavaPkgObj = new AndroidJavaObject("com.playfab.unityplugin.GCM.PlayFabNotificationPackage"); var javaPkgClass = new AndroidJavaClass("com.playfab.unityplugin.GCM.PlayFabNotificationPackage"); var expectedPkgs = new[] { new PlayFabNotificationPackage("test message0", "test title1", 10), new PlayFabNotificationPackage("test message1", "test title2", 11), new PlayFabNotificationPackage("test message2", "test title3", 12), }; expectedPkgs[0].SetScheduleTime(DateTime.Now + TimeSpan.FromSeconds(10), ScheduleTypes.ScheduledLocal); expectedPkgs[1].SetScheduleTime(DateTime.UtcNow + TimeSpan.FromSeconds(10), ScheduleTypes.ScheduledUtc); expectedPkgs[2].SetScheduleTime(null, ScheduleTypes.None); for (var i = 0; i < expectedPkgs.Length; i++) { var expectedPkg = expectedPkgs[i]; expectedPkg.ToJava(ref tempJavaPkgObj); var firstJson = tempJavaPkgObj.Call <string>("toJson"); var javaPkgObj = javaPkgClass.CallStatic <AndroidJavaObject>("fromJson", firstJson); var secondJson = javaPkgObj.Call <string>("toJson"); testContext.StringEquals(firstJson, secondJson); PlayFabNotificationPackage actualPkg = null;; try { actualPkg = JsonWrapper.DeserializeObject <PlayFabNotificationPackage>(secondJson); } catch (Exception) { testContext.Fail("JSON PARSE FAILURE:\n1stJson: " + firstJson + "\n2ndJson:" + secondJson); } testContext.NotNull(actualPkg); testContext.StringEquals(expectedPkg.Message, actualPkg.Message, "Message mismatch " + i + ", " + expectedPkg.Message + ", " + actualPkg.Message + "\nExJson: " + secondJson + "\nAcJson:" + secondJson); testContext.StringEquals(expectedPkg.Title, actualPkg.Title, "Title mismatch " + i + ", " + expectedPkg.Title + ", " + actualPkg.Title + ", " + secondJson + ", " + secondJson); testContext.IntEquals(expectedPkg.Id, actualPkg.Id, "Id mismatch " + i + ", " + expectedPkg.Id + ", " + actualPkg.Id + ", " + secondJson + ", " + secondJson); testContext.ObjEquals(expectedPkg.ScheduleType, actualPkg.ScheduleType, "ScheduleType mismatch " + i + ", " + expectedPkg.ScheduleType + ", " + actualPkg.ScheduleType + ", " + secondJson + ", " + secondJson); testContext.DateTimeEquals(expectedPkg.ScheduleDate, actualPkg.ScheduleDate, TimeSpan.FromSeconds(1), "ScheduleDate mismatch " + i + ", " + expectedPkg.ScheduleDate + ", " + actualPkg.ScheduleDate + ", " + secondJson + ", " + secondJson); } testContext.EndTest(UUnitFinishState.PASSED, null); }
public void Test404Response(UUnitTestContext testContext) { var expectedError = new PlayFabError { HttpCode = (int)HttpStatusCode.NotFound, HttpStatus = "NotFound", Error = PlayFabErrorCode.ServiceUnavailable, ErrorMessage = "Test error result", }; mockHttpPlugin.AssignResponse(HttpStatusCode.NotFound, null, expectedError); // GetTitlePublicKey has no auth, and trivial input/output so it's pretty ideal for a fake API call var task = PlayFabClientAPI.GetTitlePublicKeyAsync(null); task.Wait(); testContext.IsNull(task.Result.Result); testContext.NotNull(task.Result.Error); testContext.IntEquals(expectedError.HttpCode, task.Result.Error.HttpCode); testContext.EndTest(UUnitFinishState.PASSED, null); }