public void Generate_WhenGeneratedFunctionIsCalledWithTooManyParameters_ThrowsInvalidOperationException() { var generator = new StringArgFactoryGenerator <IStringFilter>(); var factory = generator.Generate <TrimFilter>(); Assert.Throws <InvalidOperationException>(() => factory(new[] { "Too many params" })); }
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")); }
public void Generate_WhenTypeHasParameterlessPublicConstructor_CreatesASimpleFactoryFunction() { var generator = new StringArgFactoryGenerator <IStringFilter>(); var factory = generator.Generate <TrimFilter>(); var result = factory(null); Assert.IsType <TrimFilter>(result); }
public void Generate_WhenTypeHasNoPublicConstructor_ThrowsInvalidOperationException() { var generator = new StringArgFactoryGenerator <IStringFilter>(); Assert.Throws <InvalidOperationException>(() => generator.Generate <PrivateConstructor>()); }