public void ExceptionToError() { var fulcrumException = new FulcrumAssertionFailedException(Guid.NewGuid().ToString()) { TechnicalMessage = Guid.NewGuid().ToString(), FriendlyMessage = Guid.NewGuid().ToString(), CorrelationId = Guid.NewGuid().ToString(), Code = Guid.NewGuid().ToString(), ErrorLocation = Guid.NewGuid().ToString(), MoreInfoUrl = Guid.NewGuid().ToString(), RecommendedWaitTimeInSeconds = 100.0, ServerTechnicalName = Guid.NewGuid().ToString() }; var fulcrumError = new FulcrumError(); fulcrumError.CopyFrom(fulcrumException); // Equal UT.Assert.AreEqual(fulcrumError.Code, fulcrumException.Code); UT.Assert.AreEqual(fulcrumError.RecommendedWaitTimeInSeconds, fulcrumException.RecommendedWaitTimeInSeconds); UT.Assert.AreEqual(fulcrumError.ServerTechnicalName, fulcrumException.ServerTechnicalName); UT.Assert.AreEqual(fulcrumError.FriendlyMessage, fulcrumException.FriendlyMessage); UT.Assert.AreEqual(fulcrumError.Type, fulcrumException.Type); UT.Assert.AreEqual(fulcrumError.MoreInfoUrl, fulcrumException.MoreInfoUrl); UT.Assert.AreEqual(fulcrumError.ServerTechnicalName, fulcrumException.ServerTechnicalName); UT.Assert.AreEqual(fulcrumError.CorrelationId, fulcrumException.CorrelationId); UT.Assert.AreEqual(fulcrumError.InstanceId, fulcrumException.InstanceId); UT.Assert.AreEqual(fulcrumError.IsRetryMeaningful, fulcrumException.IsRetryMeaningful); UT.Assert.AreEqual(fulcrumError.ErrorLocation, fulcrumException.ErrorLocation); UT.Assert.AreEqual(fulcrumError.InstanceId, fulcrumException.InstanceId); UT.Assert.AreEqual(fulcrumError.InnerInstanceId, fulcrumException.InnerInstanceId); // Other tests UT.Assert.IsNull(fulcrumException.InnerException); }
/// <summary> /// Convert an exception (<paramref name="exception"/>) into a <see cref="FulcrumError"/>. /// </summary> public static FulcrumError ToFulcrumError(Exception exception, bool topLevelMustBeFulcrumException) { if (exception == null) { return(null); } var fulcrumError = new FulcrumError(); if ((exception is FulcrumException fulcrumException)) { fulcrumError.CopyFrom(fulcrumException); }
/// <summary> /// Convert an exception (<paramref name="e"/>) into a <see cref="FulcrumError"/>. /// </summary> public static FulcrumError ToFulcrumError(Exception e) { var fulcrumException = e as FulcrumException; if (fulcrumException == null) { return(null); } var error = new FulcrumError(); error.CopyFrom(fulcrumException); error.InnerError = ToFulcrumError(fulcrumException.InnerException); return(error); }
public async Task ConvertNormal() { var fulcrumException = new FulcrumServiceContractException("Test message"); var fulcrumError = new FulcrumError(); fulcrumError.CopyFrom(fulcrumException); Assert.IsNotNull(fulcrumError); var json = JObject.FromObject(fulcrumError); var content = json.ToString(Formatting.Indented); var responseMessage = new HttpResponseMessage(HttpStatusCode.BadRequest) { Content = new StringContent(content, Encoding.UTF8) }; var result = await ExceptionConverter.ToFulcrumExceptionAsync(responseMessage); Assert.AreEqual(fulcrumException.TechnicalMessage, result.TechnicalMessage); }