public void Execute_FirstRowByOrdinal_CorrectEvaluation() { var rs = new NBi.Core.ResultSet.ResultSet(); rs.Load(new[] { new object[] { "a", 1 }, new object[] { "b", 2 } }); var context = Context.None; var args = new ContextScalarResolverArgs(context, new ColumnOrdinalIdentifier(0)); var resolver = new ContextScalarResolver <string>(args); context.Switch(rs.Table.Rows[0]); Assert.That(resolver.Execute(), Is.EqualTo("a")); }
public void Instantiate_ContextArgs_ContextResolver() { using (var dt = new DataTable()) { var context = Context.None; context.Switch(dt.NewRow()); var args = new ContextScalarResolverArgs(context, new ColumnOrdinalIdentifier(0)); var factory = new ScalarResolverFactory(null); var resolver = factory.Instantiate(args); Assert.That(resolver, Is.TypeOf <ContextScalarResolver <object> >()); } }
public void Execute_TwoColumnsWithContext_ThreeGroups() { var args = new ObjectsResultSetResolverArgs(new[] { new object[] { "alpha", "1", "1" }, new object[] { "ALPHA", "1", "1" }, new object[] { "beta", "2", "2" }, new object[] { "ALPHA", "2", "4" } }); var resolver = new ObjectsResultSetResolver(args); var rs = resolver.Execute(); var context = new Context(null); var lowerCase = new SinglePredication(new TextLowerCase(false), new ColumnOrdinalIdentifier(0)); var contextArgs = new ContextScalarResolverArgs(context, new ColumnOrdinalIdentifier(2)); var upperCase = new AndCombinationPredication(new List <IPredication>() { new SinglePredication(new TextUpperCase(false), new ColumnOrdinalIdentifier(0)), new SinglePredication(new TextEqual(false, new ContextScalarResolver <string>(contextArgs)), new ColumnOrdinalIdentifier(1)), }); var grouping = new CaseGrouping(new IPredication[] { lowerCase, upperCase }, context); var result = grouping.Execute(rs); Assert.That(result, Has.Count.EqualTo(3)); Assert.That(result.ElementAt(0).Value.Rows, Has.Count.EqualTo(2)); Assert.That(result.ElementAt(1).Value.Rows, Has.Count.EqualTo(1)); Assert.That(result.ElementAt(2).Value.Rows, Has.Count.EqualTo(1)); }