Пример #1
0
        public void ConsoleLog_StringPlusJsArrayOfObjects()
        {
            BlendedJSEngine engine = new BlendedJSEngine();
            var             result = engine.ExecuteScript(
                @"
                    var array = [{a:1},{a:2},{a:3}];
                    console.log('text ' + array);
                ");

            Assert.AreEqual("Line 3: text [object Object],[object Object],[object Object]", result.ConsoleTest);
        }
Пример #2
0
        public void ConsoleLog_StringPlusCsHttpClient()
        {
            BlendedJSEngine engine = new BlendedJSEngine();
            var             result = engine.ExecuteScript(
                @"
                    var obj = HttpClient();
                    console.log('text ' + obj);
                ");

            Assert.AreEqual("Line 3: text [object HttpClient]", result.ConsoleTest);
        }
Пример #3
0
        public void ConsoleLog_StringPlusJsArray()
        {
            BlendedJSEngine engine = new BlendedJSEngine();
            var             result = engine.ExecuteScript(
                @"
                    var array = [1,2,3];
                    console.log('text ' + array);
                ");

            Assert.AreEqual("Line 3: text 1,2,3", result.ConsoleTest);
        }
Пример #4
0
        public void lindex()
        {
            using (BlendedJSEngine engine = new BlendedJSEngine())
            {
                engine.Jint.SetValue("testRedisUrl", _testRedisUrl);

                var result = engine.ExecuteScript(@"
                    var redis = new RedisClient(this.testRedisUrl);
                    redis.del('mylist');
                    redis.lpush('mylist', 'World');
                    redis.lpush('mylist', 'Hello');
                    redis.lindex('mylist', '0');
                ");

                System.Console.WriteLine(result.ConsoleTest);
                Assert.AreEqual("Hello", (string)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.lpush('mylist', 'World');
                    redis.lpush('mylist', 'Hello');
                    redis.lindex('mylist', 0);
                    redis.lindex('mylist', -1);
                ");

                System.Console.WriteLine(result.ConsoleTest);
                Assert.AreEqual("World", (string)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.lpush('mylist', 'World');
                    redis.lpush('mylist', 'Hello');
                    redis.lindex('mylist', 0);
                    redis.lindex('mylist', -1);
                    redis.lindex('mylist', 3);
                ");

                System.Console.WriteLine(result.ConsoleTest);
                Assert.AreEqual(null, result.Value);
            }
        }
Пример #5
0
        public void Drop()
        {
            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.drop();
                ");
        }
Пример #6
0
        public void ConsoleLog_NotCatchedNetError()
        {
            BlendedJSEngine engine = new BlendedJSEngine();

            engine.Jint.SetValue("doSomeJob", new Action <object>(x => throw new Exception("bla bla bla")));
            var result = engine.ExecuteScript(
                @"
                    doSomeJob();
                ");

            Assert.AreEqual("Line 2: ERROR, Line 2 :bla bla bla", result.ConsoleTest);
        }
Пример #7
0
        public void ConsoleLog_GraveAccentMultiLine()
        {
            BlendedJSEngine engine = new BlendedJSEngine();
            var             result = engine.ExecuteScript(
                @"
                    console.log(`bla 
bla 
bla`);
                ");

            Assert.AreEqual("Line 2: bla \r\nbla \r\nbla", result.ConsoleTest);
        }
Пример #8
0
        public void Exists()
        {
            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.set('key1', 'Hello');
                    redis.exists('key1');
                ");

                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.set('key1', 'Hello');
                    redis.exists('nosuchkey');
                ");

                System.Console.WriteLine(result.ConsoleTest);
                Assert.AreEqual((double)0, (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.set('key1', 'Hello');
                    redis.exists('nosuchkey');
                    redis.set('key2', 'Worlds');
                    redis.exists('key1' ,'key2', 'nosuchkey');
                ");

                System.Console.WriteLine(result.ConsoleTest);
                Assert.AreEqual((double)0, (double)result.Value);
            }
        }
Пример #9
0
 public void Connect_NotExistingKeySpace()
 {
     using (BlendedJSEngine engine = new BlendedJSEngine())
     {
         var result = engine.ExecuteScript(
             @"
             var cassandraClient = new CassandraClient({host:'localhost'});
             cassandraClient.connect('NotExists');
         ");
         System.Console.WriteLine(result.ConsoleTest);
         Assert.IsTrue(result.ConsoleTest.Contains("Keyspace 'NotExists' does not exist"));
     }
 }
Пример #10
0
        public void List_ReturnsFiles()
        {
            using (BlendedJSEngine engine = new BlendedJSEngine())
            {
                var result = engine.ExecuteScript(
                    @"
                    var sftpClient = new SftpClient({host:'test.rebex.net', user:'******', password:'******'});
                    sftpClient.list('/');
                ");

                Assert.IsNotNull(result.Value);
            }
        }
Пример #11
0
 public void Connect_NoError()
 {
     using (BlendedJSEngine engine = new BlendedJSEngine())
     {
         var result = engine.ExecuteScript(
             @"
             var cassandraClient = new CassandraClient({host:'localhost'});
             cassandraClient.connect();
         ");
         System.Console.WriteLine(result.ConsoleTest);
         Assert.IsTrue(string.IsNullOrEmpty(result.ConsoleTest));
     }
 }
Пример #12
0
 public void Query_SelectRows()
 {
     using (BlendedJSEngine engine = new BlendedJSEngine())
     {
         var result = engine.ExecuteScript(
             @"
             var sqlClient = new  SqlClient({provider:'Sqlite',connectionString:'Data Source = chinook.db;'});
             sqlClient.query('select * from employees');
         ");
         Assert.IsNotNull(result);
         Assert.AreEqual(8, ((object[])result.Value).Length);
     }
 }
Пример #13
0
 public void Query_UpdateZeroItems()
 {
     using (BlendedJSEngine engine = new BlendedJSEngine())
     {
         var result = engine.ExecuteScript(
             @"
             var sqlClient = new  SqlClient({provider:'Sqlite',connectionString:'Data Source = chinook.db;'});
             sqlClient.query('update employees set FirstName = ""Kowalski"" where EmployeeId=123123');
         ");
         Assert.IsNotNull(result);
         Assert.AreEqual((double)0, result.Value);
     }
 }
Пример #14
0
        public void IncrByFloat()
        {
            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.50);
                    redis.incrbyfloat('mykey', 0.1);
                ");

                System.Console.WriteLine(result.ConsoleTest);
                Assert.AreEqual(10.6, (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', 10.50);
                    redis.incrbyfloat('mykey', 0.1);
                    redis.incrbyfloat('mykey', -5);
                ");

                System.Console.WriteLine(result.ConsoleTest);
                Assert.AreEqual(5.6, (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', 5.0e3);
                    redis.incrbyfloat('mykey', 2.0e2);
    
                ");

                System.Console.WriteLine(result.ConsoleTest);
                Assert.AreEqual(5200, (double)result.Value);
            }
        }
Пример #15
0
        public void RandomKey()
        {
            using (BlendedJSEngine engine = new BlendedJSEngine())
            {
                engine.Jint.SetValue("testRedisUrl", _testRedisUrl);

                var result = engine.ExecuteScript(@"
                    var redis = new RedisClient(this.testRedisUrl);
                    redis.randomkey();
                ");

                System.Console.WriteLine(result.ConsoleTest);
                Assert.IsNotNull((string)result.Value);
            }
        }
Пример #16
0
        public void Get_UrlIsInvalid_ThrowError()
        {
            BlendedJSEngine engine = new BlendedJSEngine();
            var             result = engine.ExecuteScript(
                @"
                    try {
                        var httpClient = new HttpClient();
                        httpClient.get('asdf://asdf');
                    }catch(err) {
                        console.log(err);
                    }
                ");

            Assert.IsTrue(result.ConsoleTest.Contains("Only 'http' and 'https' schemes are allowed"));
        }
Пример #17
0
        public void ConsoleLog_CatchedJsError()
        {
            BlendedJSEngine engine = new BlendedJSEngine();
            var             result = engine.ExecuteScript(
                @"
                    try {
                        doSomeJob();
                    }
                    catch(err) {
                        console.log('catch ' + err);
                    }
                ");

            Assert.AreEqual("Line 6: catch ReferenceError: doSomeJob is not defined", result.ConsoleTest);
        }
Пример #18
0
        public void ConsoleLog_StringPlusCsArrayOfObjects()
        {
            BlendedJSEngine             engine = new BlendedJSEngine();
            Dictionary <string, object> obj    = new Dictionary <string, object>();

            engine.Jint.SetValue("TestClass", new Func <object>(() => new object[] { new JsObject(), new JsObject(), new JsObject() }));

            var result = engine.ExecuteScript(
                @"
                    var obj = TestClass();
                    console.log('text ' + obj);
                ");

            Assert.AreEqual("Line 3: text [object Object],[object Object],[object Object]", result.ConsoleTest);
        }
Пример #19
0
        public void CreateIndex_CreateItem_ReturnAllItems()
        {
            using (BlendedJSEngine engine = new BlendedJSEngine())
            {
                var result = engine.ExecuteScript(
                    @"
                    var httpClient = new HttpClient();
                    var indexExists = httpClient.head('http://*****:*****@gloin-eu-west-1.searchly.com/twitter');
                    console.log('Index exists:');
                    console.log(indexExists);

                    if (indexExists.statusCode != 200)
                    {
                        var indexCreated = httpClient.put({
                            url:'http://*****:*****@gloin-eu-west-1.searchly.com/twitter',
                            body: {'settings' : {'index' : { 'number_of_shards' : 3, 'number_of_replicas' : 2 }}}
                        });
                        console.log('Index created:');
                        console.log(indexCreated);
                    }

                    var itemCreated = httpClient.post({
                        url:'http://*****:*****@gloin-eu-west-1.searchly.com/twitter/_doc/1',
                        headers: {'Content-Type':'application/json'},
                        body: {'user':'******', 'post_date':'2009-11-15T14:12:12', 'message':'trying out Elasticsearch'}
                    });
                    console.log('item created');
                    console.log(itemCreated);

                    var matchAllItems = httpClient.post({
                        url:'http://*****:*****@gloin-eu-west-1.searchly.com/twitter/_search',
                        headers: {'Content-Type':'application/json'},
                        body: {'query': {'match_all': { }}}
                    });
                    console.log(matchAllItems);

                    var matchAllItemsBody = JSON.parse(matchAllItems.body);
                    var matchAllItemsHits = matchAllItemsBody.hits.hits.map(function(a) {return a['_source'];});;
                    console.log(matchAllItemsHits);
                    matchAllItemsHits;
                ");

                System.Console.WriteLine(result.ConsoleTest);
                var items = result.Value as object[];
                Assert.AreEqual(1, items.Length);
                Assert.IsNotNull("kimchy", (((IDictionary <string, object>)items[0])["user"]).ToString());
            }
        }
Пример #20
0
        public void HStrLen()
        {
            using (BlendedJSEngine engine = new BlendedJSEngine())
            {
                engine.Jint.SetValue("testRedisUrl", _testRedisUrl);

                var result = engine.ExecuteScript(@"
                    var redis = new RedisClient(this.testRedisUrl);
                    redis.hmset('myhash', 'f1', 'HelloWorld', 'f2', 99, 'f3', -256);
                    redis.hstrlen('myhash', 'f1');
                ");

                System.Console.WriteLine(result.ConsoleTest);
                Assert.AreEqual(10, (double)result.Value);
            }
        }
Пример #21
0
        public void Type()
        {
            using (BlendedJSEngine engine = new BlendedJSEngine())
            {
                engine.Jint.SetValue("testRedisUrl", _testRedisUrl);

                var result = engine.ExecuteScript(@"
                    var redis = new RedisClient(this.testRedisUrl);
                    redis.set('key1', 'Hello');
                    redis.type('key1');
                ");

                System.Console.WriteLine(result.ConsoleTest);
                Assert.AreEqual("String", (string)result.Value);
            }
        }
Пример #22
0
        public void HSet()
        {
            using (BlendedJSEngine engine = new BlendedJSEngine())
            {
                engine.Jint.SetValue("testRedisUrl", _testRedisUrl);

                var result = engine.ExecuteScript(@"
                    var redis = new RedisClient(this.testRedisUrl);
                    redis.hdel('myhash', 'field1');
                    redis.hset('myhash', 'field1', 'Hello');
                ");

                System.Console.WriteLine(result.ConsoleTest);
                Assert.AreEqual(1, (double)result.Value);
            }
        }
Пример #23
0
        public void Find_ByObjectId_ReturnsOneDocument()
        {
            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( { _id: ObjectId(""51e062189c6ae665454e301d"") } );
                ");
            var items = ((IEnumerable <object>)results.Value).ToList();

            Assert.AreEqual(1, items.Count);
        }
Пример #24
0
 public void Query_SelectWithParameters()
 {
     using (BlendedJSEngine engine = new BlendedJSEngine())
     {
         var result = engine.ExecuteScript(
             @"
             var sqlClient = new  SqlClient({provider:'Sqlite',connectionString:'Data Source = chinook.db;'});
             sqlClient.query({
                 sql:'select * from employees where EmployeeId=@EmployeeId', 
                 parameters:{EmployeeId:1}
             });
         ");
         Assert.IsNotNull(result);
         Assert.AreEqual(1, ((object[])result.Value).Length);
     }
 }
Пример #25
0
        public void Find_LimiAndSort()
        {
            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().sort( { name: 1 } ).limit( 5 )
                ").Value as IEnumerable <object>;


            Assert.AreEqual(5, results.ToList().Count);
        }
Пример #26
0
        public void lpush()
        {
            using (BlendedJSEngine engine = new BlendedJSEngine())
            {
                engine.Jint.SetValue("testRedisUrl", _testRedisUrl);

                var result = engine.ExecuteScript(@"
                    var redis = new RedisClient(this.testRedisUrl);
                    redis.del('mylist');
                    redis.lpush('mylist', 'one');
                ");

                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('mylist');
                    redis.lpush('mylist', 'one');
                    redis.lpush('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.lpush('mylist', 'one');
                    redis.lpush('mylist', 'two');
                    redis.lrange('mylist', 0, -1);
                ");

                Assert.AreEqual("two", ((object[])result.Value)[0]);
                Assert.AreEqual("one", ((object[])result.Value)[1]);
            }
        }
Пример #27
0
        public void SetNx()
        {
            using (BlendedJSEngine engine = new BlendedJSEngine())
            {
                engine.Jint.SetValue("testRedisUrl", _testRedisUrl);

                var result = engine.ExecuteScript(@"
                    var redis = new RedisClient(this.testRedisUrl);
                    redis.del('mykey');
                    redis.setnx('mykey', 'Hello');
                ");

                System.Console.WriteLine(result.ConsoleTest);
                Assert.AreEqual(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.setnx('mykey', 'Hello');
                    redis.setnx('mykey', 'World');
                ");

                System.Console.WriteLine(result.ConsoleTest);
                Assert.AreEqual(0, (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.setnx('mykey', 'Hello');
                    redis.setnx('mykey', 'World');
                    redis.get('mykey');
                ");

                System.Console.WriteLine(result.ConsoleTest);
                Assert.AreEqual("Hello", (string)result.Value);
            }
        }
Пример #28
0
        public void IncrBy()
        {
            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.incrby('mykey', 5);
                ");

                System.Console.WriteLine(result.ConsoleTest);
                Assert.AreEqual(15, (double)result.Value);
            }
        }
Пример #29
0
        public void Find_ToArray()
        {
            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);
                    var items = db.bios.find().toArray();
                    console.log(items);
                    
                ");

            Assert.AreEqual(1, results.Logs.Count);
        }
Пример #30
0
        public void PSetEx()
        {
            using (BlendedJSEngine engine = new BlendedJSEngine())
            {
                engine.Jint.SetValue("testRedisUrl", _testRedisUrl);

                var result = engine.ExecuteScript(@"
                    var redis = new RedisClient(this.testRedisUrl);
                    redis.del('mykey');
                    redis.psetex('mykey', 1000, 'Hello');
                    redis.pttl('mykey');
                ");

                System.Console.WriteLine(result.ConsoleTest);
                Assert.IsTrue((double)result.Value > (double)900);
            }
        }