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); }
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); }