1+ <?php
2+ namespace PEAR2 \Net \RouterOS ;
3+
4+ class UtilStateAlteringFeaturesTest extends \PHPUnit_Framework_TestCase
5+ {
6+ const REGEX_ID = '\*[A-F0-9]+ ' ;
7+ const REGEX_IDLIST = '/^(\*[A-F0-9]+\,)*(\*[A-F0-9]+)?$/ ' ;
8+
9+ /**
10+ * @var Util
11+ */
12+ protected $ util ;
13+ /**
14+ * @var Client
15+ */
16+ protected $ client ;
17+
18+ protected function setUp ()
19+ {
20+ $ this ->util = new Util (
21+ $ this ->client = new Client (\HOSTNAME , USERNAME , PASSWORD , PORT )
22+ );
23+ }
24+
25+ protected function tearDown ()
26+ {
27+ unset($ this ->util );
28+ unset($ this ->client );
29+ }
30+
31+ public function testAdd ()
32+ {
33+ $ printRequest = new Request ('/queue/simple/print ' );
34+ $ beforeCount = count ($ this ->client ->sendSync ($ printRequest ));
35+ $ this ->util ->changeMenu ('/queue/simple ' );
36+ $ this ->assertRegExp (
37+ '/^ ' . self ::REGEX_ID . '$/ ' ,
38+ $ id = $ this ->util ->add (array ('name ' => TEST_QUEUE_NAME ))
39+ );
40+ $ afterCount = count ($ this ->client ->sendSync ($ printRequest ));
41+ $ this ->assertSame (1 + $ beforeCount , $ afterCount );
42+
43+ $ removeRequest = new Request ('/queue/simple/remove ' );
44+ $ removeRequest ->setArgument ('numbers ' , $ id );
45+ $ this ->client ->sendSync ($ removeRequest );
46+
47+ $ postCount = count ($ this ->client ->sendSync ($ printRequest ));
48+ $ this ->assertSame ($ beforeCount , $ postCount );
49+ }
50+
51+ /**
52+ * @depends testAdd
53+ */
54+ public function testDisableAndEnable ()
55+ {
56+ $ this ->util ->changeMenu ('/queue/simple ' );
57+ $ id = $ this ->util ->add (
58+ array ('name ' => TEST_QUEUE_NAME , 'disabled ' => 'no ' )
59+ );
60+ $ printRequest = new Request (
61+ '/queue/simple/print ' ,
62+ Query::where ('.id ' , $ id )
63+ );
64+
65+ $ this ->assertSame (
66+ 'false ' ,
67+ $ this ->client ->sendSync ($ printRequest )->getArgument ('disabled ' )
68+ );
69+
70+ $ this ->util ->disable ($ id );
71+
72+ $ this ->assertSame (
73+ 'true ' ,
74+ $ this ->client ->sendSync ($ printRequest )->getArgument ('disabled ' )
75+ );
76+
77+ $ this ->util ->enable ($ id );
78+
79+ $ this ->assertSame (
80+ 'false ' ,
81+ $ this ->client ->sendSync ($ printRequest )->getArgument ('disabled ' )
82+ );
83+
84+ $ removeRequest = new Request ('/queue/simple/remove ' );
85+ $ removeRequest ->setArgument ('numbers ' , $ id );
86+ $ this ->client ->sendSync ($ removeRequest );
87+ }
88+
89+ /**
90+ * @depends testDisableAndEnable
91+ */
92+ public function testRemove ()
93+ {
94+ $ printRequest = new Request ('/queue/simple/print ' );
95+ $ beforeCount = count ($ this ->client ->sendSync ($ printRequest ));
96+ $ this ->util ->changeMenu ('/queue/simple ' );
97+ $ this ->assertRegExp (
98+ '/^ ' . self ::REGEX_ID . '$/ ' ,
99+ $ id = $ this ->util ->add (array ('name ' => TEST_QUEUE_NAME ))
100+ );
101+ $ afterCount = count ($ this ->client ->sendSync ($ printRequest ));
102+ $ this ->assertSame (1 + $ beforeCount , $ afterCount );
103+
104+ $ this ->util ->remove ($ id );
105+
106+ $ postCount = count ($ this ->client ->sendSync ($ printRequest ));
107+ $ this ->assertSame ($ beforeCount , $ postCount );
108+ }
109+
110+ /**
111+ * @depends testRemove
112+ */
113+ public function testSetAndEdit ()
114+ {
115+ $ this ->util ->changeMenu ('/queue/simple ' );
116+ $ id = $ this ->util ->add (
117+ array (
118+ 'name ' => TEST_QUEUE_NAME ,
119+ 'target-addresses ' => HOSTNAME_SILENT . '/32 '
120+ )
121+ );
122+
123+ $ printRequest = new Request (
124+ '/queue/simple/print ' ,
125+ Query::where ('.id ' , $ id )
126+ );
127+
128+ $ this ->assertSame (
129+ HOSTNAME_SILENT . '/32 ' ,
130+ $ this ->client ->sendSync (
131+ $ printRequest
132+ )->getArgument ('target-addresses ' )
133+ );
134+
135+ $ this ->util ->set (
136+ $ id ,
137+ array (
138+ 'target-addresses ' => HOSTNAME_INVALID . '/32 '
139+ )
140+ );
141+
142+ $ this ->assertSame (
143+ HOSTNAME_INVALID . '/32 ' ,
144+ $ this ->client ->sendSync (
145+ $ printRequest
146+ )->getArgument ('target-addresses ' )
147+ );
148+
149+ $ this ->util ->edit (
150+ $ id ,
151+ array (
152+ 'target-addresses ' => HOSTNAME_SILENT . '/32 '
153+ )
154+ );
155+
156+ $ this ->assertSame (
157+ HOSTNAME_SILENT . '/32 ' ,
158+ $ this ->client ->sendSync (
159+ $ printRequest
160+ )->getArgument ('target-addresses ' )
161+ );
162+
163+ $ this ->util ->remove ($ id );
164+ }
165+
166+ /**
167+ * @depends testAdd
168+ * @depends testRemove
169+ */
170+ public function testFindByNumber ()
171+ {
172+ $ this ->util ->changeMenu ('/queue/simple ' );
173+ $ itemCount = count (explode (', ' , $ this ->util ->find ()));
174+ $ id = $ this ->util ->add (
175+ array (
176+ 'name ' => TEST_QUEUE_NAME ,
177+ 'target-addresses ' => HOSTNAME_SILENT . '/32 '
178+ )
179+ );
180+ $ this ->assertSame (
181+ 1 + $ itemCount ,
182+ count (explode (', ' , $ this ->util ->find ()))
183+ );
184+ $ this ->assertSame ($ id , $ this ->util ->find ($ itemCount ));
185+ $ this ->assertSame ($ id , $ this ->util ->find ((string )$ itemCount ));
186+
187+ $ this ->util ->remove ($ id );
188+ }
189+ }
0 commit comments