public void PExpireAt() { using (BlendedJSEngine engine = new BlendedJSEngine()) { engine.Jint.SetValue("testRedisUrl", _testRedisUrl); var result = engine.ExecuteScript(@" var redis = new RedisClient(this.testRedisUrl); redis.del('mykey'); redis.set('mykey', 'Hello'); redis.pexpireat('mykey', 1555555555005); "); System.Console.WriteLine(result.ConsoleTest); Assert.AreEqual((double)1, (double)result.Value); } using (BlendedJSEngine engine = new BlendedJSEngine()) { engine.Jint.SetValue("testRedisUrl", _testRedisUrl); var result = engine.ExecuteScript(@" var redis = new RedisClient(this.testRedisUrl); redis.del('mykey'); redis.set('mykey', 'Hello'); redis.pexpireat('mykey', 1555555555005); redis.ttl('mykey'); "); System.Console.WriteLine(result.ConsoleTest); Assert.IsTrue((double)result.Value > 0); } }
public void HGet() { using (BlendedJSEngine engine = new BlendedJSEngine()) { engine.Jint.SetValue("testRedisUrl", _testRedisUrl); var result = engine.ExecuteScript(@" var redis = new RedisClient(this.testRedisUrl); redis.hset('myhash', 'field1', 'foo'); redis.hget('myhash', 'field1'); "); System.Console.WriteLine(result.ConsoleTest); Assert.AreEqual("foo", (string)result.Value); } using (BlendedJSEngine engine = new BlendedJSEngine()) { engine.Jint.SetValue("testRedisUrl", _testRedisUrl); var result = engine.ExecuteScript(@" var redis = new RedisClient(this.testRedisUrl); redis.hset('myhash', 'field1', 'foo'); redis.hexists('myhash', 'field1'); redis.hdel('myhash', 'field1'); redis.hget('myhash', 'field1'); "); System.Console.WriteLine(result.ConsoleTest); Assert.AreEqual(null, result.Value); } }
public void Update_Upsert() { TestData.TestData.Prepare("books", "TestData/books.json"); BlendedJSEngine mongo = new BlendedJSEngine(); mongo.Jint.SetValue("mongoConnectionString", TestData.TestData.MongoConnectionString); var results = mongo.ExecuteScript( @" var db = new MongoClient(this.mongoConnectionString); db.books.update( { item: ""ZZZ135"" }, { item: ""ZZZ135"", stock: 5, tags: [""database""] }, { upsert: true } ) "); var result = (ReplaceOneResult)results.Value; Assert.AreEqual(true, result.acknowledged); Assert.AreEqual((Int64)0, result.matchedCount); Assert.AreEqual((Int64)0, result.modifiedCount); Assert.IsTrue(result.upsertedId is BsonObjectId); //{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 } }
public void Execute_QueryWithNoPrameters() { using (BlendedJSEngine engine = new BlendedJSEngine()) { var result = engine.ExecuteScript( @" var cassandraClient = new CassandraClient({host:'localhost'}); var keyspaceCreated = cassandraClient.execute(""CREATE KEYSPACE IF NOT EXISTS test WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 3 };""); console.log(keyspaceCreated); var tableCreated = cassandraClient.execute('CREATE TABLE IF NOT EXISTS test.employees(id int PRIMARY KEY, name text);'); console.log(tableCreated); var rowInserted = cassandraClient.execute(""INSERT INTO test.employees (id, name) VALUES (1, 'daniel');""); console.log(rowInserted); var rows = cassandraClient.execute(""SELECT * FROM test.employees;""); console.log(rows); var tableDroped = cassandraClient.execute('DROP TABLE test.employees;'); console.log(tableDroped); rows; "); System.Console.WriteLine(result.ConsoleTest); var items = result.Value as object[]; Assert.AreEqual(1, items.Length); Assert.IsNotNull("daniel", (((IDictionary <string, object>)items[0])["name"]).ToString()); } }
public void Post_Json() { BlendedJSEngine engine = new BlendedJSEngine(); var result = engine.ExecuteScript( @" function main() { var httpClient = new HttpClient(); var response = httpClient.post({ url:'https://jsonplaceholder.typicode.com/posts', headers: {'Content-Type':'application/json'}, body: { userId: 1, title: 'bla', body: 'bla bla bla'} }); response.bodyJson = JSON.parse(response.body); console.log(response); return response; } main(); "); System.Console.WriteLine(result.ConsoleTest); HttpResponse response = result.Value as HttpResponse; Assert.AreEqual(201, response.statusCode); Assert.AreEqual("Created", response.reasonPhrase); object created = response.GetProperty("bodyJson"); Assert.AreEqual((double)101, (double)created.GetProperty("id")); }
public void Update_ReplaceDocument() { TestData.TestData.Prepare("books", "TestData/books.json"); BlendedJSEngine mongo = new BlendedJSEngine(); mongo.Jint.SetValue("mongoConnectionString", TestData.TestData.MongoConnectionString); var results = mongo.ExecuteScript( @" var db = new MongoClient(this.mongoConnectionString); db.books.update( { item: ""XYZ123"" }, { item: ""XYZ123"", stock: 10, info: { publisher: ""2255"", pages: 150 }, tags: [""baking"", ""cooking""] } ) "); var result = (ReplaceOneResult)results.Value; Assert.AreEqual(true, result.acknowledged); Assert.AreEqual((Int64)1, result.matchedCount); Assert.AreEqual((Int64)1, result.modifiedCount); //{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 } }
public void Query_Postgres_ConnectionProperties() { using (BlendedJSEngine engine = new BlendedJSEngine()) { var result = engine.ExecuteScript( @" var sqlClient = new SqlClient({ provider:'Postgres', server:'baasu.db.elephantsql.com', database:'lcwvemac', user:'******', password:'******'}); try {sqlClient.query('drop table employees');} catch(e){} sqlClient.query('create table employees (ID int, Name varchar(255))'); sqlClient.query(""insert INTO employees (ID,Name) VALUES (1, 'daniel')""); sqlClient.query('select * from employees'); "); result.Logs.ForEach(x => System.Console.WriteLine(x.Arg1)); Assert.IsNotNull(result); Assert.AreEqual(1, ((object[])result.Value).Length); Assert.AreEqual(1, ((object[])result.Value)[0].GetProperty("id")); Assert.AreEqual("daniel", ((object[])result.Value)[0].GetProperty("name")); } }
public void Send_Head() { BlendedJSEngine engine = new BlendedJSEngine(); var result = engine.ExecuteScript( @" function main() { var httpClient = new HttpClient(); var response = httpClient.send({ url:'https://jsonplaceholder.typicode.com/posts/1', method:'head' }); console.log(response); return response; } main(); "); System.Console.WriteLine(result.ConsoleTest); HttpResponse response = result.Value as HttpResponse; Assert.AreEqual(200, response.statusCode); Assert.AreEqual("OK", response.reasonPhrase); Assert.AreEqual("", response.body); }
public void Cursor_MariaDb() { using (BlendedJSEngine engine = new BlendedJSEngine()) { var result = engine.ExecuteScript( @" function main() { var sqlClient = new SqlClient({connectionUrl:'mariadb://*****:*****@rmspavs8mpub7dkq.chr7pe7iynqr.eu-west-1.rds.amazonaws.com/xy39fg5tb0y2wim0'}); try {sqlClient.query('drop table employees');} catch(e){} sqlClient.query('create table employees (ID int, Name varchar(255))'); sqlClient.query(""insert INTO employees (ID,Name) VALUES (1, 'daniel')""); var employees1 = sqlClient.cursor('select * from employees'); employees1.close(); var employees2 = sqlClient.cursor('select * from employees'); var items = []; while(employees2.hasNext()) { var item = employees2.next(); items.push(item); console.log(item); } return items; } main(); "); result.Logs.ForEach(x => System.Console.WriteLine(x.Arg1)); Assert.IsNotNull(result); Assert.AreEqual(1, ((object[])result.Value).Length); Assert.AreEqual(1, ((object[])result.Value)[0].GetProperty("ID")); Assert.AreEqual("daniel", ((object[])result.Value)[0].GetProperty("Name")); } }
public void Query_MariaDb_ConnectionProperties() { using (BlendedJSEngine engine = new BlendedJSEngine()) { var result = engine.ExecuteScript( @" var sqlClient = new SqlClient({ provider:'MariaDb', server:'rmspavs8mpub7dkq.chr7pe7iynqr.eu-west-1.rds.amazonaws.com', database:'xy39fg5tb0y2wim0', user:'******', password:'******'}); try {sqlClient.query('drop table employees');} catch(e){} sqlClient.query('create table employees (ID int, Name varchar(255))'); sqlClient.query(""insert INTO employees (ID,Name) VALUES (1, 'daniel')""); sqlClient.query('select * from employees'); "); result.Logs.ForEach(x => System.Console.WriteLine(x.Arg1)); Assert.IsNotNull(result); Assert.AreEqual(1, ((object[])result.Value).Length); Assert.AreEqual(1, ((object[])result.Value)[0].GetProperty("ID")); Assert.AreEqual("daniel", ((object[])result.Value)[0].GetProperty("Name")); } }
public void Query_Odbc_ConnectionProperties() { using (BlendedJSEngine engine = new BlendedJSEngine()) { var result = engine.ExecuteScript( @" var sqlClient = new SqlClient({ provider:'Odbc', server:'eu-cdbr-west-02.cleardb.net', database:'heroku_dc6ceea567ee53d', driver:'{MySQL ODBC 5.1 Driver}', user:'******', password:'******'}); try {sqlClient.query('drop table employees');} catch(e){} sqlClient.query('create table employees (ID int, Name varchar(255))'); sqlClient.query(""insert INTO employees (ID,Name) VALUES (1, 'daniel')""); sqlClient.query('select * from employees'); "); result.Logs.ForEach(x => System.Console.WriteLine(x.Arg1)); Assert.IsNotNull(result); Assert.AreEqual(1, ((object[])result.Value).Length); Assert.AreEqual(1, ((object[])result.Value)[0].GetProperty("ID")); Assert.AreEqual("daniel", ((object[])result.Value)[0].GetProperty("Name")); } }
public void Cursor_Run2() { using (BlendedJSEngine engine = new BlendedJSEngine()) { var result = engine.ExecuteScript( @" function main() { var sqlClient = new SqlClient({provider:'Sqlite',connectionString:'Data Source = chinook.db;'}); var employees = sqlClient.cursor('select * from employees'); var albums = sqlClient.cursor('select * from albums'); var items = []; while(albums.hasNext()) { var item = albums.next(); items.push(item); console.log(item); } while(employees.hasNext()) { var item = employees.next(); items.push(item); console.log(item); } return items; } main(); "); Assert.IsNotNull(result); System.Console.WriteLine(result.ConsoleTest); Assert.IsTrue(((object[])result.Value).Length > 20); } }
public void Cursor_WhileLoop() { using (BlendedJSEngine engine = new BlendedJSEngine()) { var result = engine.ExecuteScript( @" function main() { var sqlClient = new SqlClient({provider:'Sqlite',connectionString:'Data Source = chinook.db;'}); var cursor = sqlClient.cursor('select * from employees'); var items = []; while(cursor.hasNext()) { var item = cursor.next(); items.push(item); console.log(item); } return items; } main(); "); Assert.IsNotNull(result); System.Console.WriteLine(result.ConsoleTest); Assert.AreEqual(8, ((object[])result.Value).Length); IDictionary <string, object> firstRecord = ((object[])result.Value)[0] as IDictionary <string, object>; Assert.AreEqual((Int64)1, firstRecord["EmployeeId"]); } }
public void Find_Projection_Exclude_idField() { TestData.TestData.Prepare("bios", "TestData/bios.json"); BlendedJSEngine mongo = new BlendedJSEngine(); mongo.Jint.SetValue("mongoConnectionString", TestData.TestData.MongoConnectionString); var results = mongo.ExecuteScript( @" var db = new MongoClient(this.mongoConnectionString); db.bios.find( { }, { name: 1, contribs: 1, _id: 0 } ) "); var items = ((IEnumerable <object>)results.Value).ToList(); Assert.AreEqual(10, items.Count); foreach (var item in items) { Assert.IsNotNull(item.GetProperty("name")); Assert.IsNotNull(item.GetProperty("contribs")); } }
public void FindOne_WithQuerySpecificatione() { TestData.TestData.Prepare("bios", "TestData/bios.json"); BlendedJSEngine mongo = new BlendedJSEngine(); mongo.Jint.SetValue("mongoConnectionString", TestData.TestData.MongoConnectionString); var results = mongo.ExecuteScript( @" var db = new MongoClient(this.mongoConnectionString); db.bios.findOne( { $or: [ { 'name.first' : {'$regex': 'Gr'}}, { birth: { $lt: new Date('1940-01-01') } } ] } ); "); System.Console.Write(results.ConsoleTest); var firstDocument = (BsonDocument)results.Value; Assert.IsNotNull(firstDocument); Assert.IsTrue(firstDocument.ToString().StartsWith("{ \"_id\" : 3,")); }
public void Delete_Json() { BlendedJSEngine engine = new BlendedJSEngine(); var result = engine.ExecuteScript( @" function main() { var httpClient = new HttpClient(); var response = httpClient.delete({ url:'https://jsonplaceholder.typicode.com/posts/1' }); response.bodyJson = JSON.parse(response.body); console.log(response); return response; } main(); "); System.Console.WriteLine(result.ConsoleTest); HttpResponse response = result.Value as HttpResponse; Assert.AreEqual(200, response.statusCode); Assert.AreEqual("OK", response.reasonPhrase); Assert.AreEqual("{}", response.body); object deleted = response.GetProperty("bodyJson"); Assert.IsNotNull(deleted); }
public void Update_SpecificFields() { TestData.TestData.Prepare("books", "TestData/books.json"); BlendedJSEngine mongo = new BlendedJSEngine(); mongo.Jint.SetValue("mongoConnectionString", TestData.TestData.MongoConnectionString); var results = mongo.ExecuteScript( @" var db = new MongoClient(this.mongoConnectionString); db.books.update( { _id: 1 }, { $inc: { stock: 5 }, $set: { item: ""ABC123"", ""info.publisher"": ""2222"", tags: [""software""], ""ratings.1"": { by: ""xyz"", rating: 3 } } } ) "); var result = (UpdateResult)results.Value; Assert.AreEqual(true, result.acknowledged); Assert.AreEqual((Int64)1, result.matchedCount); Assert.AreEqual((Int64)1, result.modifiedCount); //{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 } }
public void Get_Json() { BlendedJSEngine engine = new BlendedJSEngine(); var result = engine.ExecuteScript( @" function main() { var httpClient = new HttpClient(); var response = httpClient.get({ url:'https://jsonplaceholder.typicode.com/posts', headers: {'Content-Type':'application/json'} }); response.bodyJson = JSON.parse(response.body); console.log(response); return response; } main(); "); System.Console.WriteLine(result.ConsoleTest); HttpResponse response = result.Value as HttpResponse; Assert.AreEqual(200, response.statusCode); Assert.AreEqual("OK", response.reasonPhrase); object[] posts = response.GetProperty("bodyJson") as object[]; Assert.AreEqual((double)1, posts[0].GetProperty("userId")); }
public void Aggregate_SpecifyInitialBatchSize() { TestData.TestData.Prepare("orders", "TestData/orders.json"); BlendedJSEngine mongo = new BlendedJSEngine(); mongo.Jint.SetValue("mongoConnectionString", TestData.TestData.MongoConnectionString); var results = mongo.ExecuteScript( @" var db = new MongoClient(this.mongoConnectionString); db.orders.aggregate( [ { $match: { status: ""A"" } }, { $group: { _id: ""$cust_id"", total: { $sum: ""$amount"" } } }, { $sort: { total: -1 } }, { $limit: 2 } ], { cursor: { batchSize: 0 } } )"); var items = ((IEnumerable <object>)results.Value).ToList(); Assert.AreEqual(2, items.Count); }
public void rpushx() { using (BlendedJSEngine engine = new BlendedJSEngine()) { engine.Jint.SetValue("testRedisUrl", _testRedisUrl); var result = engine.ExecuteScript(@" var redis = new RedisClient(this.testRedisUrl); redis.del('mylist'); redis.rpush('mylist', 'one'); redis.rpushx('mylist', 'two'); "); System.Console.WriteLine(result.ConsoleTest); Assert.AreEqual((double)2, (double)result.Value); } using (BlendedJSEngine engine = new BlendedJSEngine()) { engine.Jint.SetValue("testRedisUrl", _testRedisUrl); var result = engine.ExecuteScript(@" var redis = new RedisClient(this.testRedisUrl); redis.del('mylist'); redis.rpushx('mylist', 'two'); "); System.Console.WriteLine(result.ConsoleTest); Assert.AreEqual((double)0, (double)result.Value); } }
public void Find_ArrayOfDocuments() { TestData.TestData.Prepare("bios", "TestData/bios.json"); BlendedJSEngine mongo = new BlendedJSEngine(); mongo.Jint.SetValue("mongoConnectionString", TestData.TestData.MongoConnectionString); var results = mongo.ExecuteScript( @" var db = new MongoClient(this.mongoConnectionString); db.bios.find( { awards: { $elemMatch: { award: ""Turing Award"", year: { $gt: 1980 } } } } ) "); var items = ((IEnumerable <object>)results.Value).ToList(); Assert.AreEqual(3, items.Count); }
public void Next_OverTwoItems() { using (BlendedJSEngine engine = new BlendedJSEngine()) { engine.Jint.SetValue("cursor", new Cursor(new List <object> { 1, 2 })); var results = engine.ExecuteScript( @" function main() { var items = []; items.push(cursor.next()); items.push(cursor.next()); return items; } main(); "); System.Console.WriteLine(results.ConsoleTest); Assert.AreEqual(2, ((object[])results.Value).Length); Assert.AreEqual(1.0, ((object[])results.Value)[0]); Assert.AreEqual(2.0, ((object[])results.Value)[1]); } }
public void SetEx() { using (BlendedJSEngine engine = new BlendedJSEngine()) { engine.Jint.SetValue("testRedisUrl", _testRedisUrl); var result = engine.ExecuteScript(@" var redis = new RedisClient(this.testRedisUrl); redis.del('mykey'); redis.setex('mykey', 11, 'Hello'); redis.ttl('mykey'); "); System.Console.WriteLine(result.ConsoleTest); Assert.AreEqual(10, (double)result.Value); } using (BlendedJSEngine engine = new BlendedJSEngine()) { engine.Jint.SetValue("testRedisUrl", _testRedisUrl); var result = engine.ExecuteScript(@" var redis = new RedisClient(this.testRedisUrl); redis.del('mykey'); redis.setex('mykey', 11, 'Hello'); redis.ttl('mykey'); redis.get('mykey'); "); System.Console.WriteLine(result.ConsoleTest); Assert.AreEqual("Hello", (string)result.Value); } }
public void StrLen() { using (BlendedJSEngine engine = new BlendedJSEngine()) { engine.Jint.SetValue("testRedisUrl", _testRedisUrl); var result = engine.ExecuteScript(@" var redis = new RedisClient(this.testRedisUrl); redis.del('mykey'); redis.set('mykey', 'Hello World') redis.strlen('mykey'); "); System.Console.WriteLine(result.ConsoleTest); Assert.AreEqual(11, (double)result.Value); } using (BlendedJSEngine engine = new BlendedJSEngine()) { engine.Jint.SetValue("testRedisUrl", _testRedisUrl); var result = engine.ExecuteScript(@" var redis = new RedisClient(this.testRedisUrl); redis.del('mykey'); redis.strlen('mykey'); "); System.Console.WriteLine(result.ConsoleTest); Assert.AreEqual(0, (double)result.Value); } }
public void MSetNX() { using (BlendedJSEngine engine = new BlendedJSEngine()) { engine.Jint.SetValue("testRedisUrl", _testRedisUrl); var result = engine.ExecuteScript(@" var redis = new RedisClient(this.testRedisUrl); redis.del('key1'); redis.del('key2'); redis.msetnx(['key1', 'Hello', 'key2', 'World']); "); System.Console.WriteLine(result.ConsoleTest); Assert.AreEqual((double)1, (double)result.Value); } using (BlendedJSEngine engine = new BlendedJSEngine()) { engine.Jint.SetValue("testRedisUrl", _testRedisUrl); var result = engine.ExecuteScript(@" var redis = new RedisClient(this.testRedisUrl); redis.del('key1'); redis.del('key2'); redis.del('key3'); redis.msetnx(['key1', 'Hello', 'key2', 'World']); redis.msetnx(['key2', 'Hello', 'key3', 'World']); "); System.Console.WriteLine(result.ConsoleTest); Assert.AreEqual((double)0, (double)result.Value); } }
public void Decr() { using (BlendedJSEngine engine = new BlendedJSEngine()) { engine.Jint.SetValue("testRedisUrl", _testRedisUrl); var result = engine.ExecuteScript(@" var redis = new RedisClient(this.testRedisUrl); redis.del('mykey'); redis.set('mykey','10'); redis.decr('mykey'); "); System.Console.WriteLine(result.ConsoleTest); var value = result.Value as string; Assert.AreEqual(9, (double)result.Value); } using (BlendedJSEngine engine = new BlendedJSEngine()) { engine.Jint.SetValue("testRedisUrl", _testRedisUrl); var result = engine.ExecuteScript(@" var redis = new RedisClient(this.testRedisUrl); redis.del('mykey'); redis.set('mykey','234293482390480948029348230948'); redis.decr('mykey'); "); System.Console.WriteLine(result.ConsoleTest); Assert.IsTrue(result.ConsoleTest.Contains("ERR value is not an integer or out of range")); } }
public void lrange() { using (BlendedJSEngine engine = new BlendedJSEngine()) { engine.Jint.SetValue("testRedisUrl", _testRedisUrl); var result = engine.ExecuteScript(@" var redis = new RedisClient(this.testRedisUrl); redis.del('mylist'); redis.rpush('mylist', 'one'); redis.rpush('mylist', 'two'); redis.rpush('mylist', 'three'); redis.lrange('mylist', 0, 0); "); System.Console.WriteLine(result.ConsoleTest); Assert.AreEqual("one", ((object[])result.Value)[0]); } using (BlendedJSEngine engine = new BlendedJSEngine()) { engine.Jint.SetValue("testRedisUrl", _testRedisUrl); var result = engine.ExecuteScript(@" var redis = new RedisClient(this.testRedisUrl); redis.del('mylist'); redis.rpush('mylist', 'one'); redis.rpush('mylist', 'two'); redis.rpush('mylist', 'three'); redis.lrange('mylist', 0, 0); redis.lrange('mylist', -3, 2); "); System.Console.WriteLine(result.ConsoleTest); Assert.AreEqual("one", ((object[])result.Value)[0]); Assert.AreEqual("two", ((object[])result.Value)[1]); Assert.AreEqual("three", ((object[])result.Value)[2]); } using (BlendedJSEngine engine = new BlendedJSEngine()) { engine.Jint.SetValue("testRedisUrl", _testRedisUrl); var result = engine.ExecuteScript(@" var redis = new RedisClient(this.testRedisUrl); redis.del('mylist'); redis.rpush('mylist', 'one'); redis.rpush('mylist', 'two'); redis.rpush('mylist', 'three'); redis.lrange('mylist', 0, 0); redis.lrange('mylist', -3, 2); redis.lrange('mylist', 5, 10); "); System.Console.WriteLine(result.ConsoleTest); Assert.AreEqual(0, ((object[])result.Value).Length); } }
public void ConsoleLog_SumOfNumber() { BlendedJSEngine engine = new BlendedJSEngine(); var result = engine.ExecuteScript( @" console.log(2 + 2); "); Assert.AreEqual("Line 2: 4", result.ConsoleTest); }
public void ConsoleLog_GraveAccent() { BlendedJSEngine engine = new BlendedJSEngine(); var result = engine.ExecuteScript( @" console.log(`bla bla bla`); "); Assert.AreEqual("Line 2: bla bla bla", result.ConsoleTest); }
public void Log_String() { BlendedJSEngine engine = new BlendedJSEngine(); var result = engine.ExecuteScript( @" log('bla bla bla'); "); Assert.AreEqual("Line 2: bla bla bla", result.ConsoleTest); }