public void MediaRetryPolicyTestExecuteAsyncRetryHasBeenAdaptedOnce() { var adapter = new TestRetryAdapter(); MediaRetryPolicy target = new TestMediaServicesClassFactory(null).GetSaveChangesRetryPolicy(adapter); int exceptionCount = 2; int expected = 10; var fakeException = new WebException("test", WebExceptionStatus.ConnectionClosed); Func <int> func = () => { if (--exceptionCount > 0) { throw fakeException; } return(expected); }; var task = target.ExecuteAsync(() => Task.Factory.StartNew <int>(() => func())); Assert.AreEqual(expected, task.Result); Assert.AreEqual(0, exceptionCount); Assert.AreEqual(1, adapter.NumberOfAdaptCalled); Assert.AreEqual(2, adapter.FuncExecutedCountByExecuteAsync1); }
public void MediaRetryPolicyTestExecuteActionAdapter() { var adapter = new TestRetryAdapter(); MediaRetryPolicy target = new TestMediaServicesClassFactory(null).GetSaveChangesRetryPolicy(adapter); int exceptionCount = 2; int expected = 10; var fakeException = new WebException("test", WebExceptionStatus.ConnectionClosed); Func <int> func = () => { if (--exceptionCount > 0) { throw fakeException; } return(expected); }; Assert.AreEqual(expected, target.ExecuteAction(func)); Assert.AreEqual(2, adapter.FuncExecutedCountByExecuteAction); Assert.AreEqual(1, adapter.NumberOfAdaptCalled); }