public void ConfigurationBuilder_TryInvokeMember_KnownMethodStrategy_IsExecutedWithCorrectParameters()
        {
            var strategyMock = new Mock<IMethodStrategy>();
            var config = new DynamicConfiguration();
            strategyMock.Setup(s => s.IsMatch(It.IsAny<string>())).Returns(true);

            var strategyList = new List<IMethodStrategy> { strategyMock.Object };

            dynamic configurationBuilder = new ConfigurationBuilder(config, strategyList);
            configurationBuilder.SomeExpectedMethod("ParamValue");
            strategyMock.Verify(s => s.Execute("SomeExpectedMethod", config, new object[] { "ParamValue" }));
        }
        public void ConfigurationBuilder_TryInvokeMember_KnownMethodStrategy_IsExecuted()
        {
            var strategyMock = new Mock<IMethodStrategy>();
            var config = new DynamicConfiguration();
            strategyMock.Setup(s => s.IsMatch(It.IsAny<string>())).Returns(true);

            var strategyList = new List<IMethodStrategy> { strategyMock.Object };

            dynamic configurationBuilder = new ConfigurationBuilder(config, strategyList);
            configurationBuilder.SomeExpectedMethod();
            strategyMock.Verify(s => s.Execute(It.IsAny<string>(), It.IsAny<Object>(), It.IsAny<Object[]>()));
        }
        public void ConfigurationBuilder_TryInvokeMember_KnownMethodStrategy_IsReturnsBuilder()
        {
            var strategyMock = new Mock<IMethodStrategy>();
            var config = new DynamicConfiguration();
            strategyMock.Setup(s => s.IsMatch(It.IsAny<string>())).Returns(true);

            var strategyList = new List<IMethodStrategy> { strategyMock.Object };

            dynamic configurationBuilder = new ConfigurationBuilder(config, strategyList);
            dynamic returnedValue = configurationBuilder.SomeExpectedMethod();

            Assert.AreEqual(configurationBuilder, returnedValue);
        }