Beispiel #1
0
        IEnumerator TestRestAsync()
        {
            Terminal.LogImportant("TestRestAsync");

            var score = new Score
            {
                Points   = Strings.RandomNumber(100, 10000),
                Points2  = Strings.RandomNumber(100, 10000),
                UserName = Strings.RandomString(10),
            };

            // CREATE
            Terminal.Log("CREATE");
            // get task
            var result1 = Repository.Create(score);

            // wait for it
            yield return(StartCoroutine(result1.WaitRoutine()));

            // client error
            result1.ThrowIfFaulted();
            // server error
            if (result1.Result.hasError)
            {
                throw new Exception(result1.Result.error.message);
            }

            //GET
            Terminal.Log("GET 2");
            var result2B = Repository.Get <Score>(score.UserName, score.Points);

            yield return(StartCoroutine(result2B.WaitRoutine()));

            result2B.ThrowIfFaulted();
            if (result2B.Result.hasError)
            {
                throw new Exception(result2B.Result.error.message);
            }
            var score2 = result2B.Result.data;

            score2.Points += 100;

            //UPDATE
            Terminal.Log("UPDATE");
            var result3 = Repository.Update(score2);

            yield return(StartCoroutine(result3.WaitRoutine()));

            result3.ThrowIfFaulted();
            if (result3.Result.hasError)
            {
                throw new Exception(result3.Result.error.message);
            }
            var score3 = result3.Result.data;

            //COMPARE 2 and 3
            Assert.IsTrue(score.Points + 100 == score3.Points, "update did not get");

            //DELETE
            Terminal.Log("DELETE");
            var resultd = Repository.Delete(score3);

            yield return(StartCoroutine(resultd.WaitRoutine()));

            resultd.ThrowIfFaulted();
            if (resultd.Result.hasError)
            {
                throw new Exception(resultd.Result.error.message);
            }

            //GET 3
            Terminal.Log("GET 3");
            var result4 = Repository.Get <Score>(score.UserName, score.Points);

            yield return(StartCoroutine(result4.WaitRoutine()));

            result4.ThrowIfFaulted();
            if (result4.Result.hasError)
            {
                throw new Exception(result4.Result.error.message);
            }

            // INCR
            Terminal.Log("INCR");
            var result5 = Repository.Incr(score, "Points2");

            yield return(StartCoroutine(result5.WaitRoutine()));

            result5.ThrowIfFaulted();
            if (result5.Result.hasError)
            {
                throw new Exception(result5.Result.error.message);
            }
            Assert.IsTrue(result5.Result.data.Points2 > score.Points2, "Incr Failed");

            // DECR
            Terminal.Log("DECR");
            var result6 = Repository.Decr(score, "Points2", 2);

            yield return(StartCoroutine(result6.WaitRoutine()));

            result5.ThrowIfFaulted();
            if (result6.Result.hasError)
            {
                throw new Exception(result6.Result.error.message);
            }
            Assert.IsTrue(result6.Result.data.Points2 < score.Points2, "Decr failed");

            Terminal.LogSuccess("Test Success");
        }