public void Execute_LargeResultSet_ExpectedPerformance(int count) { var values = new List <object>(); for (int i = 0; i < count; i++) { values.Add(new object[] { i % 2 == 0 ? "alpha" : "beta", (i / 2) % (count / 2), 1 }); } var resolver = new ObjectsResultSetResolver(new ObjectsResultSetResolverArgs(values)); var rs = resolver.Execute(); rs.Columns[0].ColumnName = "keyColumn"; rs.Columns[1].ColumnName = "headerColumn"; rs.Columns[2].ColumnName = "valueColumn"; var args = new UnstackArgs( new ColumnNameIdentifier("headerColumn"), new List <IColumnDefinitionLight>() { Mock.Of <IColumnDefinitionLight>(x => x.Identifier == new ColumnNameIdentifier("keyColumn") && x.Type == ColumnType.Text) } ); var unstack = new UnstackEngine(args); var stopWatch = new Stopwatch(); stopWatch.Start(); var result = unstack.Execute(rs); stopWatch.Stop(); Assert.That(stopWatch.Elapsed.TotalSeconds, Is.LessThan(15)); }
public void Execute_SingleKeyMultipleValue_ExpectedResultSet() { var resolver = new ObjectsResultSetResolver( new ObjectsResultSetResolverArgs( new[] { new object[] { "alpha", "A", 1, -1 }, new object[] { "alpha", "B", 2, -2 }, new object[] { "beta", "A", 3, -3 }, new object[] { "beta", "B", 4, -4 } } )); var rs = resolver.Execute(); rs.Columns[0].ColumnName = "keyColumn"; rs.Columns[1].ColumnName = "headerColumn"; rs.Columns[2].ColumnName = "value1Column"; rs.Columns[3].ColumnName = "value2Column"; var args = new UnstackArgs( new ColumnNameIdentifier("headerColumn"), new List <IColumnDefinitionLight>() { Mock.Of <IColumnDefinitionLight>(x => x.Identifier == new ColumnNameIdentifier("keyColumn") && x.Type == ColumnType.Text) } ); var unstack = new UnstackEngine(args); var result = unstack.Execute(rs); Assert.That(result, Is.Not.Null); Assert.That(result.Columns.Count, Is.EqualTo(5)); Assert.That(result.Columns.Cast <DataColumn>().Any(x => x.ColumnName == "keyColumn")); Assert.That(result.Columns.Cast <DataColumn>().Any(x => x.ColumnName == "A_value1Column")); Assert.That(result.Columns.Cast <DataColumn>().Any(x => x.ColumnName == "B_value1Column")); Assert.That(result.Columns.Cast <DataColumn>().Any(x => x.ColumnName == "A_value2Column")); Assert.That(result.Columns.Cast <DataColumn>().Any(x => x.ColumnName == "B_value2Column")); Assert.That(result.Rows.Count, Is.EqualTo(2)); Assert.That(Convert.ToInt32(result.Rows.Cast <DataRow>().Single(x => x["keyColumn"] as string == "alpha")["A_value1Column"]) == 1); Assert.That(Convert.ToInt32(result.Rows.Cast <DataRow>().Single(x => x["keyColumn"] as string == "alpha")["B_value1Column"]) == 2); Assert.That(Convert.ToInt32(result.Rows.Cast <DataRow>().Single(x => x["keyColumn"] as string == "beta")["A_value1Column"]) == 3); Assert.That(Convert.ToInt32(result.Rows.Cast <DataRow>().Single(x => x["keyColumn"] as string == "beta")["B_value1Column"]) == 4); Assert.That(Convert.ToInt32(result.Rows.Cast <DataRow>().Single(x => x["keyColumn"] as string == "alpha")["A_value2Column"]) == -1); Assert.That(Convert.ToInt32(result.Rows.Cast <DataRow>().Single(x => x["keyColumn"] as string == "alpha")["B_value2Column"]) == -2); Assert.That(Convert.ToInt32(result.Rows.Cast <DataRow>().Single(x => x["keyColumn"] as string == "beta")["A_value2Column"]) == -3); Assert.That(Convert.ToInt32(result.Rows.Cast <DataRow>().Single(x => x["keyColumn"] as string == "beta")["B_value2Column"]) == -4); }
public void Execute_EnforcedColumnsThatWasNotExpected_ExpectedResultSet() { var resolver = new ObjectsResultSetResolver( new ObjectsResultSetResolverArgs( new[] { new object[] { "alpha", "A", 1 }, new object[] { "alpha", "B", 2 }, new object[] { "beta", "A", 3 }, new object[] { "beta", "B", 4 } } )); var rs = resolver.Execute(); rs.Columns[0].ColumnName = "keyColumn"; rs.Columns[1].ColumnName = "headerColumn"; rs.Columns[2].ColumnName = "valueColumn"; var args = new UnstackArgs( new ColumnNameIdentifier("headerColumn"), new List <IColumnDefinitionLight>() { Mock.Of <IColumnDefinitionLight>(x => x.Identifier == new ColumnNameIdentifier("keyColumn") && x.Type == ColumnType.Text) }, new List <ColumnNameIdentifier>() { new ColumnNameIdentifier("C") } ); var unstack = new UnstackEngine(args); var result = unstack.Execute(rs); Assert.That(result, Is.Not.Null); Assert.That(result.Columns.Count, Is.EqualTo(4)); Assert.That(result.Columns.Cast <DataColumn>().Any(x => x.ColumnName == "keyColumn")); Assert.That(result.Columns.Cast <DataColumn>().Any(x => x.ColumnName == "A")); Assert.That(result.Columns.Cast <DataColumn>().Any(x => x.ColumnName == "B")); Assert.That(result.Columns.Cast <DataColumn>().Any(x => x.ColumnName == "C")); Assert.That(result.Rows.Count, Is.EqualTo(2)); Assert.That(result.Rows.Cast <DataRow>().Single(x => x["keyColumn"] as string == "alpha")["C"] == DBNull.Value); Assert.That(result.Rows.Cast <DataRow>().Single(x => x["keyColumn"] as string == "alpha")["C"] == DBNull.Value); }