Skip to content
This repository was archived by the owner on Apr 23, 2020. It is now read-only.

Commit 92f5d99

Browse files
author
Ivan Dudarev
committed
add tests
1 parent 4c1b4aa commit 92f5d99

File tree

7 files changed

+164
-2
lines changed

7 files changed

+164
-2
lines changed

tests/IptoolTest.php

Lines changed: 150 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@
1111
*/
1212
class IptoolTest extends TestCase
1313
{
14-
public function testCreateDatabase()
14+
public function testSimple()
1515
{
1616
$time = time();
1717
$author = 'Unit Test';
1818
$license = 'Test License';
1919
$tmpDir = __DIR__.DIRECTORY_SEPARATOR.'tmp';
20-
$csvDir = __DIR__.DIRECTORY_SEPARATOR.'csv';
20+
$csvDir = __DIR__.DIRECTORY_SEPARATOR.'csv'.DIRECTORY_SEPARATOR.'simple';
2121
$dbFile = __DIR__.DIRECTORY_SEPARATOR.'dat'.DIRECTORY_SEPARATOR.'iptool.test.dat';
2222
$converter = new Converter($tmpDir);
2323

@@ -98,4 +98,152 @@ public function testCreateDatabase()
9898
}
9999
}
100100
}
101+
102+
public function testJoinIntervals()
103+
{
104+
$time = time();
105+
$author = 'Unit Test';
106+
$license = 'Test License';
107+
$tmpDir = __DIR__.DIRECTORY_SEPARATOR.'tmp';
108+
$csvDir = __DIR__.DIRECTORY_SEPARATOR.'csv'.DIRECTORY_SEPARATOR.'joinIntervals';
109+
$dbFile = __DIR__.DIRECTORY_SEPARATOR.'dat'.DIRECTORY_SEPARATOR.'iptool.join.dat';
110+
$converter = new Converter($tmpDir);
111+
112+
$converter->setAuthor($author);
113+
$converter->setTime($time);
114+
$converter->setLicense($license);
115+
116+
$converter->addCSV('infoCSV',$csvDir.DIRECTORY_SEPARATOR.'info.csv',1);
117+
$converter->addCSV('networksCSV',$csvDir.DIRECTORY_SEPARATOR.'networks.csv',1);
118+
119+
$info = array(
120+
'name' => array(
121+
'type' => 'string',
122+
'column' => 1,
123+
),
124+
);
125+
$converter->addRegister('info','infoCSV',0, $info);
126+
127+
$networks = array(
128+
'info' => 2,
129+
);
130+
$converter->addNetworks('networksCSV', 'ip', 0, 1, $networks);
131+
$converter->create($dbFile);
132+
133+
$iptool = new Iptool($dbFile);
134+
$meta = $iptool->about();
135+
136+
$this->assertSame($meta['created'], $time);
137+
$this->assertSame($meta['author'], $author);
138+
$this->assertSame($meta['license'], $license);
139+
$this->assertSame($meta['networks']['count'], 2);
140+
$this->assertSame($meta['networks']['data']['info'][0], 'name');
141+
142+
$info = $iptool->find('0.0.0.1');
143+
$this->assertSame($info['network']['first'], '0.0.0.0');
144+
$this->assertSame($info['network']['last'], '63.255.255.255');
145+
$this->assertSame($info['data']['info']['name'], 'small interval');
146+
147+
$info = $iptool->find('64.0.10.0');
148+
$this->assertSame($info['network']['first'], '64.0.0.0');
149+
$this->assertSame($info['network']['last'], '255.255.255.255');
150+
$this->assertSame($info['data']['info']['name'], 'big interval');
151+
152+
unlink($dbFile);
153+
$tmpFiles = glob($tmpDir.DIRECTORY_SEPARATOR.'*');
154+
foreach ($tmpFiles as $tmpFile) {
155+
if ($tmpFile != $tmpDir.DIRECTORY_SEPARATOR.'.gitkeep') {
156+
unlink($tmpFile);
157+
}
158+
}
159+
}
160+
161+
public function testMiddleIntervals()
162+
{
163+
$time = time();
164+
$author = 'Unit Test';
165+
$license = 'Test License';
166+
$tmpDir = __DIR__.DIRECTORY_SEPARATOR.'tmp';
167+
$csvDir = __DIR__.DIRECTORY_SEPARATOR.'csv'.DIRECTORY_SEPARATOR.'middleIntervals';
168+
$dbFile = __DIR__.DIRECTORY_SEPARATOR.'dat'.DIRECTORY_SEPARATOR.'iptool.test.dat';
169+
$converter = new Converter($tmpDir);
170+
171+
$converter->setAuthor($author);
172+
$converter->setTime($time);
173+
$converter->setLicense($license);
174+
175+
$converter->addCSV('infoCSV',$csvDir.DIRECTORY_SEPARATOR.'info.csv',1);
176+
$converter->addCSV('networksCSV',$csvDir.DIRECTORY_SEPARATOR.'networks.csv',1);
177+
178+
$info = array(
179+
'name' => array(
180+
'type' => 'string',
181+
'column' => 1,
182+
),
183+
);
184+
$converter->addRegister('info','infoCSV',0, $info);
185+
186+
$networks = array(
187+
'info' => 2,
188+
);
189+
$converter->addNetworks('networksCSV', 'ip', 0, 1, $networks);
190+
$converter->create($dbFile);
191+
192+
$iptool = new Iptool($dbFile);
193+
$meta = $iptool->about();
194+
195+
$this->assertSame($meta['created'], $time);
196+
$this->assertSame($meta['author'], $author);
197+
$this->assertSame($meta['license'], $license);
198+
$this->assertSame($meta['networks']['count'], 5);
199+
$this->assertSame($meta['networks']['data']['info'][0], 'name');
200+
201+
$info = $iptool->find('0.0.0.1');
202+
$this->assertSame($info['network']['first'], '0.0.0.0');
203+
$this->assertSame($info['network']['last'], '63.255.255.255');
204+
$this->assertEmpty($info['data']['info']['name']);
205+
206+
$info = $iptool->find('64.0.10.0');
207+
$this->assertSame($info['network']['first'], '64.0.0.0');
208+
$this->assertSame($info['network']['last'], '64.255.255.255');
209+
$this->assertSame($info['data']['info']['name'], 'interval 1');
210+
211+
$info = $iptool->find('83.10.10.1');
212+
$this->assertSame($info['network']['first'], '65.0.0.0');
213+
$this->assertSame($info['network']['last'], '127.255.255.255');
214+
$this->assertEmpty($info['data']['info']['name']);
215+
216+
$info = $iptool->find('173.255.10.0');
217+
$this->assertSame($info['network']['first'], '128.0.0.0');
218+
$this->assertSame($info['network']['last'], '191.255.255.255');
219+
$this->assertSame($info['data']['info']['name'], 'interval 2');
220+
221+
$info = $iptool->find('203.255.10.5');
222+
$this->assertSame($info['network']['first'], '192.0.0.0');
223+
$this->assertSame($info['network']['last'], '255.255.255.255');
224+
$this->assertEmpty($info['data']['info']['name']);
225+
226+
/*
227+
$info = $iptool->find('128.100.0.13');
228+
$this->assertSame($info['network']['first'], '128.0.0.0');
229+
$this->assertSame($info['network']['last'], '191.255.255.255');
230+
$this->assertSame($info['data']['info']['interval'], 3);
231+
$this->assertSame($info['data']['info']['caption'], 'some info 1');
232+
$this->assertSame($info['data']['info']['extendedInfo'], 'some info 2');
233+
/*
234+
$info = $iptool->find('202.100.0.13');
235+
$this->assertSame($info['network']['first'], '192.0.0.0');
236+
$this->assertSame($info['network']['last'], '255.255.255.255');
237+
$this->assertSame($info['data']['info']['interval'], 4);
238+
$this->assertSame($info['data']['info']['caption'], 'some info 3');
239+
$this->assertSame($info['data']['info']['extendedInfo'], 'some info 4');
240+
*/
241+
unlink($dbFile);
242+
$tmpFiles = glob($tmpDir.DIRECTORY_SEPARATOR.'*');
243+
foreach ($tmpFiles as $tmpFile) {
244+
if ($tmpFile != $tmpDir.DIRECTORY_SEPARATOR.'.gitkeep') {
245+
unlink($tmpFile);
246+
}
247+
}
248+
}
101249
}

tests/csv/joinIntervals/info.csv

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
id,name
2+
1,"small interval"
3+
2,"big interval"

tests/csv/joinIntervals/networks.csv

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
first_ip,last_ip,register_id
2+
"0.0.0.0","63.255.255.255",1
3+
"64.0.0.0","127.255.255.255",2
4+
"128.0.0.0","191.255.255.255",2
5+
"192.0.0.0","255.255.255.255",2

tests/csv/middleIntervals/info.csv

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
id,name
2+
1,"interval 1"
3+
2,"interval 2"
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
first_ip,last_ip,register_id
2+
"64.0.0.0","64.255.255.255",1
3+
"128.0.0.0","191.255.255.255",2
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)