public void TemplateIsCorrect() { Action dummy = delegate { }; var sut = new TemplateMethodQuery(dummy.GetMethodInfo()); Assert.Equal(dummy.GetMethodInfo(), sut.Template); }
public void SelectMethodsWithNullThrows() { Action dummy = delegate { }; var sut = new TemplateMethodQuery(dummy.GetMethodInfo()); Assert.Throws <ArgumentNullException>(() => sut.SelectMethods(null)); }
public void SutIsIMethodQuery() { Action dummy = delegate { }; var sut = new TemplateMethodQuery(dummy.GetMethodInfo()); Assert.IsAssignableFrom <IMethodQuery>(sut); }
public void OwnerIsCorrect() { Action dummy = delegate { }; var owner = new object(); var sut = new TemplateMethodQuery(dummy.GetMethodInfo(), owner); Assert.Equal(owner, sut.Owner); }
public void SelectMethodsReturnsCorrectResultWhenInitializedWithNullOwner(Type templateType, string methodName, Type targetType, object[] arguments, object[] expected) { var templateMethod = templateType.GetMethod(methodName); var sut = new TemplateMethodQuery(templateMethod); var results = sut.SelectMethods(targetType) .Select(m => m.Invoke(arguments)) .ToArray(); Assert.Equal(expected, results); }
public void SelectMethodsReturnsCorrectResult(Type templateType, string methodName, Type targetType, object[] arguments, object[] expected) { var templateMethod = templateType.GetMethod(methodName); var owner = Activator.CreateInstance(targetType); var sut = new TemplateMethodQuery(templateMethod, owner); var results = sut.SelectMethods(targetType) .Select(m => m.Invoke(arguments)) .ToArray(); Assert.Equal(expected, results); }
public void SelectMethodsDoesNotReturnIncorrectResult() { var templateMethod = typeof(TypeWithTemplateMethods).GetMethod("MethodWithFunc"); var sut = new TemplateMethodQuery(templateMethod); var results = sut.SelectMethods(typeof(TypeWithMethods)) .Select(m => m.Invoke(new[] { new Func <string>(() => string.Empty) })); var result = Assert.Single(results); Assert.True((bool)result); }
public void SelectMethodsReturnsInCorrectOrderWhenInitializedWithNullOwner(Type templateType, Type targetType, string methodName, object[] arguments) { var templateMethod = templateType.GetMethod(methodName); var owner = Activator.CreateInstance(targetType); var sut = new TemplateMethodQuery(templateMethod, owner); var results = sut.SelectMethods(targetType) .Select(m => m.Invoke(arguments)) .ToArray(); var expected = Enumerable.Range(0, results.Count()).Cast <object>().ToArray(); Assert.Equal(expected, results); }