public void UnknownMessagingErrorCode() { var json = @"{ ""error"": { ""status"": ""PERMISSION_DENIED"", ""message"": ""Test error message"", ""details"": [ { ""@type"": ""type.googleapis.com/google.firebase.fcm.v1.FcmError"", ""errorCode"": ""SOMETHING_UNUSUAL"" } ] } }"; var resp = new HttpResponseMessage() { StatusCode = HttpStatusCode.ServiceUnavailable, Content = new StringContent(json, Encoding.UTF8, "application/json"), }; var handler = new MessagingErrorHandler(); var error = Assert.Throws <FirebaseMessagingException>(() => handler.ThrowIfError(resp, json)); Assert.Equal(ErrorCode.PermissionDenied, error.ErrorCode); Assert.Equal("Test error message", error.Message); Assert.Null(error.MessagingErrorCode); Assert.Same(resp, error.HttpResponse); Assert.Null(error.InnerException); }
public void NoDetails() { var json = @"{}"; var resp = new HttpResponseMessage() { StatusCode = HttpStatusCode.ServiceUnavailable, Content = new StringContent(json, Encoding.UTF8, "application/json"), }; var handler = new MessagingErrorHandler(); var error = Assert.Throws <FirebaseMessagingException>(() => handler.ThrowIfError(resp, json)); Assert.Equal(ErrorCode.Unavailable, error.ErrorCode); Assert.Equal( "Unexpected HTTP response with status: 503 (ServiceUnavailable)\n{}", error.Message); Assert.Null(error.MessagingErrorCode); Assert.Same(resp, error.HttpResponse); Assert.Null(error.InnerException); }
public void PlatformError() { var json = @"{ ""error"": { ""status"": ""UNAVAILABLE"", ""message"": ""Test error message"" } }"; var resp = new HttpResponseMessage() { StatusCode = HttpStatusCode.ServiceUnavailable, Content = new StringContent(json, Encoding.UTF8, "application/json"), }; var handler = new MessagingErrorHandler(); var error = Assert.Throws <FirebaseMessagingException>(() => handler.ThrowIfError(resp, json)); Assert.Equal(ErrorCode.Unavailable, error.ErrorCode); Assert.Equal("Test error message", error.Message); Assert.Null(error.MessagingErrorCode); Assert.Same(resp, error.HttpResponse); Assert.Null(error.InnerException); }