// HACK: just duplicating the other overload of 'GetErrorCode' /// <summary>Hack around lack of proper way of retrieving the error code through a property.</summary> public static string GetErrorCode(DataServiceQueryException ex) { var o = JsonConvert.DeserializeObject<ODataWrapper>(ex.InnerException.Message); if (o == null || o.Error == null || o.Error.Code == null) return string.Empty; return o.Error.Code; }
public void WebRequestTransientErrorDetectionStrategyTestDataServiceQueryException() { // Unfortunately this exception isn't easy to Mock with an actual error code so just // do a basic test var exception = new DataServiceQueryException("Simulated DataServiceQueryException"); bool actual = new WebRequestTransientErrorDetectionStrategy().IsTransient(exception); Assert.IsFalse(actual); }
public void StorageTransientErrorDetectionStrategyDataServiceClientExceptionTestByErrorString() { List<String> allStorageErrorCodeStrings = GetAllStorageErrorStringConstants(); StorageTransientErrorDetectionStrategy strategy = new StorageTransientErrorDetectionStrategy(); foreach (string errorString in allStorageErrorCodeStrings) { var innerException = new Exception(FormatErrorString(errorString)); var exception = new DataServiceQueryException("Simulated DataServiceQueryException", innerException); if (strategy.IsTransient(exception)) { Assert.IsTrue(SupportedRetryableStorageErrorStrings.Contains(errorString)); } else { Assert.IsFalse(SupportedRetryableStorageErrorStrings.Contains(errorString)); } } }
// HACK: just duplicating the other overload of 'GetErrorCode' /// <summary>Hack around lack of proper way of retrieving the error code through a property.</summary> public static string GetErrorCode(DataServiceQueryException ex) { var r = new Regex(@"<code>(\w+)</code>", RegexOptions.IgnoreCase); var match = r.Match(ex.InnerException.Message); return match.Groups[1].Value; }
private static bool IsResourceNotFoundError(DataServiceQueryException ex) { return ex.InnerException is DataServiceClientException && ((DataServiceClientException)ex.InnerException).StatusCode == 404; }