public void When_PrincipalSetter_Expect_DirectAccess()
        {
            var p      = new ParameterExample();
            var setter = p.CreateSetter <double>();

            setter(1.0);
            Assert.AreEqual(1.0, p.PrincipalTest.Value, 1e-12);
            setter(10.0);
            Assert.AreEqual(10.0, p.PrincipalTest.Value, 1e-12);
        }
        public void When_SetterForParameterProperty_Expect_DirectAccess()
        {
            var p      = new ParameterExample();
            var setter = p.CreateSetter <double>("parameter1");

            Assert.AreEqual(false, p.Parameter1.Given);
            setter(1.0);
            Assert.AreEqual(1.0, p.Parameter1.Value, 1e-12);
            Assert.AreEqual(true, p.Parameter1.Given);
        }
        public void When_SetterForProperty_Expect_DirectAccess()
        {
            var p      = new ParameterExample();
            var setter = p.CreateSetter <int>("property2");

            setter(1);
            Assert.AreEqual(1, p.Property2);
            setter(10);
            Assert.AreEqual(10, p.Property2);
        }
        public void When_SetterForMethod_Expect_DirectAccess()
        {
            var p      = new ParameterExample();
            var setter = p.CreateSetter <double>("method1");

            setter(1.0);
            Assert.AreEqual(1.0, p.Property1, 1e-12);
            setter(10.0);
            Assert.AreEqual(10.0, p.Property1, 1e-12);
        }
        public void When_SetterForGetOnlyProperty_Expect_Null()
        {
            var p = new ParameterExample();

            Assert.AreEqual(null, p.CreateSetter <double>("property1"));
        }