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); }
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); }