@@ -2003,12 +2003,82 @@ public void TestEqualsAndToString()
2003
2003
[ Fact ]
2004
2004
public void TestPrepareQuery ( )
2005
2005
{
2006
+ const string return1Query = "RETURN 1" ;
2007
+ const string return1QueryRecordString = "Record{values=1}" ;
2008
+
2006
2009
var graph = redisFixture . Redis . GetDatabase ( ) . GRAPH ( ) ;
2007
- var res1 = graph . Query ( "graph" , "RETURN 1" , new Dictionary < string , object > { { "a" , ( char ) 'c' } } ) ;
2008
- var res2 = graph . Query ( "graph" , "RETURN 1" , new Dictionary < string , object > { { "a" , null } } ) ;
2009
- var res3 = graph . Query ( "graph" , "RETURN 1" , new Dictionary < string , object > { { "a" , new string [ ] { "foo" , "bar" } } } ) ;
2010
- var res4 = graph . Query ( "graph" , "RETURN 1" , new Dictionary < string , object > { { "a" , new List < string > { "foo2" , "bar2" } } } ) ;
2011
- // TODO: complete this test
2010
+
2011
+ // handle chars
2012
+ var buildCommand = GraphCommandBuilder . Query ( "graph" , return1Query , new Dictionary < string , object > { { "a" , ( char ) 'c' } } ) ;
2013
+ var expectedPreparedQuery1 = $ "CYPHER a=\" c\" { return1Query } ";
2014
+ Assert . Equal ( expectedPreparedQuery1 , buildCommand . Args [ 1 ] . ToString ( ) ! ) ;
2015
+ var res1 = graph . Query ( "graph" , buildCommand . Args [ 1 ] . ToString ( ) ! ) ;
2016
+ Assert . Single ( res1 ) ;
2017
+ Assert . Equal ( return1QueryRecordString , res1 . Single ( ) . ToString ( ) ) ;
2018
+
2019
+ // handle null
2020
+ var buildCommand2 = GraphCommandBuilder . Query ( "graph" , return1Query , new Dictionary < string , object > { { "a" , null } } ) ;
2021
+ var expectedPreparedQuery2 = $ "CYPHER a=null { return1Query } ";
2022
+ Assert . Equal ( expectedPreparedQuery2 , buildCommand2 . Args [ 1 ] . ToString ( ) ! ) ;
2023
+ var res2 = graph . Query ( "graph" , buildCommand2 . Args [ 1 ] . ToString ( ) ! ) ;
2024
+ Assert . Single ( res2 ) ;
2025
+ Assert . Equal ( return1QueryRecordString , res2 . Single ( ) . ToString ( ) ) ;
2026
+
2027
+ // handle arrays
2028
+ var buildCommand3 = GraphCommandBuilder . Query ( "graph" , return1Query , new Dictionary < string , object > { { "a" , new string [ ] { "foo" , "bar" } } } ) ;
2029
+ var expectedPreparedQuery3 = $ "CYPHER a=[\" foo\" , \" bar\" ] { return1Query } ";
2030
+ Assert . Equal ( expectedPreparedQuery3 , buildCommand3 . Args [ 1 ] . ToString ( ) ! ) ;
2031
+ var res3 = graph . Query ( "graph" , buildCommand3 . Args [ 1 ] . ToString ( ) ! ) ;
2032
+ Assert . Single ( res3 ) ;
2033
+ Assert . Equal ( return1QueryRecordString , res3 . Single ( ) . ToString ( ) ) ;
2034
+
2035
+ // handle lists
2036
+ var buildCommand4 = GraphCommandBuilder . Query ( "graph" , return1Query , new Dictionary < string , object > { { "a" , new List < string > { "foo2" , "bar2" } } } ) ;
2037
+ var expectedPreparedQuery4 = $ "CYPHER a=[\" foo2\" , \" bar2\" ] { return1Query } ";
2038
+ Assert . Equal ( expectedPreparedQuery4 , buildCommand4 . Args [ 1 ] . ToString ( ) ! ) ;
2039
+ var res4 = graph . Query ( "graph" , buildCommand4 . Args [ 1 ] . ToString ( ) ! ) ;
2040
+ Assert . Single ( res4 ) ;
2041
+ Assert . Equal ( return1QueryRecordString , res4 . Single ( ) . ToString ( ) ) ;
2042
+
2043
+ // handle bools
2044
+ var buildCommand5 = GraphCommandBuilder . Query ( "graph" , return1Query , new Dictionary < string , object > { { "a" , true } , { "b" , false } } ) ;
2045
+ var expectedPreparedQuery5 = $ "CYPHER a=true b=false { return1Query } ";
2046
+ Assert . Equal ( expectedPreparedQuery5 , buildCommand5 . Args [ 1 ] . ToString ( ) ! ) ;
2047
+ var res5 = graph . Query ( "graph" , buildCommand5 . Args [ 1 ] . ToString ( ) ! ) ;
2048
+ Assert . Single ( res5 ) ;
2049
+ Assert . Equal ( return1QueryRecordString , res4 . Single ( ) . ToString ( ) ) ;
2050
+
2051
+ // handle floats
2052
+ var buildCommand6 = GraphCommandBuilder . Query ( "graph" , return1Query , new Dictionary < string , object > { { "a" , 1.4d } } ) ;
2053
+ var expectedPreparedQuery6 = $ "CYPHER a=1.4 { return1Query } ";
2054
+ Assert . Equal ( expectedPreparedQuery6 , buildCommand6 . Args [ 1 ] . ToString ( ) ! ) ;
2055
+ var res6 = graph . Query ( "graph" , buildCommand6 . Args [ 1 ] . ToString ( ) ! ) ;
2056
+ Assert . Single ( res6 ) ;
2057
+ Assert . Equal ( return1QueryRecordString , res4 . Single ( ) . ToString ( ) ) ;
2058
+
2059
+ // handle ints
2060
+ var buildCommand7 = GraphCommandBuilder . Query ( "graph" , return1Query , new Dictionary < string , object > { { "a" , 5 } } ) ;
2061
+ var expectedPreparedQuery7 = $ "CYPHER a=5 { return1Query } ";
2062
+ Assert . Equal ( expectedPreparedQuery7 , buildCommand7 . Args [ 1 ] . ToString ( ) ! ) ;
2063
+ var res7 = graph . Query ( "graph" , buildCommand7 . Args [ 1 ] . ToString ( ) ! ) ;
2064
+ Assert . Single ( res7 ) ;
2065
+ Assert . Equal ( return1QueryRecordString , res4 . Single ( ) . ToString ( ) ) ;
2066
+
2067
+ // handle quotes
2068
+ var buildCommand8 = GraphCommandBuilder . Query ( "graph" , return1Query , new Dictionary < string , object > { { "a" , "\" abc\" " } } ) ;
2069
+ var expectedPreparedQuery8 = $ "CYPHER a=\" \\ \" abc\\ \" \" { return1Query } ";
2070
+ Assert . Equal ( expectedPreparedQuery8 , buildCommand8 . Args [ 1 ] . ToString ( ) ! ) ;
2071
+ var res8 = graph . Query ( "graph" , buildCommand8 . Args [ 1 ] . ToString ( ) ! ) ;
2072
+ Assert . Single ( res8 ) ;
2073
+ Assert . Equal ( return1QueryRecordString , res5 . Single ( ) . ToString ( ) ) ;
2074
+
2075
+ // handle backslashes
2076
+ var buildCommand9 = GraphCommandBuilder . Query ( "graph" , return1Query , new Dictionary < string , object > { { "a" , "abc\\ " } } ) ;
2077
+ var expectedPreparedQuery9 = $ "CYPHER a=\" abc\\ \\ \" { return1Query } ";
2078
+ Assert . Equal ( expectedPreparedQuery9 , buildCommand9 . Args [ 1 ] . ToString ( ) ! ) ;
2079
+ var res9 = graph . Query ( "graph" , buildCommand9 . Args [ 1 ] . ToString ( ) ! ) ;
2080
+ Assert . Single ( res9 ) ;
2081
+ Assert . Equal ( return1QueryRecordString , res6 . Single ( ) . ToString ( ) ) ;
2012
2082
}
2013
2083
#endregion
2014
2084
0 commit comments