public void ObjectTest() { AQuery query = _db.Query .Let("x", AValue <Dummy> .Object( ( x => x.Id, AValue.Bind("asdf") ), ( x => x.Foo, AValue <Dummy> .Field(z => z.Foo) ), ( x => x.Bar, AValue.Bind(10) ), ( x => x.Baz, AValue <Dummy> .Field(x => x.Bar) ) )); Assert.AreEqual("LET x = {\"_id\":@var0,\"Foo\":z.Foo,\"Bar\":@var1,\"Baz\":x.Bar}", query.GetExpression()); Assert.AreEqual(typeof(string), query.GetBindedVars()[0].GetType()); Assert.AreEqual(typeof(int), query.GetBindedVars()[1].GetType()); }
public void FunctionMultipleTest() { AQuery query = _db.Query .Let("x", ANumeric.Coalesce(AValue.Bind(2), AValue.Bind(5))); Assert.AreEqual("LET x = NOT_NULL(@var0,@var1)", query.GetExpression()); Assert.AreEqual(2, query.GetBindedVars()[0]); Assert.AreEqual(5, query.GetBindedVars()[1]); }
public void MultipleTest() { AQuery query = _db.Query //.Filter(FilterBuilder<Dummy>.Lt(x => x.Baz, 50)) //.Filter(FilterBuilder<Dummy>.Gte(x => x.Bar, 1)); .Filter(AFilter.Lt(AValue <Dummy> .Field(x => x.Baz), AValue.Bind(50))) .Filter(AFilter.Gte(AValue <Dummy> .Field(x => x.Bar), AValue.Bind(1))); Assert.AreEqual("FILTER x.Baz < @var0 FILTER x.Bar >= @var1", query.GetExpression()); Assert.AreEqual(50, query.GetBindedVars()[0]); Assert.AreEqual(1, query.GetBindedVars()[1]); }
public void OrTest() { AQuery query = _db.Query.Filter( AFilter.Or( AFilter.Eq(AValue <Dummy> .Field(x => x.Foo), AValue.Bind("asd")), AFilter.Gt(AValue <Dummy> .Field(x => x.Bar), AValue.Bind(1)) ) ); Assert.AreEqual("FILTER (x.Foo == @var0 OR x.Bar > @var1)", query.GetExpression()); Assert.AreEqual("asd", query.GetBindedVars()[0]); Assert.AreEqual(1, query.GetBindedVars()[1]); }
public void SimpleTest() { AQuery query = _db.Query .Raw("FOR x IN " + TestDocumentCollectionName) .Update <Dummy>( "x", TestDocumentCollectionName, builder => builder .Set(x => x.Foo, AValue.Bind("asdf")) ); Assert.AreEqual("FOR x IN " + TestDocumentCollectionName + " UPDATE x WITH { Foo:@var0 } IN " + TestDocumentCollectionName, query.GetExpression()); Assert.AreEqual("asdf", query.GetBindedVars()[0]); }
public void IncTest() { AQuery query = _db.Query .Raw("FOR x IN " + TestDocumentCollectionName) .Update <Dummy>( "x", TestDocumentCollectionName, builder => builder .Inc(x => x.Bar, AValue.Bind(38)) ); Assert.AreEqual("FOR x IN " + TestDocumentCollectionName + " UPDATE x WITH { Bar:x.Bar+@var0 } IN " + TestDocumentCollectionName, query.GetExpression()); Assert.AreEqual(38, query.GetBindedVars()[0]); }
public void IfTest() { AQuery query = _db.Query .Let("x", AValue.If( AFilter.Eq(AValue <Dummy> .Field(x => x.Bar), AValue.Bind(2)), AValue <Dummy> .Field(x => x.Baz), AValue.Bind(0) )); Assert.AreEqual("LET x = (x.Bar == @var0 ? x.Baz : @var1)", query.GetExpression()); Assert.AreEqual(2, query.GetBindedVars()[0]); Assert.AreEqual(0, query.GetBindedVars()[1]); }
public void InsertTest() { var insert = new Dummy() { Foo = "asd", Bar = 10 }; AQuery query = _db.Query .Insert("collection", AValue.Bind(insert)); Assert.AreEqual("INSERT @var0 INTO collection", query.GetExpression()); Assert.AreEqual(insert, query.GetBindedVars()[0]); }
public void PredefinedTest() { UpdateBuilder <Dummy> definition = new UpdateBuilder <Dummy>() .Set(x => x.Foo, AValue.Bind("asdf")); AQuery query = _db.Query .Raw("FOR x IN " + TestDocumentCollectionName) .Update <Dummy>( "x", TestDocumentCollectionName, definition ); Assert.AreEqual("FOR x IN " + TestDocumentCollectionName + " UPDATE x WITH { Foo:@var0 } IN " + TestDocumentCollectionName, query.GetExpression()); Assert.AreEqual("asdf", query.GetBindedVars()[0]); }
public void SubElementIncTest() { AQuery query = _db.Query .Raw("FOR x IN " + TestDocumentCollectionName) .Update <Complex>( "x", TestDocumentCollectionName, builderComplex => builderComplex .SetPartial( x => x.dum, builderDummy => builderDummy .Inc(x => x.Bar, AValue.Bind(38)) ) ); Assert.AreEqual("FOR x IN " + TestDocumentCollectionName + " UPDATE x WITH { dum:MERGE(x.dum,{ Bar:x.dum.Bar+@var0 }) } IN " + TestDocumentCollectionName, query.GetExpression()); Assert.AreEqual(38, query.GetBindedVars()[0]); }
public void ArrayFunctionTest() { AQuery query = _db.Query .Let("x", AArray.Minus( AValue.Bind(new List <int>() { 2, 5, 6 }), AValue.Bind(new List <int>() { 4, 5, 6 }) )); Assert.AreEqual("LET x = MINUS(@var0,@var1)", query.GetExpression()); Assert.AreEqual(typeof(List <int>), query.GetBindedVars()[0].GetType()); Assert.AreEqual(typeof(List <int>), query.GetBindedVars()[1].GetType()); }
public void UpsertTest() { var search = new Dummy() { Foo = "asd" }; var insert = new Dummy() { Foo = "asd", Bar = 10 }; AQuery query = _db.Query .Upsert <Dummy>("collection", AValue.Bind(search), AValue.Bind(insert), builder => builder.Inc(x => x.Bar, AValue.Bind(1))); Assert.AreEqual("UPSERT @var0 INSERT @var1 UPDATE { Bar:x.Bar+@var2 } IN collection", query.GetExpression()); Assert.AreEqual(search, query.GetBindedVars()[0]); Assert.AreEqual(insert, query.GetBindedVars()[1]); Assert.AreEqual(1, query.GetBindedVars()[2]); }
public void InsertWithOptionsTest() { var insert = new Dummy() { Foo = "asd", Bar = 10 }; var options = new AqlInsert.Options() { IgnoreErrors = true, Overwrite = OverwriteMode.Replace }; AQuery query = _db.Query .Insert("collection", AValue.Bind(insert), options); Assert.AreEqual("INSERT @var0 INTO collection OPTIONS {ignoreErrors:true, overwrite:true, overwriteMode:\"replace\"}", query.GetExpression()); Assert.AreEqual(insert, query.GetBindedVars()[0]); }
public void ObjectDynamicTest() { AQuery query = _db.Query .Let("x", AValue.Object( ( "_id", AValue.Bind("asdf") ), ( "Foo", AValue <Dummy> .Field(z => z.Foo) ), ( "lalalal", AValue.Bind(10) ) )); Assert.AreEqual("LET x = {\"_id\":@var0,\"Foo\":z.Foo,\"lalalal\":@var1}", query.GetExpression()); Assert.AreEqual(typeof(string), query.GetBindedVars()[0].GetType()); Assert.AreEqual(typeof(int), query.GetBindedVars()[1].GetType()); }
public void SimpleTest() { //AQuery query = _db.Query.Filter(FilterBuilder<Dummy>.Eq( x => x.Foo, "asd")); AQuery query = _db.Query.Filter(AFilter.Eq(AValue <Dummy> .Field(x => x.Foo), AValue.Bind("asd"))); Assert.AreEqual("FILTER x.Foo == @var0", query.GetExpression()); Assert.AreEqual("asd", query.GetBindedVars()[0]); }
public void TypeTest() { Type dummyType = typeof(Dummy); //AQuery query = _db.Query.Filter(FilterBuilder<Dummy>.Eq(x => x.GetType(), dummyType)); AQuery query = _db.Query.Filter(AFilter.Eq(AValue <Dummy> .Field(x => x.GetType()), AValue.Bind(dummyType))); Assert.AreEqual("FILTER x.$type == @var0", query.GetExpression()); Assert.AreEqual(dummyType.FullName + ", " + dummyType.Assembly.GetName().Name, query.GetBindedVars()[0]); }
public void BetweenTest() { AQuery query = _db.Query.Filter(AFilter.Between(AValue <Dummy> .Field(x => x.Bar), AValue.Bind(1), AValue.Bind(50))); Assert.AreEqual("FILTER (x.Bar >= @var0 AND x.Bar <= @var1)", query.GetExpression()); Assert.AreEqual(1, query.GetBindedVars()[0]); Assert.AreEqual(50, query.GetBindedVars()[1]); }