void JsonTimeStampHandlesAllFormats(UUnitTestContext testContext) { string expectedJson, actualJson; DateTime expectedTime; ObjWithTimes actualObj = new ObjWithTimes(); for (int i = 0; i < _examples.Length; i++) { // Define the time deserialization expectation testContext.True(DateTime.TryParseExact(_examples[i], PlayFabUtil._defaultDateTimeFormats, CultureInfo.CurrentCulture, DateTimeStyles.RoundtripKind, out expectedTime), "Index: " + i + "/" + _examples.Length + ", " + _examples[i]); // De-serialize the time using json expectedJson = "{\"timestamp\":\"" + _examples[i] + "\"}"; // We are provided a json string with every random time format actualObj = JsonWrapper.DeserializeObject<ObjWithTimes>(expectedJson, PlayFabUtil.ApiSerializerStrategy); actualJson = JsonWrapper.SerializeObject(actualObj, PlayFabUtil.ApiSerializerStrategy); if (i == PlayFabUtil.DEFAULT_UTC_OUTPUT_INDEX) // This is the only case where the json input will match the json output testContext.StringEquals(expectedJson, actualJson); // Verify that the times match double diff = (expectedTime - actualObj.timestamp).TotalSeconds; // We expect that we have parsed the time correctly according to expectations testContext.True(diff < 1, "\nActual time: " + actualObj.timestamp + " vs Expected time: " + expectedTime + ", diff: " + diff + "\nActual json: " + actualJson + " vs Expected json: " + expectedJson ); } testContext.EndTest(UUnitFinishState.PASSED, null); }
public override void SetUp(UUnitTestContext testContext) { if (EXEC_ONCE) { Dictionary<string, string> testInputs; string filename = "C:/depot/pf-main/tools/SDKBuildScripts/testTitleData.json"; // TODO: Figure out how to not hard code this if (File.Exists(filename)) { string testInputsFile = PlayFabUtil.ReadAllFileText(filename); testInputs = JsonWrapper.DeserializeObject<Dictionary<string, string>>(testInputsFile, PlayFabUtil.ApiSerializerStrategy); } else { Debug.LogError("Loading testSettings file failed: " + filename + ", loading defaults."); testInputs = new Dictionary<String,String>(); testInputs["titleId"] = "6195"; testInputs["developerSecretKey"] = "hahahahahafatchance"; testInputs["titleCanUpdateSettings"] = "true"; testInputs["userName"] = "******"; testInputs["userEmail"] = "*****@*****.**"; testInputs["userPassword"] = "******"; } SetTitleInfo(testInputs); EXEC_ONCE = false; } if (!TITLE_INFO_SET) testContext.Skip(); // We cannot do client tests if the titleId is not given }
void TimeStampHandlesAllFormats(UUnitTestContext testContext) { DateTime actualTime; var formats = PlayFabUtil._defaultDateTimeFormats; for (int i = 0; i < _examples.Length; i++) { string expectedFormat = i < formats.Length ? formats[i] : "default"; testContext.True(DateTime.TryParseExact(_examples[i], formats, CultureInfo.CurrentCulture, DateTimeStyles.RoundtripKind, out actualTime), "Index: " + i + "/" + _examples.Length + ", " + _examples[i] + " with " + expectedFormat); } DateTime expectedTime = DateTime.Now; for (int i = 0; i < formats.Length; i++) { string timeString = expectedTime.ToString(formats[i], CultureInfo.CurrentCulture); testContext.True(DateTime.TryParseExact(timeString, formats, CultureInfo.CurrentCulture, DateTimeStyles.RoundtripKind, out actualTime), "Index: " + i + "/" + formats.Length + ", " + formats[i] + " with " + timeString); testContext.True((actualTime - expectedTime).TotalSeconds < 1, "Expected: " + expectedTime + " vs actual:" + actualTime); } testContext.EndTest(UUnitFinishState.PASSED, null); }
public override void TearDown(UUnitTestContext testContext) { }
public void EnumConversionTest_Serialize(UUnitTestContext testContext) { string expectedJson, actualJson; EnumConversionTestClass expectedObj = new EnumConversionTestClass(), actualObj; expectedObj.enumList = new List<testRegion>() { testRegion.USEast, testRegion.USCentral, testRegion.Japan }; expectedObj.enumArray = new testRegion[] { testRegion.USEast, testRegion.USCentral, testRegion.Japan }; expectedObj.enumValue = testRegion.Australia; expectedObj.optEnumValue = null; expectedJson = "{\"enumList\":[\"USEast\",\"USCentral\",\"Japan\"],\"enumArray\":[\"USEast\",\"USCentral\",\"Japan\"],\"enumValue\":\"Australia\",\"optEnumValue\":null}"; actualObj = JsonWrapper.DeserializeObject<EnumConversionTestClass>(expectedJson, PlayFabUtil.ApiSerializerStrategy); actualJson = JsonWrapper.SerializeObject(actualObj, PlayFabUtil.ApiSerializerStrategy); testContext.StringEquals(expectedJson.Replace(" ", "").Replace("\n", ""), actualJson.Replace(" ", "").Replace("\n", "")); testContext.ObjEquals(expectedObj, actualObj); testContext.EndTest(UUnitFinishState.PASSED, null); }
public void WriteEvent(UUnitTestContext testContext) { var request = new WriteClientPlayerEventRequest { EventName = "ForumPostEvent", Timestamp = DateTime.UtcNow, Body = new Dictionary<string, object> { { "Subject", "My First Post" }, { "Body", "My awesome Post." } } }; PlayFabClientAPI.WritePlayerEvent(request, PlayFabUUnitUtils.ApiCallbackWrapper<WriteEventResponse>(testContext, WriteEventCallback), SharedErrorCallback, testContext); }
public void AccountInfo(UUnitTestContext testContext) { GetAccountInfoRequest request = new GetAccountInfoRequest { PlayFabId = _playFabId }; PlayFabClientAPI.GetAccountInfo(request, PlayFabUUnitUtils.ApiCallbackWrapper<GetAccountInfoResult>(testContext, AcctInfoCallback), SharedErrorCallback, testContext); }
public void ClientLeaderBoard(UUnitTestContext testContext) { var clientRequest = new GetLeaderboardRequest(); clientRequest.MaxResultsCount = 3; clientRequest.StatisticName = TEST_STAT_NAME; PlayFabClientAPI.GetLeaderboard(clientRequest, PlayFabUUnitUtils.ApiCallbackWrapper<GetLeaderboardResult>(testContext, GetClientLbCallback), SharedErrorCallback, testContext); }
public void UserStatisticsApi(UUnitTestContext testContext) { if (!TITLE_CAN_UPDATE_SETTINGS) { testContext.EndTest(UUnitFinishState.SKIPPED, "This title cannot update statistics from the client"); return; } var getRequest = new GetUserStatisticsRequest(); PlayFabClientAPI.GetUserStatistics(getRequest, PlayFabUUnitUtils.ApiCallbackWrapper<GetUserStatisticsResult>(testContext, GetUserStatsCallback1), SharedErrorCallback, testContext); }
public void LoginOrRegister(UUnitTestContext testContext) { var loginRequest = new LoginWithCustomIDRequest(); loginRequest.CustomId = PlayFabSettings.BuildIdentifier; loginRequest.CreateAccount = true; PlayFabClientAPI.LoginWithCustomID(loginRequest, PlayFabUUnitUtils.ApiCallbackWrapper<LoginResult>(testContext, LoginCallback), SharedErrorCallback, testContext); }
public override void TearDown(UUnitTestContext testContext) { callbacks.Clear(); PlayFabSettings.HideCallbackErrors = false; PlayFabSettings.ForceUnregisterAll(); }
public override void SetUp(UUnitTestContext testContext) { PlayFabSettings.TitleId = "6195"; PlayFabSettings.ForceUnregisterAll(); _listener = new EventInstanceListener(); callbacks.Clear(); //if (!PlayFabClientAPI.IsClientLoggedIn()) //{ // // A few tests just need any valid auth token // LoginWithCustomIDRequest loginRequest = new LoginWithCustomIDRequest // { // CreateAccount = true, // CustomId = SystemInfo.deviceUniqueIdentifier // }; // PlayFabClientAPI.LoginWithCustomID(loginRequest, null, null, testContext); // // NOTE: Async callback needs to occcur before those tests run. Probably need to upgrade the SetUp to be async-capable... //} }
public void EnumConversionTest_OptionalEnum(UUnitTestContext testContext) { EnumConversionTestClass expectedObj = new EnumConversionTestClass(); expectedObj.enumList = new List<testRegion>() { testRegion.USEast, testRegion.USCentral, testRegion.Japan }; expectedObj.enumArray = new testRegion[] { testRegion.USEast, testRegion.USCentral, testRegion.Japan }; expectedObj.enumValue = testRegion.Australia; expectedObj.optEnumValue = null; var actualJson = JsonWrapper.SerializeObject(expectedObj, PlayFabUtil.ApiSerializerStrategy); var actualObj = JsonWrapper.DeserializeObject<EnumConversionTestClass>(actualJson, PlayFabUtil.ApiSerializerStrategy); testContext.ObjEquals(expectedObj, actualObj); expectedObj.optEnumValue = testRegion.Brazil; actualJson = JsonWrapper.SerializeObject(expectedObj, PlayFabUtil.ApiSerializerStrategy); actualObj = JsonWrapper.DeserializeObject<EnumConversionTestClass>(actualJson, PlayFabUtil.ApiSerializerStrategy); testContext.ObjEquals(expectedObj, actualObj); testContext.EndTest(UUnitFinishState.PASSED, null); }
public void EnumConversionTest_Deserialize(UUnitTestContext testContext) { EnumConversionTestClass expectedObj = new EnumConversionTestClass(), actualObj; expectedObj.enumList = new List<testRegion>() { testRegion.USEast, testRegion.USCentral, testRegion.Japan }; expectedObj.enumArray = new testRegion[] { testRegion.USEast, testRegion.USCentral, testRegion.Japan }; expectedObj.enumValue = testRegion.Australia; expectedObj.optEnumValue = null; string inputJson = "{\"enumList\":[" + ((int)testRegion.USEast) + "," + ((int)testRegion.USCentral) + "," + ((int)testRegion.Japan) + "],\"enumArray\":[" + ((int)testRegion.USEast) + "," + ((int)testRegion.USCentral) + "," + ((int)testRegion.Japan) + "],\"enumValue\":" + ((int)testRegion.Australia) + "}"; actualObj = JsonWrapper.DeserializeObject<EnumConversionTestClass>(inputJson, PlayFabUtil.ApiSerializerStrategy); testContext.ObjEquals(expectedObj, actualObj); testContext.EndTest(UUnitFinishState.PASSED, null); }
public void InvalidLogin(UUnitTestContext testContext) { // If the setup failed to log in a user, we need to create one. var request = new LoginWithEmailAddressRequest(); request.TitleId = PlayFabSettings.TitleId; request.Email = USER_EMAIL; request.Password = USER_PASSWORD + "INVALID"; PlayFabClientAPI.LoginWithEmailAddress(request, PlayFabUUnitUtils.ApiCallbackWrapper<LoginResult>(testContext, InvalidLoginCallback), PlayFabUUnitUtils.ApiErrorWrapper(testContext, ExpectedLoginErrorCallback), testContext); }
public void InvalidRegistration(UUnitTestContext testContext) { var registerRequest = new RegisterPlayFabUserRequest(); registerRequest.TitleId = PlayFabSettings.TitleId; registerRequest.Username = "******"; // Provide invalid inputs for multiple parameters, which will show up in errorDetails registerRequest.Email = "x"; // Provide invalid inputs for multiple parameters, which will show up in errorDetails registerRequest.Password = "******"; // Provide invalid inputs for multiple parameters, which will show up in errorDetails PlayFabClientAPI.RegisterPlayFabUser(registerRequest, PlayFabUUnitUtils.ApiCallbackWrapper<RegisterPlayFabUserResult>(testContext, InvalidRegistrationCallback), PlayFabUUnitUtils.ApiErrorWrapper(testContext, ExpectedRegisterErrorCallback), testContext); }
private static void CheckCallbacks(UUnitTestContext testContext, string expected, HashSet<string> actual) { testContext.True(actual.Contains(expected), "Want: " + expected + ", Got: " + string.Join(", ", actual.ToArray())); }
public void LoginWithAdvertisingId(UUnitTestContext testContext) { PlayFabSettings.AdvertisingIdType = PlayFabSettings.AD_TYPE_ANDROID_ID; PlayFabSettings.AdvertisingIdValue = "PlayFabTestId"; var loginRequest = new LoginWithCustomIDRequest(); loginRequest.CustomId = PlayFabSettings.BuildIdentifier; loginRequest.CreateAccount = true; PlayFabClientAPI.LoginWithCustomID(loginRequest, PlayFabUUnitUtils.ApiCallbackWrapper<LoginResult>(testContext, AdvertLoginCallback), SharedErrorCallback, testContext); }
public void TestInstCallbacks_GeneralOnly(UUnitTestContext testContext) { _listener.Register(); PlayFabClientAPI.LoginWithCustomID(new LoginWithCustomIDRequest { CreateAccount = true, CustomId = "UnitySdk-UnitTest", TitleId = "6195" }, PlayFabUUnitUtils.ApiCallbackWrapper<LoginResult>(testContext, TestInstCallbacks_GeneralOnlyCallback), null, testContext); testContext.True(callbacks.Contains("OnRequest_InstGl"), string.Join(", ", callbacks.ToArray())); testContext.True(callbacks.Contains("OnRequest_InstLogin"), string.Join(", ", callbacks.ToArray())); testContext.IntEquals(2, callbacks.Count, string.Join(", ", callbacks.ToArray())); callbacks.Clear(); }
public void UserCharacter(UUnitTestContext testContext) { var request = new ListUsersCharactersRequest(); request.PlayFabId = _playFabId; // Received from client upon login PlayFabClientAPI.GetAllUsersCharacters(request, PlayFabUUnitUtils.ApiCallbackWrapper<ListUsersCharactersResult>(testContext, GetCharsCallback), SharedErrorCallback, testContext); }
public void TestStaticCallbacks_Local(UUnitTestContext testContext) { EventStaticListener.Register(); PlayFabClientAPI.LoginWithCustomID(new LoginWithCustomIDRequest { CreateAccount = true, CustomId = "UnitySdk-UnitTest", TitleId = "6195" }, PlayFabUUnitUtils.ApiCallbackWrapper<LoginResult>(testContext, TestStaticCallbacks_LocalCallback), SharedErrorCallback, testContext); CheckCallbacks(testContext, "OnRequest_StaticGl", callbacks); CheckCallbacks(testContext, "OnRequest_StaticLogin", callbacks); testContext.IntEquals(2, callbacks.Count, string.Join(", ", callbacks.ToArray())); callbacks.Clear(); }
public void ServerLeaderBoard(UUnitTestContext testContext) { var serverRequest = new ServerModels.GetLeaderboardRequest(); serverRequest.MaxResultsCount = 3; serverRequest.StatisticName = TEST_STAT_NAME; PlayFabServerAPI.GetLeaderboard(serverRequest, PlayFabUUnitUtils.ApiCallbackWrapper<ServerModels.GetLeaderboardResult>(testContext, GetServerLbCallback), SharedErrorCallback, testContext); }
public void TestCallbackFailuresGlobal(UUnitTestContext testContext) { PlayFabSettings.HideCallbackErrors = true; PlayFabSettings.RegisterForResponses(null, (PlayFabSettings.ResponseCallback<object, PlayFabResultCommon>)SuccessCallback_Global); GetCatalogItemsRequest catalogRequest = new GetCatalogItemsRequest(); PlayFabClientAPI.GetCatalogItems(catalogRequest, PlayFabUUnitUtils.ApiCallbackWrapper<GetCatalogItemsResult>(testContext, GetCatalogItemsCallback_Single), SharedErrorCallback, testContext); }
public void CloudScript(UUnitTestContext testContext) { var request = new ExecuteCloudScriptRequest { FunctionName = "helloWorld" }; PlayFabClientAPI.ExecuteCloudScript(request, PlayFabUUnitUtils.ApiCallbackWrapper<ExecuteCloudScriptResult>(testContext, CloudScriptHwCallback), SharedErrorCallback, testContext); }
public void TestCallbackFailuresLocal(UUnitTestContext testContext) { PlayFabSettings.HideCallbackErrors = true; PlayFabSettings.GlobalErrorHandler += SharedError_Global; RegisterPlayFabUserRequest registerRequest = new RegisterPlayFabUserRequest(); // A bad request that will fail PlayFabClientAPI.RegisterPlayFabUser(registerRequest, null, PlayFabUUnitUtils.ApiErrorWrapper(testContext, SharedError_Single), testContext); }
public override void Tick(UUnitTestContext testContext) { // No async work needed }
public override void SetUp(UUnitTestContext testContext) { base.SetUp(testContext); PlayFabAndroidPushPlugin.Setup(AndroidPushSenderId); }