11
11
*/
12
12
class IptoolTest extends TestCase
13
13
{
14
- public function testCreateDatabase ()
14
+ public function testSimple ()
15
15
{
16
16
$ time = time ();
17
17
$ author = 'Unit Test ' ;
18
18
$ license = 'Test License ' ;
19
19
$ tmpDir = __DIR__ .DIRECTORY_SEPARATOR .'tmp ' ;
20
- $ csvDir = __DIR__ .DIRECTORY_SEPARATOR .'csv ' ;
20
+ $ csvDir = __DIR__ .DIRECTORY_SEPARATOR .'csv ' . DIRECTORY_SEPARATOR . ' simple ' ;
21
21
$ dbFile = __DIR__ .DIRECTORY_SEPARATOR .'dat ' .DIRECTORY_SEPARATOR .'iptool.test.dat ' ;
22
22
$ converter = new Converter ($ tmpDir );
23
23
@@ -98,4 +98,152 @@ public function testCreateDatabase()
98
98
}
99
99
}
100
100
}
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
+ }
101
249
}
0 commit comments