public static ErrorReport FromException(Exception exc) { if (exc == null) { return null; } var errorReport = new ErrorReport { Message = exc.Message, #if !(SILVERLIGHT || WinRT) Source = exc.Source, #endif StackTrace = exc.StackTrace, AdditionalData = GetAdditionalData(exc) }; // Populate additional data from providers foreach (var errorDataProvider in GlobalConfig.ErrorDataProviders) { foreach (var keyValuePair in errorDataProvider.GetData()) { errorReport.AdditionalData.Add(keyValuePair); } } return errorReport; }
public void TryStore_Always_CallsReportRequestBuilderBuildWithReport() { var errorReport = new ErrorReport(); new SequentialResult(_subject.Save(errorReport)).Execute(new ExecutionContext()); _mockReportRequestBuilder.Verify(m => m.BuildAsync(errorReport)); }
public void TryStore_WhenNoException_ReturnsTrue() { var errorReport = new ErrorReport(); var mockRequest = new Mock<WebRequest>(); _mockReportRequestBuilder.Setup(m => m.BuildAsync(errorReport)) .Raises(m => m.BuildCompleted += null, new ReportRequestBuildCompletedEventArgs { Result = mockRequest.Object }); ErrorReportSaveCompletedEventArgs eventArgs = null; _subject.SaveCompleted += (o, e) => { eventArgs = e; }; _subject.Save(errorReport).ToList(); Assert.IsTrue(eventArgs.Success); }
public void Serialize_WhenPropertyIsNull_SetsEmpty() { var errorReport = new ErrorReport { Message = null, Source = null, StackTrace = null }; var result = _subject.Serialize(errorReport); Assert.AreEqual("message=&source=&stackTrace=", result); }
public void Serialize_Always_FormatsStringProperties() { var errorReport = new ErrorReport { Message = "test message", Source = "source", StackTrace = "stack trace" }; var result = _subject.Serialize(errorReport); Assert.AreEqual("message=test%20message&source=source&stackTrace=stack%20trace", result); }
public void Serialize_Always_AddsDataFromAdditionalData() { var errorReport = new ErrorReport { Message = "test message", Source = "source", StackTrace = "stack trace" }; errorReport.AdditionalData.Add(new KeyValuePair<string, string>("OS", "WinXp")); errorReport.AdditionalData.Add(new KeyValuePair<string, string>("NET_VERSION", "3.5")); var result = _subject.Serialize(errorReport); Assert.AreEqual("message=test%20message&source=source&stackTrace=stack%20trace&additionalData[OS]=WinXp&additionalData[NET_VERSION]=3.5", result); }