public IEnumerator NetworkError() { var client = new GraphQLClient("https://non_resolvable_host_123123123123123"); var request = new Request { Query = "{ continents { name } }" }; var responseType = new { continents = new [] { new { name = "" } } }; var response = client.Send(() => responseType, request); yield return(response.AsCoroutineUnchecked()); var ex = response.Expect <UnityWebRequestException>(); #if UNITY_2020_2_OR_NEWER Assert.AreEqual(ex.Result, UnityWebRequest.Result.ConnectionError); #else Assert.IsTrue(ex.IsNetworkError); #endif }
public IEnumerator SimpleQuery() { var client = new GraphQLClient(Uri); var request = new Request { Query = "{ continents { name } }" }; var responseType = new { continents = new [] { new { name = "" } } }; var response = client.Send(() => responseType, request); yield return(response.AsCoroutine()); Assert.IsNull(response.Result.Errors); var data = response.Result.Data; Assert.IsNotNull(data); Assert.IsNotNull(data.continents); Assert.IsTrue(data.continents.Any(c => c.name == "Europe")); }
public IEnumerator Http404Error() { var client = new GraphQLClient("https://google.com/url_that_returns_404_lsdfksadjflksdafjs"); var request = new Request { Query = "{ continents { name } }" }; var responseType = new { continents = new [] { new { name = "" } } }; var response = client.Send(() => responseType, request); yield return(response.AsCoroutineUnchecked()); var ex = response.Expect <UnityWebRequestException>(); #if UNITY_2020_2_OR_NEWER Assert.AreEqual(ex.Result, UnityWebRequest.Result.ProtocolError); #else Assert.IsTrue(ex.IsHttpError); #endif Assert.AreEqual(ex.ResponseCode, 404); }
public IEnumerator MalformedQuery() { var client = new GraphQLClient(Uri); var query = new Request { Query = "{ continents MALFORMED name } }" }; var responseType = new { continents = new [] { new { name = "" } } }; var response = client.Send(() => responseType, query); yield return(response.AsCoroutineUnchecked()); var ex = response.Expect <UnityWebRequestException>(); Assert.AreEqual(ex.ResponseCode, 400); // Bad request var errors = DeserializeResponse(() => responseType, ex.Text).Errors; Assert.IsNotNull(errors); Assert.IsNotEmpty(errors); Assert.IsNotNull(errors[0].Message); }
public IEnumerator QueryWithArgs() { var client = new GraphQLClient(Uri); var request = new Request { Query = "query ContinentNameByCode($code: ID!) { continent(code: $code) { name } }", Variables = new { code = "EU" } }; var responseType = new { continent = new { name = "" } }; var response = client.Send(() => responseType, request); yield return(response.AsCoroutine()); Assert.IsNull(response.Result.Errors); var data = response.Result.Data; Assert.IsNotNull(data); Assert.IsNotNull(data.continent); Assert.AreEqual(data.continent.name, "Europe"); }