예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #5
0
        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);
        }