public void Should_call_the_method_only_once() { var tracker = new Tracker(3); IRetryPolicy retryPolicy = Retry.Filter <InvalidOperationException>(x => false).Immediate(5); Task task = ComposerFactory.Compose(composer => composer.Retry(retryPolicy, x => x.Execute(tracker.FaultingMethod))); Assert.Throws <InvalidOperationException>(async() => await task); Assert.AreEqual(1, tracker.CallCount); }