Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
        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>());
        }