public void GetAddonElements_should_handle_nonwhitespace_strings() { var items = new object[] { new Beta(), " text ", new Beta() }; var addonElements = ReflectionMetaObject.GetAddonElements(items); Assert.Same(items, addonElements); }
public void GetAddonElements_should_convert_to_strings_and_trim() { var items = new object[] { " ", "text", "a", " ", "b " }; var addonElements = ReflectionMetaObject.GetAddonElements(items); Assert.Equal(new[] { "texta b" }, addonElements); }
public void FindAddonMethod_should_use_best_matching_addon_method_heterogenous() { var items = new object[] { "a", 2, new Beta() }; var addon = ReflectionMetaObject.FindAddonMethod(typeof(BetaList), items); Assert.NotNull(addon); Assert.Equal(typeof(List <object>), addon.DeclaringType); }
public void FindAddonMethod_should_use_best_matching_addon_method_homogeneous() { var items = new object[] { new Beta(), new Beta(), new Beta() }; var addon = ReflectionMetaObject.FindAddonMethod(typeof(BetaList), items); Assert.NotNull(addon); Assert.Equal(typeof(BetaList).GetTypeInfo().GetMethod("Add", new[] { typeof(Beta) }), addon); }
public void GetAddonElements_should_allow_whitespace_filtering() { Beta item1 = new Beta(); Beta item2 = new Beta(); var items = new object[] { " ", item1, item2, " " }; var addonElements = ReflectionMetaObject.GetAddonElements(items); Assert.Equal(new[] { item1, item2 }, addonElements.Cast <Beta>()); }