You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

67 lines
1.9 KiB

<?php
namespace RouterOS\Tests;
use PHPUnit\Framework\TestCase;
use RouterOS\Client;
use RouterOS\ResponseIterator;
class ResponseIteratorTest extends TestCase
{
/**
* @var \RouterOS\Client
*/
private $client;
public function setUp(): void
{
$this->client = new Client([
'user' => getenv('ROS_USER'),
'pass' => getenv('ROS_PASS'),
'host' => getenv('ROS_HOST'),
]);
}
public function testReadWrite(): void
{
$readTrap = $this->client->query('/system/logging/print')->readAsIterator();
$this->assertNotEmpty($readTrap);
$readTrap = $this->client->query('/ip/address/print')->readAsIterator();
$this->assertCount(1, $readTrap);
$this->assertEquals('ether1', $readTrap[0]['interface']);
$readTrap = $this->client->query('/system/logging/print')->readAsIterator();
$key = $readTrap->key();
$this->assertEquals(0, $key);
$current = $readTrap->current();
$this->assertEquals('*1', $current['.id']);
$readTrap->next();
$key = $readTrap->key();
$this->assertEquals(1, $key);
$current = $readTrap->current();
$this->assertEquals('*2', $current['.id']);
$readTrap->prev();
$key = $readTrap->key();
$this->assertEquals(0, $key);
$current = $readTrap->current();
$this->assertEquals('*1', $current['.id']);
$readTrap->prev(); // Check if key is not exist
$key = $readTrap->key();
$this->assertEquals(-1, $key);
$current = $readTrap->current();
$this->assertNull($current);
}
public function testSerialize(): void
{
$read = $this->client->query('/queue/simple/print')->readAsIterator();
$serialize = $read->serialize();
$this->assertEquals('a:1:{i:0;a:1:{i:0;s:5:"!done";}}', $serialize);
}
}