public void UserStatisticsApi() { int testStatExpected, testStatActual; var getRequest = new GetUserStatisticsRequest(); var getStatTask1 = PlayFabClientAPI.GetUserStatisticsAsync(getRequest); WaitForResultSuccess(getStatTask1, "UserStatistics should have been retrieved from Api call"); if (!getStatTask1.Result.Result.UserStatistics.TryGetValue(TEST_STAT_NAME, out testStatExpected)) { testStatExpected = TEST_STAT_BASE; } testStatExpected = ((testStatExpected + 1) % TEST_STAT_BASE) + TEST_STAT_BASE; // This test is about the expected value changing (incrementing through from TEST_STAT_BASE to TEST_STAT_BASE * 2 - 1) var updateRequest = new UpdateUserStatisticsRequest(); updateRequest.UserStatistics = new Dictionary <string, int>(); updateRequest.UserStatistics[TEST_STAT_NAME] = testStatExpected; var updateTask = PlayFabClientAPI.UpdateUserStatisticsAsync(updateRequest); WaitForResultSuccess(updateTask, "UpdateUserStatistics failed"); getRequest = new GetUserStatisticsRequest(); var getStatTask2 = PlayFabClientAPI.GetUserStatisticsAsync(getRequest); WaitForResultSuccess(getStatTask2, "UserStatistics should have been retrieved from Api call"); getStatTask2.Result.Result.UserStatistics.TryGetValue(TEST_STAT_NAME, out testStatActual); UUnitAssert.IntEquals(testStatExpected, testStatActual); }
public void UserDataApi() { var TEST_KEY = "testCounter"; UserDataRecord testCounter; int testCounterValueExpected, testCounterValueActual; var getRequest = new GetUserDataRequest(); var getDataTask1 = PlayFabClientAPI.GetUserDataAsync(getRequest); WaitForResultSuccess(getDataTask1, "UserData should have been retrieved from Api call"); if (!getDataTask1.Result.Result.Data.TryGetValue(TEST_KEY, out testCounter)) { testCounter = new UserDataRecord { Value = "0" } } ; int.TryParse(testCounter.Value, out testCounterValueExpected); testCounterValueExpected = (testCounterValueExpected + 1) % 100; // This test is about the expected value changing - but not testing more complicated issues like bounds var updateRequest = new UpdateUserDataRequest { Data = new Dictionary <string, string> { { TEST_KEY, testCounterValueExpected.ToString() } } }; var updateTask = PlayFabClientAPI.UpdateUserDataAsync(updateRequest); WaitForResultSuccess(updateTask, "UpdateUserData call failed"); // The update doesn't return anything interesting except versionID. It's better to just re-call GetUserData again below to verify the update getRequest = new GetUserDataRequest(); var getDataTask2 = PlayFabClientAPI.GetUserDataAsync(getRequest); WaitForResultSuccess(getDataTask2, "UserData should have been retrieved from Api call"); getDataTask2.Result.Result.Data.TryGetValue(TEST_KEY, out testCounter); UUnitAssert.NotNull(testCounter, "The updated UserData was not found in the Api results"); int.TryParse(testCounter.Value, out testCounterValueActual); UUnitAssert.IntEquals(testCounterValueExpected, testCounterValueActual); var timeUpdated = testCounter.LastUpdated; var testMin = DateTime.UtcNow - TimeSpan.FromMinutes(5); var testMax = testMin + TimeSpan.FromMinutes(10); UUnitAssert.True(testMin <= timeUpdated && timeUpdated <= testMax); }
public void PlayerStatisticsApi() { int testStatExpected = 0, testStatActual = Int32.MinValue; var getRequest = new GetPlayerStatisticsRequest(); var getStatTask1 = PlayFabClientAPI.GetPlayerStatisticsAsync(getRequest); WaitForResultSuccess(getStatTask1, "PlayerStatistics should have been retrieved from Api call"); foreach (var eachStat in getStatTask1.Result.Result.Statistics) { if (eachStat.StatisticName == TEST_STAT_NAME) { testStatExpected = eachStat.Value; } } testStatExpected = (testStatExpected + 1) % 100; // This test is about the expected value changing (incrementing through from TEST_STAT_BASE to TEST_STAT_BASE * 2 - 1) var updateRequest = new UpdatePlayerStatisticsRequest { Statistics = new List <StatisticUpdate> { new StatisticUpdate { StatisticName = TEST_STAT_NAME, Value = testStatExpected } } }; var updateTask = PlayFabClientAPI.UpdatePlayerStatisticsAsync(updateRequest); WaitForResultSuccess(updateTask, "UpdatePlayerStatistics failed"); getRequest = new GetPlayerStatisticsRequest(); var getStatTask2 = PlayFabClientAPI.GetPlayerStatisticsAsync(getRequest); WaitForResultSuccess(getStatTask2, "PlayerStatistics should have been retrieved from Api call"); foreach (var eachStat in getStatTask2.Result.Result.Statistics) { if (eachStat.StatisticName == TEST_STAT_NAME) { testStatActual = eachStat.Value; } } UUnitAssert.IntEquals(testStatExpected, testStatActual); }
public void UserDataApi() { int testCounterValueExpected, testCounterValueActual; var getRequest = new GetUserDataRequest(); PlayFabClientAPI.GetUserData(getRequest, GetUserDataCallback, SharedErrorCallback); WaitForApiCalls(); UUnitAssert.Equals("User Data Received", lastReceivedMessage); int.TryParse(testCounterReturn.Value, out testCounterValueExpected); testCounterValueExpected = (testCounterValueExpected + 1) % 100; // This test is about the expected value changing - but not testing more complicated issues like bounds var updateRequest = new UpdateUserDataRequest(); updateRequest.Data = new Dictionary <string, string>(); updateRequest.Data[TEST_DATA_KEY] = testCounterValueExpected.ToString(); PlayFabClientAPI.UpdateUserData(updateRequest, UpdateUserDataCallback, SharedErrorCallback); WaitForApiCalls(); UUnitAssert.StringEquals("User Data Updated", lastReceivedMessage); getRequest = new GetUserDataRequest(); PlayFabClientAPI.GetUserData(getRequest, GetUserDataCallback, SharedErrorCallback); WaitForApiCalls(); UUnitAssert.StringEquals("User Data Received", lastReceivedMessage); int.TryParse(testCounterReturn.Value, out testCounterValueActual); UUnitAssert.IntEquals(testCounterValueExpected, testCounterValueActual); DateTime timeUpdated = testCounterReturn.LastUpdated; DateTime minTest = DateTime.UtcNow - TimeSpan.FromMinutes(5); DateTime maxTest = DateTime.UtcNow + TimeSpan.FromMinutes(5); UUnitAssert.True(minTest <= timeUpdated && timeUpdated <= maxTest); // UnityEngine.Debug.Log((DateTime.UtcNow - timeUpdated).TotalSeconds); UUnitAssert.True(Math.Abs((DateTime.UtcNow - timeUpdated).TotalMinutes) < 5); // Make sure that this timestamp is recent - This must also account for the difference between local machine time and server time }
public void TestObjOptNumField() { var expectedObjects = new[] { ObjOptNumFieldTest.Max, ObjOptNumFieldTest.Min, ObjOptNumFieldTest.Zero, ObjOptNumFieldTest.Null }; for (int i = 0; i < expectedObjects.Length; i++) { // Convert the object to json and back, and verify that everything is the same var actualJson = SimpleJson.SerializeObject(expectedObjects[i], Util.ApiSerializerStrategy).Replace(" ", "").Replace("\n", "").Replace("\r", "").Replace("\t", ""); var actualObject = SimpleJson.DeserializeObject <ObjOptNumFieldTest>(actualJson, Util.ApiSerializerStrategy); UUnitAssert.SbyteEquals(expectedObjects[i].SbyteValue, actualObject.SbyteValue); UUnitAssert.ByteEquals(expectedObjects[i].ByteValue, actualObject.ByteValue); UUnitAssert.ShortEquals(expectedObjects[i].ShortValue, actualObject.ShortValue); UUnitAssert.UshortEquals(expectedObjects[i].UshortValue, actualObject.UshortValue); UUnitAssert.IntEquals(expectedObjects[i].IntValue, actualObject.IntValue); UUnitAssert.UintEquals(expectedObjects[i].UintValue, actualObject.UintValue); UUnitAssert.LongEquals(expectedObjects[i].LongValue, actualObject.LongValue); UUnitAssert.ULongEquals(expectedObjects[i].UlongValue, actualObject.UlongValue); UUnitAssert.FloatEquals(expectedObjects[i].FloatValue, actualObject.FloatValue, float.MaxValue * 0.000000001f); UUnitAssert.DoubleEquals(expectedObjects[i].DoubleValue, actualObject.DoubleValue, double.MaxValue * 0.000000001f); } }
public void UserStatisticsApi() { int testStatExpected, testStatActual; var getRequest = new ClientModels.GetUserStatisticsRequest(); PlayFabClientAPI.GetUserStatistics(getRequest, GetUserStatsCallback, SharedErrorCallback); WaitForApiCalls(); UUnitAssert.StringEquals("User Stats Received", lastReceivedMessage); testStatExpected = ((testStatReturn + 1) % TEST_STAT_BASE) + TEST_STAT_BASE; // This test is about the expected value changing (incrementing through from TEST_STAT_BASE to TEST_STAT_BASE * 2 - 1) var updateRequest = new ClientModels.UpdateUserStatisticsRequest(); updateRequest.UserStatistics = new Dictionary <string, int>(); updateRequest.UserStatistics[TEST_STAT_NAME] = testStatExpected; PlayFabClientAPI.UpdateUserStatistics(updateRequest, UpdateUserStatsCallback, SharedErrorCallback); WaitForApiCalls(); // Test update result - no data returned, so error or no error, based on Title settings if (!TITLE_CAN_UPDATE_SETTINGS) { UUnitAssert.StringEquals("error message from PlayFab", lastReceivedMessage); return; // The rest of this tests changing settings - Which we verified we cannot do } else // if (CAN_UPDATE_SETTINGS) { UUnitAssert.StringEquals("User Stats Updated", lastReceivedMessage); } getRequest = new ClientModels.GetUserStatisticsRequest(); PlayFabClientAPI.GetUserStatistics(getRequest, GetUserStatsCallback, SharedErrorCallback); WaitForApiCalls(); UUnitAssert.StringEquals("User Stats Received", lastReceivedMessage); testStatActual = testStatReturn; UUnitAssert.IntEquals(testStatExpected, testStatActual); }
public void PlayerStatisticsApi() { int testStatExpected = 0, testStatActual = int.MinValue; var getStatTask1 = Client.GetPlayerStatisticsAsync(); try { getStatTask1.Wait(); } catch (Exception ex) { UUnitAssert.True(false, ex.Message); } UUnitAssert.NotNull(getStatTask1.Result, "PlayerStatistics should have been retrieved from Api call"); foreach (var eachStat in getStatTask1.Result) { if (eachStat.StatisticName == TEST_STAT_NAME) { testStatExpected = eachStat.Value; } } testStatExpected = (testStatExpected + 1) % 100; // This test is about the expected value changing (incrementing through from TEST_STAT_BASE to TEST_STAT_BASE * 2 - 1) var updateTask = Client.UpdatePlayerStatisticsAsync(new List <StatisticUpdate> { new StatisticUpdate { StatisticName = TEST_STAT_NAME, Value = testStatExpected } }); try { updateTask.Wait(); // The update doesn't return anything, so can't test anything other than failure } catch (Exception ex) { UUnitAssert.Fail(ex.Message); } var getStatTask2 = Client.GetPlayerStatisticsAsync(); try { getStatTask2.Wait(); } catch (Exception ex) { UUnitAssert.Fail(ex.Message); } UUnitAssert.NotNull(getStatTask2.Result, "PlayerStatistics should have been retrieved from Api call"); foreach (var eachStat in getStatTask2.Result) { if (eachStat.StatisticName == TEST_STAT_NAME) { testStatActual = eachStat.Value; } } UUnitAssert.IntEquals(testStatExpected, testStatActual); }