public ResolveResultConverterStrategyGrouping(Type resultType)
            : base(resultType)
        {
            if (resultType == null)
            {
                throw Logger.Fatal.ArgumentNull(nameof(resultType));
            }

            if (!HarshGrouping.IsGroupingType(resultType))
            {
                throw Logger.Fatal.ArgumentFormat(
                          nameof(resultType),
                          SR.ResolveResultConverterStrategyGrouping_NotAGrouping,
                          resultType
                          );
            }

            var keyType     = resultType.GenericTypeArguments[0];
            var elementType = resultType.GenericTypeArguments[1];

            _groupingFactory = new HarshGroupingDynamicFactory(keyType, elementType);

            _keyStrategy     = GetStrategyForType(keyType);
            _elementStrategy = GetStrategyForType(elementType);
        }
        public ResolveResultConverterStrategyGrouping(Type resultType)
            : base(resultType)
        {
            if (resultType == null)
            {
                throw Logger.Fatal.ArgumentNull(nameof(resultType));
            }

            if (!HarshGrouping.IsGroupingType(resultType))
            {
                throw Logger.Fatal.ArgumentFormat(
                    nameof(resultType),
                    SR.ResolveResultConverterStrategyGrouping_NotAGrouping,
                    resultType
                );
            }

            var keyType = resultType.GenericTypeArguments[0];
            var elementType = resultType.GenericTypeArguments[1];

            _groupingFactory = new HarshGroupingDynamicFactory(keyType, elementType);

            _keyStrategy = GetStrategyForType(keyType);
            _elementStrategy = GetStrategyForType(elementType);
        }
        public void Creates_a_grouping()
        {
            var factory = new HarshGroupingDynamicFactory(typeof(Int32), typeof(String));
            var grouping = factory.Create(42, new[] { "a", "b", "c" });

            var typed = Assert.IsType<HarshGrouping<Int32, String>>(grouping);
            Assert.Equal(42, typed.Key);
            Assert.Equal("a b c".Split(' '), typed);
        }
Exemple #4
0
        public void Creates_a_grouping()
        {
            var factory  = new HarshGroupingDynamicFactory(typeof(Int32), typeof(String));
            var grouping = factory.Create(42, new[] { "a", "b", "c" });

            var typed = Assert.IsType <HarshGrouping <Int32, String> >(grouping);

            Assert.Equal(42, typed.Key);
            Assert.Equal("a b c".Split(' '), typed);
        }