Example #1
0
        public void PingLocalhostAsyncWithCloseWillNotFail()
        {
            const string HOST    = "127.0.0.1";
            const int    MAX_CNT = 100;

            List <ToolPing> responseList      = new List <ToolPing>();
            Exception       responseException = null;

            ITikCommand pingCommand = Connection.LoadAsync <ToolPing>(
                ping => responseList.Add(ping),             //read callback
                exception => responseException = exception, //exception callback
                Connection.CreateParameter("address", HOST),
                Connection.CreateParameter("count", MAX_CNT.ToString()),
                Connection.CreateParameter("size", "64"));

            Thread.Sleep(3 * 1000);
            Connection.Close();
            Thread.Sleep(2 * 1000);

            Assert.IsTrue(!Connection.IsOpened);
            Assert.IsNull(responseException);
            Assert.IsTrue(responseList.Count < MAX_CNT);
            Assert.IsTrue(!responseList.Any(ping => ping.Host != HOST));

            RecreateConnection(); //Cleanup
        }
Example #2
0
        public void RunScript_Issue53_WillNotFail()
        {
            const string name            = "TEST_NAME_ISSUE53";
            const string scriptLines     = ":log info (\"start\") \r\n/ system identity print \r\n/ system identity print\r\n:log info (\"end\") ";
            const int    commandRowsCnt  = 2; // 2x call of / system identity print
            ITikCommand  scriptCreateCmd = Connection.CreateCommandAndParameters("/system/script/add",
                                                                                 "name", name,
                                                                                 "source", scriptLines);
            var id = scriptCreateCmd.ExecuteScalar();

            try
            {
                //run via ID
                ITikCommand scriptRunCmd = Connection.CreateCommand("/system/script/run",
                                                                    Connection.CreateParameter(TikSpecialProperties.Id, id, TikCommandParameterFormat.NameValue));
                var responseRows = scriptRunCmd.ExecuteList();
                Assert.IsTrue(responseRows.Count() == commandRowsCnt); //one empty !re row per script line command

                ////run via number
                //ITikCommand scriptRunCmd1 = Connection.CreateCommand("/system/script/run",
                //    Connection.CreateParameter("number", "0", TikCommandParameterFormat.NameValue));
                //var responseRows1 = scriptRunCmd1.ExecuteList();
                //Assert.IsTrue(responseRows1.Count() == commandRowsCnt); //one empty !re row per script line command
            }
            finally
            {
                Connection.CreateCommandAndParameters("/system/script/remove", TikSpecialProperties.Id, id).ExecuteNonQuery();
            }
        }
        public void LoadTrafficWithDurationNotFail()
        {
            var tmp = Connection.LoadWithDuration <InterfaceMonitorTraffic>(5,
                                                                            Connection.CreateParameter("interface", "ether1"));

            Assert.IsNotNull(tmp);
            Assert.IsTrue(tmp.Count() > 0);
        }
Example #4
0
        private void Cleanup_DeteleAddressByIp(string ip)
        {
            var ipAddress = Connection.LoadSingleOrDefault <Objects.Ip.IpAddress>(Connection.CreateParameter("address", ip));

            if (ipAddress != null)
            {
                Connection.Delete(ipAddress);
            }
        }
Example #5
0
        public void AsyncExecuteClosed_AfterReboot_AndNextCommandThrowsException()
        {
            var torchAsyncCmd = Connection.LoadAsync <Objects.Tool.ToolTorch>(t => {; },
                                                                              null,
                                                                              Connection.CreateParameter("interface", "ether1"));

            Thread.Sleep(3000);
            Connection.ExecuteNonQuery("/system/reboot");
            Thread.Sleep(3000);

            Assert.IsFalse(torchAsyncCmd.IsRunning);

            Connection.ExecuteScalar("/system/identity/print"); // throws IO exception (rebooted router)
        }
Example #6
0
        public void Load_IpAddress_With_Highlevel_API()
        {
            const string IP        = "192.168.1.1/24";
            const string INTERFACE = "ether1";

            Cleanup_DeteleAddressByIp(IP);
            Init_CreateAddress(IP, INTERFACE);

            var ipAddress = Connection.LoadSingle <Objects.Ip.IpAddress>(
                Connection.CreateParameter("address", IP));

            Assert.IsNotNull(ipAddress);
            Assert.AreEqual(IP, ipAddress.Address);
            Assert.AreEqual(INTERFACE, ipAddress.Interface);

            //cleanup
            Cleanup_DeteleAddressByIp(IP);
        }
        public void SearchByDefaultNameParameter_Interface_WillWork()
        {
            var eth = Connection.LoadSingle <Interface>(Connection.CreateParameter("default-name", "ether1"));

            Assert.IsNotNull(eth);

            /*
             *  > /interface/print
             *  > =detail=
             *  > ?name=ether1
             *  < !re
             *  < =.id=*1
             *  < =name=ether1
             *  < =default-name=ether1
             *  ...
             *  < !done
             */
        }
