public void ReplaceMeWithRealTests()
        {
            /*
             * This test is for illustrative purposes, to show the interfaces a typical asynchronous non-generic policy fulfills.
             * Real tests should check policy behaviour.
             */
            AsyncTokenBucket policy = AsyncTokenBucket.Create();

            policy.Should().BeAssignableTo <IAsyncPolicy>();
            policy.Should().BeAssignableTo <ITokenBucket>();
        }
        public async Task PolicyExecutesThePassedDelegate()
        {
            bool             executed = false;
            AsyncTokenBucket policy   = AsyncTokenBucket.Create();

            await policy.ExecuteAsync(() =>
            {
                executed = true;
                return(Task.CompletedTask);
            });

            executed.Should().BeTrue();
        }
        public async Task PolicyExecutesThePassedDelegate()
        {
            bool executed = false;
            AsyncTokenBucket <int> policy = AsyncTokenBucket <int> .Create();

            await policy.ExecuteAsync(() =>
            {
                executed = true;
                return(Task.FromResult(0));
            });

            executed.Should().BeTrue();
        }