public function testInputArguments()
 {
     $tests = array(array("data" => array("conntrack-monitor.php", "--verbose", "--filter", "194.8.253.11"), "result" => array("verbose" => true, "filter" => "194.8.253.11")), array("data" => array("conntrack-monitor.php", "--verbose"), "result" => array("verbose" => true)), array("data" => array("conntrack-monitor.php", "--help"), "result" => array("action" => "help")), array("data" => array("conntrack-monitor.php", "--show", "alias"), "result" => array("action" => "show", "value" => "alias")), array("data" => array("conntrack-monitor.php", "-v"), "result" => array("verbose" => true)), array("data" => array("conntrack-monitor.php", "--alias", "194.8.253.77", "vps0008.best-hosting.cz"), "result" => array("action" => "alias", "ip" => "194.8.253.77", "value" => "vps0008.best-hosting.cz")), array("data" => array("conntrack-monitor.php", "-a", "194.8.253.77", "vps0008.best-hosting.cz"), "result" => array("action" => "alias", "ip" => "194.8.253.77", "value" => "vps0008.best-hosting.cz")), array("data" => array("conntrack-monitor.php", "-m", 500), "result" => array("minimum" => 500)));
     foreach ($tests as $t) {
         // 			var_dump($t["data"]);die;
         $args = new Arguments($t["data"]);
         $this->assertTrue($t["result"] == $args->getArguments());
     }
 }
 public function run($argv)
 {
     // CLI arguments
     $args = new Arguments($argv);
     $this->config = $this->getconfig();
     $this->config = $args->fill($args->getArguments(), $this->config);
     // subnets and connections config
     $fc = new FileCache(__DIR__ . self::CACHE_CONNECTIONS);
     $this->config["connections"] = $fc->getData();
     $fc = new FileCache(__DIR__ . self::CACHE_SUBNETS);
     $this->config["subnets"] = $fc->getData();
     // 	var_dump($this->config['action']);die;
     switch ($this->config['action']) {
         case "alias":
             $out = $this->setCacheValue(__DIR__ . self::CACHE_ALIAS, $this->config['ip'], $this->config['value']);
             break;
         case "connection":
             $out = $this->setCacheValue(__DIR__ . self::CACHE_CONNECTIONS, $this->config['ip'], $this->config['value']);
             break;
         case "subnet":
             $out = $this->setCacheValue(__DIR__ . self::CACHE_SUBNETS, $this->config['ip'], $this->config['value']);
             break;
         case "limit":
             $out = $this->setLimit($this->config['ip'], $this->config['limit']);
             break;
         case "show":
             $out = $this->show($this->config['value']);
             break;
         case "help":
             $out = $this->help();
             break;
         case "conntrack":
         default:
             $out = $this->conntrackAction($args->getStream());
             break;
     }
     return $out;
 }