Example #8
0
        public void PingLocalhostAsyncWillNotFail()
        {
            const string HOST = "127.0.0.1";

            List <ToolPing> responseList      = new List <ToolPing>();
            Exception       responseException = null;

            ITikCommand pingCommand = Connection.LoadAsync <ToolPing>(
                ping => responseList.Add(ping),             //read callback
                exception => responseException = exception, //exception callback
                Connection.CreateParameter("address", HOST),
                Connection.CreateParameter("count", "1"),
                Connection.CreateParameter("size", "64"));

            Thread.Sleep(2 * 1000);

            Assert.IsNull(responseException);
            Assert.AreEqual(responseList.Count, 1);
            Assert.AreEqual(responseList.Single().Host, HOST);
        }
Example #9
0
        public void TorchWillNotFail()
        {
            bool isFailed = false;

            Connection.OnWriteRow += (sender, args) => { System.Diagnostics.Debug.WriteLine(args.Word); };
            Connection.OnReadRow  += (sender, args) => { System.Diagnostics.Debug.WriteLine(args.Word); };

            var cmd1 = Connection.LoadAsync <ToolTorch>(t => { System.Diagnostics.Debug.WriteLine("ether1: " + t); },
                                                        ex => { System.Diagnostics.Debug.WriteLine("ERROR: " + ex.Message);  isFailed = true; },
                                                        Connection.CreateParameter("interface", "ether1"));
            var cmd2 = Connection.LoadAsync <ToolTorch>(t => { System.Diagnostics.Debug.WriteLine("wlan1: " + t); },
                                                        ex => { System.Diagnostics.Debug.WriteLine("ERROR: " + ex.Message); isFailed = true; },
                                                        Connection.CreateParameter("interface", "wlan1"));

            Thread.Sleep(5 * 1000);
            cmd2.CancelAndJoin();
            Thread.Sleep(5 * 1000);
            cmd1.CancelAndJoin();

            Assert.IsFalse(isFailed);
        }
Example #10
0
 public IDbDataParameter CreateParameter(string name, object value)
 {
     _conn = (_conn == null ? _pool.GetConnection() : _conn);
     lock (_requiredTypes)
     {
         if (_requiredTypes.Count > 0)
         {
             while (_requiredTypes.Count > 0)
                 _pool.Updater.InitType(_requiredTypes.Dequeue(), _conn);
         }
     }
     if (value==null)
         return _conn.CreateParameter(name, DBNull.Value);
     else
         return _conn.CreateParameter(name, value);
 }
Example #11
0
 public void ConnectionList_MapperCall_WillNotFail()
 {
     var result = Connection.LoadList <FirewallConnection>(
         Connection.CreateParameter("src-address", "192.168.3.103"));
 }
 public void LoadTrafficSnapshotWillNotFail()
 {
     var tmp = Connection.LoadSingle <InterfaceMonitorTraffic>(
         Connection.CreateParameter("interface", "ether1"),
         Connection.CreateParameter("once", ""));
 }
Example #13
0
 public void LoadByIdWithUnexistentId_WillThrowCorrectException()
 {
     var result = Connection.LoadSingle <IpAddress>(Connection.CreateParameter(TikSpecialProperties.Id, "-NoID-"));
 }
Example #14
0
 private Dictionary<string, int> _SyncMissingValues(Dictionary<string, int> vals, Type t, Connection conn)
 {
     t = (t.IsGenericType ? t.GetGenericArguments()[0] : t);
     string[] keys = new string[vals.Count];
     vals.Keys.CopyTo(keys, 0);
     foreach (string str in Enum.GetNames(t))
     {
         if (!vals.ContainsKey(str))
         {
             conn.ExecuteNonQuery(string.Format("INSERT INTO {0}({1}) VALUES({2});",new object[]{ 
                 _enumTableMaps[t],
                 _pool.Translator.GetEnumValueFieldName(t, conn),
                 conn.CreateParameterName("value")}),
             new System.Data.IDbDataParameter[]{
                         conn.Pool.CreateParameter(conn.CreateParameterName("id"),null,Org.Reddragonit.Dbpro.Structure.Attributes.FieldType.INTEGER,4),
                         conn.CreateParameter(conn.CreateParameterName("value"),str)
                     });
             conn.ExecuteQuery("SELECT ID FROM " + _enumTableMaps[t] + " WHERE " + _pool.Translator.GetEnumValueFieldName(t, conn) + " = " + conn.CreateParameterName("value"),
                 new IDbDataParameter[]{
                     conn.CreateParameter(conn.CreateParameterName("value"),str)
                 });
             conn.Read();
             vals.Add(str, conn.GetInt32(0));
             conn.Close();
         }
     }
     return vals;
 }
Example #15
0
 internal void InsertEnumIntoTable(Type t, Connection conn)
 {
     t = (t.IsGenericType ? t.GetGenericArguments()[0] : t);
     foreach (string str in Enum.GetNames(t))
     {
         conn.ExecuteNonQuery(string.Format("INSERT INTO {0}({1}) VALUES({2});",
                 _enumTableMaps[t],
                 _pool.Translator.GetEnumValueFieldName(t, conn),
                 conn.CreateParameterName("value")),
             new System.Data.IDbDataParameter[]{conn.CreateParameter(conn.CreateParameterName("value"),str)});
     }
     conn.Commit();
     LoadEnumsFromTable(t, conn);
 }