public void CanFindMethodWithAmbiguousOverloads()
        {
            var viewContext = _mocks.DynamicViewContext("someView");
            var viewDataContainer = _mocks.DynamicMock<IViewDataContainer>();

            HtmlExtensionDuck.AddExtension(typeof(HtmlExtensionForTesting));
            var htmlExtensionDuck = new HtmlExtensionDuck(viewContext, viewDataContainer);

            object result = htmlExtensionDuck.Invoke("Bar", "x");

            Assert.That(result, Is.EqualTo("Bar"));
        }
        public void CanInvokeMethodWithParamsArray()
        {
            var viewContext = _mocks.DynamicViewContext("someView");
            var viewDataContainer = _mocks.DynamicMock<IViewDataContainer>();

            HtmlExtensionDuck.AddExtension(typeof(HtmlExtensionForTesting));
            var htmlExtensionDuck = new HtmlExtensionDuck(viewContext, viewDataContainer);
            Object[] args = {"foo", "bar"};
            object result = htmlExtensionDuck.Invoke("Bar", args);

            Assert.That(result, Is.EqualTo("Bar3"));
        }
        public void CanAddExtensionsToHtmlExtensionDuck()
        {
            var viewContext = _mocks.DynamicViewContext("someView");
            var viewDataContainer = _mocks.DynamicMock<IViewDataContainer>();

            HtmlExtensionDuck.AddExtension(typeof(HtmlExtensionForTesting));
            var htmlExtensionDuck = new HtmlExtensionDuck(viewContext, viewDataContainer);

            object result = htmlExtensionDuck.Invoke("Foo");

            Assert.That(result, Is.EqualTo("Bar"));
        }