public void ReturnNewStep()
        {
            var newStep      = new MockIndexerStep <int, string>();
            var returnedStep = ((ICanHaveNextIndexerStep <int, string>)_indexerMock).SetNextStep(newStep);

            Assert.Same(newStep, returnedStep);
        }
        public void SetStepUsedBySetter()
        {
            bool called  = false;
            var  newStep = new MockIndexerStep <int, string>();

            newStep.Set.Action(_ => called = true);
            ((ICanHaveNextIndexerStep <int, string>)_indexerMock).SetNextStep(newStep);
            _indexerMock[5] = "5";
            Assert.True(called);
        }
        public void SetStepUsedByGetter()
        {
            bool called  = false;
            var  newStep = new MockIndexerStep <int, string>();

            newStep.Get.Func(_ =>
            {
                called = true;
                return("5");
            });
            ((ICanHaveNextIndexerStep <int, string>)_indexerMock).SetNextStep(newStep);
            // ReSharper disable once UnusedVariable
            var ignored = _indexerMock[5];

            Assert.True(called);
        }