diff --git a/src/Client.php b/src/Client.php index ba714a9..23f7896 100644 --- a/src/Client.php +++ b/src/Client.php @@ -4,6 +4,8 @@ namespace RouterOS; use DivineOmega\SSHConnection\SSHConnection; use RouterOS\Exceptions\ClientException; +use RouterOS\Exceptions\ConnectException; +use RouterOS\Exceptions\BadCredentialsException; use RouterOS\Exceptions\ConfigException; use RouterOS\Interfaces\ClientInterface; use RouterOS\Interfaces\QueryInterface; @@ -57,6 +59,8 @@ class Client implements Interfaces\ClientInterface * @param bool $autoConnect If false it will skip auto-connect stage if not need to instantiate connection * * @throws \RouterOS\Exceptions\ClientException + * @throws \RouterOS\Exceptions\ConnectException + * @throws \RouterOS\Exceptions\BadCredentialsException * @throws \RouterOS\Exceptions\ConfigException * @throws \RouterOS\Exceptions\QueryException */ @@ -82,7 +86,7 @@ class Client implements Interfaces\ClientInterface // Throw error if cannot to connect if (false === $this->connect()) { - throw new ClientException('Unable to connect to ' . $config->get('host') . ':' . $config->get('port')); + throw new ConnectException('Unable to connect to ' . $config->get('host') . ':' . $config->get('port')); } } @@ -445,6 +449,7 @@ class Client implements Interfaces\ClientInterface * * @return bool * @throws \RouterOS\Exceptions\ClientException + * @throws \RouterOS\Exceptions\BadCredentialsException * @throws \RouterOS\Exceptions\ConfigException * @throws \RouterOS\Exceptions\QueryException */ @@ -487,7 +492,7 @@ class Client implements Interfaces\ClientInterface // If RouterOS answered with invalid credentials then throw error if (!empty($response[0]) && '!trap' === $response[0]) { - throw new ClientException('Invalid user name or password'); + throw new BadCredentialsException('Invalid user name or password'); } // Return true if we have only one line from server and this line is !done diff --git a/src/Config.php b/src/Config.php index eae1b35..46c18be 100644 --- a/src/Config.php +++ b/src/Config.php @@ -184,15 +184,15 @@ class Config implements ConfigInterface * * @throws \RouterOS\Exceptions\ConfigException when parameter is not allowed */ - public function delete(string $name): ConfigInterface + public function delete(string $parameter): ConfigInterface { // Check of key in array - if (ArrayHelper::checkIfKeyNotExist($name, self::ALLOWED)) { - throw new ConfigException("Requested parameter '$name' not found in list [" . implode(',', array_keys(self::ALLOWED)) . ']'); + if (ArrayHelper::checkIfKeyNotExist($parameter, self::ALLOWED)) { + throw new ConfigException("Requested parameter '$parameter' not found in list [" . implode(',', array_keys(self::ALLOWED)) . ']'); } // Save value to array - unset($this->_parameters[$name]); + unset($this->_parameters[$parameter]); return $this; } @@ -202,14 +202,14 @@ class Config implements ConfigInterface * * @throws \RouterOS\Exceptions\ConfigException when parameter is not allowed */ - public function get(string $name) + public function get(string $parameter) { // Check of key in array - if (ArrayHelper::checkIfKeyNotExist($name, self::ALLOWED)) { - throw new ConfigException("Requested parameter '$name' not found in list [" . implode(',', array_keys(self::ALLOWED)) . ']'); + if (ArrayHelper::checkIfKeyNotExist($parameter, self::ALLOWED)) { + throw new ConfigException("Requested parameter '$parameter' not found in list [" . implode(',', array_keys(self::ALLOWED)) . ']'); } - return $this->getPort($name) ?? $this->_parameters[$name]; + return $this->getPort($parameter) ?? $this->_parameters[$parameter]; } /** diff --git a/src/Exceptions/BadCredentialsException.php b/src/Exceptions/BadCredentialsException.php new file mode 100644 index 0000000..1bc958b --- /dev/null +++ b/src/Exceptions/BadCredentialsException.php @@ -0,0 +1,13 @@ +socket_err_str); + throw new ConnectException('Unable to establish socket session, ' . $this->socket_err_str); } //Timeout read diff --git a/tests/ClientTest.php b/tests/ClientTest.php index 77682c3..78dbb42 100644 --- a/tests/ClientTest.php +++ b/tests/ClientTest.php @@ -10,6 +10,8 @@ use RouterOS\Exceptions\QueryException; use RouterOS\Query; use RouterOS\Config; use RouterOS\Exceptions\ClientException; +use RouterOS\Exceptions\ConnectException; +use RouterOS\Exceptions\BadCredentialsException; class ClientTest extends TestCase { @@ -109,7 +111,7 @@ class ClientTest extends TestCase public function testConstructExceptionBadHost(): void { - $this->expectException(ClientException::class); + $this->expectException(ConnectException::class); new Client([ 'host' => '127.0.0.1', @@ -159,7 +161,7 @@ class ClientTest extends TestCase public function testConstructWrongPass(): void { - $this->expectException(ClientException::class); + $this->expectException(BadCredentialsException::class); new Client([ 'user' => $this->config['user'], @@ -171,7 +173,7 @@ class ClientTest extends TestCase public function testConstructWrongNet(): void { - $this->expectException(ClientException::class); + $this->expectException(ConnectException::class); new Client([ 'user' => $this->config['user'],