@@ -1264,4 +1264,89 @@ public void TestSlowlogAndReset()
12641264 var afterReset = _api . Slowlog ( ) ;
12651265 Assert . NotNull ( afterReset ) ;
12661266 }
1267+
1268+ [ Theory ]
1269+ [ InlineData ( new string [ 0 ] , "CALL dbms.functions()" ) ]
1270+ [ InlineData ( new [ ] { "name" } , "CALL dbms.functions() YIELD name" ) ]
1271+ [ InlineData ( new [ ] { "name" , "internal" } , "CALL dbms.functions() YIELD name,internal" ) ]
1272+ public void BuildQueryBodyForProcedureCall ( string [ ] fields , string expected )
1273+ {
1274+ var kwargs = new Dictionary < string , List < string > >
1275+ {
1276+ { "y" , fields . ToList ( ) }
1277+ } ;
1278+ var args = Enumerable . Empty < string > ( ) ;
1279+
1280+ var body = Graph . BuildQueryBodyForProcedureCall ( "dbms.functions" , ref args , kwargs ) ;
1281+
1282+ Assert . Equal ( expected , body ) ;
1283+ }
1284+
1285+ [ Fact ]
1286+ public void TestCallProcedureWithYield ( )
1287+ {
1288+ _api . Query ( "CREATE (:Person {name:'roi'})" ) ;
1289+
1290+ var kwargs = new Dictionary < string , List < string > >
1291+ {
1292+ { "y" , new List < string > { "name" , "internal" } }
1293+ } ;
1294+
1295+ var result = _api . CallProcedure ( "dbms.functions" , null , kwargs ) ;
1296+
1297+ Assert . Equal ( 2 , result . First ( ) . Values . Count ) ;
1298+ Assert . IsType < string > ( result . First ( ) . Values [ 0 ] ) ;
1299+ Assert . IsType < bool > ( result . First ( ) . Values [ 1 ] ) ;
1300+ }
1301+
1302+ [ Fact ]
1303+ public void TestCallProcedureReadOnlyWithYield ( )
1304+ {
1305+ _api . Query ( "CREATE (:Person {name:'roi'})" ) ;
1306+
1307+ var kwargs = new Dictionary < string , List < string > >
1308+ {
1309+ { "y" , new List < string > { "name" , "internal" } }
1310+ } ;
1311+
1312+ var result = _api . CallProcedureReadOnly ( "dbms.functions" , null , kwargs ) ;
1313+
1314+ Assert . Equal ( 2 , result . First ( ) . Values . Count ) ;
1315+ Assert . IsType < string > ( result . First ( ) . Values [ 0 ] ) ;
1316+ Assert . IsType < bool > ( result . First ( ) . Values [ 1 ] ) ;
1317+ }
1318+
1319+ [ Fact ]
1320+ public async Task TestCallProcedureAsyncWithYield ( )
1321+ {
1322+ _api . Query ( "CREATE (:Person {name:'roi'})" ) ;
1323+
1324+ var kwargs = new Dictionary < string , List < string > >
1325+ {
1326+ { "y" , new List < string > { "name" , "internal" } }
1327+ } ;
1328+
1329+ var result = await _api . CallProcedureAsync ( "dbms.functions" , null , kwargs ) ;
1330+
1331+ Assert . Equal ( 2 , result . First ( ) . Values . Count ) ;
1332+ Assert . IsType < string > ( result . First ( ) . Values [ 0 ] ) ;
1333+ Assert . IsType < bool > ( result . First ( ) . Values [ 1 ] ) ;
1334+ }
1335+
1336+ [ Fact ]
1337+ public async Task TestCallProcedureReadOnlyAsyncWithYield ( )
1338+ {
1339+ _api . Query ( "CREATE (:Person {name:'roi'})" ) ;
1340+
1341+ var kwargs = new Dictionary < string , List < string > >
1342+ {
1343+ { "y" , new List < string > { "name" , "internal" } }
1344+ } ;
1345+
1346+ var result = await _api . CallProcedureReadOnlyAsync ( "dbms.functions" , null , kwargs ) ;
1347+
1348+ Assert . Equal ( 2 , result . First ( ) . Values . Count ) ;
1349+ Assert . IsType < string > ( result . First ( ) . Values [ 0 ] ) ;
1350+ Assert . IsType < bool > ( result . First ( ) . Values [ 1 ] ) ;
1351+ }
12671352}
0 commit comments