public void Execute_TwoCustomColumns_ThreeGroups() { var args = new ObjectsResultSetResolverArgs(new[] { new object[] { "alpha", 1d, 10 }, new object[] { "alpha", 1, 20 }, new object[] { "beta", 2, 30 }, new object[] { "alpha", 2, 40 } }); var resolver = new ObjectsResultSetResolver(args); var rs = resolver.Execute(); rs.Columns[0].ColumnName = "first"; rs.Columns[1].ColumnName = "second"; rs.Columns[1].SetOrdinal(0); var settings = new SettingsNameResultSet(new List <IColumnDefinition>() { new Column() { Identifier = new ColumnNameIdentifier("first"), Role = ColumnRole.Key, Type = ColumnType.Text }, new Column() { Identifier = new ColumnNameIdentifier("second"), Role = ColumnRole.Key, Type = ColumnType.Numeric }, } ); var grouping = new NameByColumnGrouping(settings); var result = grouping.Execute(rs); Assert.That(result, Has.Count.EqualTo(3)); Assert.That(result[new KeyCollection(new object[] { "alpha", 1m })].Rows, Has.Count.EqualTo(2)); Assert.That(result[new KeyCollection(new object[] { "alpha", 2m })].Rows, Has.Count.EqualTo(1)); Assert.That(result[new KeyCollection(new object[] { "beta", 2m })].Rows, Has.Count.EqualTo(1)); }
public void Execute_SingleColumn_TwoGroups() { var args = new ObjectsResultSetResolverArgs(new[] { new object[] { "alpha", 1 }, new object[] { "alpha", 2 }, new object[] { "beta", 3 }, new object[] { "alpha", 4 } }); var resolver = new ObjectsResultSetResolver(args); var rs = resolver.Execute(); rs.Columns[0].ColumnName = "first"; var settings = new SettingsNameResultSet(new List <IColumnDefinition>() { new Column() { Identifier = new ColumnNameIdentifier("first"), Role = ColumnRole.Key, Type = ColumnType.Text }, } ); var grouping = new NameByColumnGrouping(settings); var result = grouping.Execute(rs); Assert.That(result, Has.Count.EqualTo(2)); Assert.That(result[new KeyCollection(new[] { "alpha" })].Rows, Has.Count.EqualTo(3)); Assert.That(result[new KeyCollection(new[] { "beta" })].Rows, Has.Count.EqualTo(1)); }