public void TableSpoolTest() { var source = new ConstantScanNode { Values = { new Entity { ["value1"] = new SqlInt32(1) }, new Entity { ["value1"] = new SqlInt32(2) } }, Schema = { ["value1"] = typeof(SqlInt32) } }; var spool = new TableSpoolNode { Source = source }; var results1 = spool.Execute(_dataSources, new StubOptions(), null, null) .Select(e => e.GetAttributeValue <SqlInt32>("value1").Value) .ToArray(); var results2 = spool.Execute(_dataSources, new StubOptions(), null, null) .Select(e => e.GetAttributeValue <SqlInt32>("value1").Value) .ToArray(); CollectionAssert.AreEqual(new[] { 1, 2 }, results1); CollectionAssert.AreEqual(new[] { 1, 2 }, results2); Assert.AreEqual(1, source.ExecutionCount); }
public void CaseInsenstiveHashMatchAggregateNodeTest() { var source = new ConstantScanNode { Values = { new Entity { ["value1"] = new SqlString("hello", CultureInfo.CurrentCulture.LCID, SqlCompareOptions.IgnoreCase | SqlCompareOptions.IgnoreNonSpace) }, new Entity { ["value1"] = new SqlString("Hello", CultureInfo.CurrentCulture.LCID, SqlCompareOptions.IgnoreCase | SqlCompareOptions.IgnoreNonSpace) } }, Schema = { ["value1"] = typeof(SqlString) }, Alias = "src" }; var spool = new HashMatchAggregateNode { Source = source, GroupBy = { "src.value1".ToColumnReference() }, Aggregates = { ["count"] = new Aggregate { AggregateType = AggregateType.CountStar } } }; var results = spool.Execute(_dataSources, new StubOptions(), null, null) .Select(e => new { Name = e.GetAttributeValue <SqlString>("src.value1").Value, Count = e.GetAttributeValue <SqlInt32>("count").Value }) .ToArray(); CollectionAssert.AreEqual(new[] { new { Name = "hello", Count = 2 } }, results); }
public void ConstantScanTest() { var node = new ConstantScanNode { Values = { new Entity { ["firstname"] = new SqlString("Mark", CultureInfo.CurrentCulture.LCID, SqlCompareOptions.IgnoreCase | SqlCompareOptions.IgnoreNonSpace) } }, Schema = { ["firstname"] = typeof(SqlString) } }; var results = node.Execute(_dataSources, new StubOptions(), null, null).ToArray(); Assert.AreEqual(1, results.Length); Assert.AreEqual("Mark", ((SqlString)results[0]["firstname"]).Value); }