public void StartsWith_Test() { var table = new Table <LinqDecoratedWithStringCkEntity>(GetSession((_, __) => {})); var query = table.Where(t => t.pk == "a" && t.ck1.StartsWith("foo") && t.pk == "bar"); var pocoData = MappingConfiguration.Global.MapperFactory.GetPocoData <LinqDecoratedWithStringCkEntity>(); var visitor = new CqlExpressionVisitor(pocoData, "x_ts", null); var queryCql = visitor.GetSelect(query.Expression, out object[] parameters); Assert.That(parameters, Is.EquivalentTo(new[] { "a", "foo", "foo" + Encoding.UTF8.GetString(new byte[] { 0xF4, 0x8F, 0xBF, 0xBF }), "bar" })); Assert.AreEqual(@"SELECT ""x_ck1"", ""x_f1"", ""x_pk"" FROM ""x_ts"" WHERE ""x_pk"" = ? AND ""x_ck1"" >= ? AND ""x_ck1"" < ? AND ""x_pk"" = ?", queryCql); }
public void FieldAccess_Test() { var testObject = new TestObject { Field = "a", AnotherObjectField = new TestObject { Field = "b" } }; var table = new Table <LinqDecoratedWithStringCkEntity>(GetSession((_, __) => { })); var query = table.Where(t => t.pk == testObject.Field && t.ck1 == testObject.AnotherObjectField.Field); var pocoData = MappingConfiguration.Global.MapperFactory.GetPocoData <LinqDecoratedWithStringCkEntity>(); var visitor = new CqlExpressionVisitor(pocoData, "x_ts", null); var queryCql = visitor.GetSelect(query.Expression, out object[] parameters); Assert.That(parameters, Is.EquivalentTo(new[] { "a", "b" })); Assert.AreEqual(@"SELECT ""x_ck1"", ""x_f1"", ""x_pk"" FROM ""x_ts"" WHERE ""x_pk"" = ? AND ""x_ck1"" = ?", queryCql); }