Example #1
0
        public void Generate_WhenGeneratedFunctionIsCalledWithTooManyParameters_ThrowsInvalidOperationException()
        {
            var generator = new StringArgFactoryGenerator <IStringFilter>();
            var factory   = generator.Generate <TrimFilter>();

            Assert.Throws <InvalidOperationException>(() => factory(new[] { "Too many params" }));
        }
Example #2
0
        public void Generate_WhenTypeHasIntParameters_CreatesFactoryThatAcceptsThoseParameters()
        {
            var generator = new StringArgFactoryGenerator <IStringFilter>();

            var factory = generator.Generate <SubstringFilter>();
            var result  = factory(new[] { "2", "4" });

            Assert.Equal("ooBa", result.Apply("FooBar"));
        }
Example #3
0
        public void Generate_WhenTypeHasParameterlessPublicConstructor_CreatesASimpleFactoryFunction()
        {
            var generator = new StringArgFactoryGenerator <IStringFilter>();

            var factory = generator.Generate <TrimFilter>();
            var result  = factory(null);

            Assert.IsType <TrimFilter>(result);
        }
Example #4
0
        public void Generate_WhenTypeHasNoPublicConstructor_ThrowsInvalidOperationException()
        {
            var generator = new StringArgFactoryGenerator <IStringFilter>();

            Assert.Throws <InvalidOperationException>(() => generator.Generate <PrivateConstructor>());
        }