public void ReturnNewStep()
        {
            var newStep      = new MockPropertyStep <int>();
            var returnedStep = ((ICanHaveNextPropertyStep <int>)_propertyMock).SetNextStep(newStep);

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

            newStep.Set.Action(_ => called = true);
            ((ICanHaveNextPropertyStep <int>)_propertyMock).SetNextStep(newStep);
            _propertyMock.Value = 5;
            Assert.True(called);
        }
        public void SetStepUsedByValueGetter()
        {
            bool called  = false;
            var  newStep = new MockPropertyStep <int>();

            newStep.Get.Func(_ =>
            {
                called = true;
                return(5);
            });
            ((ICanHaveNextPropertyStep <int>)_propertyMock).SetNextStep(newStep);
            // ReSharper disable once UnusedVariable
            var ignored = _propertyMock.Value;

            Assert.True(called);
        }