public void CanExecuteFirstAttempt()
        {
            var p = new PollyFluentPolicy();

            executor = new ServiceRetryExecutor(p);
            var res = executor.Execute(() => { return(1 + 1); });

            Assert.AreEqual(2, res);
        }
        public void PollyFluentPolicyCanExecute()
        {
            var p = new PollyFluentPolicy();

            p.AddType <TimeoutException>().AddOrType <FaultException>();

            var res = p.Execute(() => { return(1 + 1); }, 5);

            Assert.AreEqual(2, res);
        }
        public void PollyFluentPolicyCanReturnDefaultAfter5Failures()
        {
            var p = new PollyFluentPolicy();

            p.AddType <TimeoutException>().AddOrType <FaultException>();

            var res = p.Execute(FakeMethodThatFails, 5);

            Assert.AreEqual(0, res);   // As its int after 5 failures return default which is 0
            Assert.AreEqual(6, total); // 5 retries plus the original attempt
        }
        public void CrmRetryExecutorImplementsIPolicyBuilderInterface()
        {
            var p = new PollyFluentPolicy();

            Assert.IsInstanceOfType(p, typeof(IPolicyBuilder <PollyFluentPolicy>));
        }