@@ -178,5 +178,347 @@ public void WireCryptMixedCase()
178178 var cs = new FbConnectionString ( ConnectionString ) ;
179179 Assert . AreEqual ( FbWireCrypt . Required , cs . WireCrypt ) ;
180180 }
181+
182+ [ Test ]
183+ public void ParsingDatabaseNewStyleHostnameWithoutPortWithoutPath ( )
184+ {
185+ const string ConnectionString = "database=//hostname/test.fdb" ;
186+ var cs = new FbConnectionString ( ConnectionString ) ;
187+ Assert . AreEqual ( "hostname" , cs . DataSource ) ;
188+ Assert . AreEqual ( "test.fdb" , cs . Database ) ;
189+ }
190+
191+ [ Test ]
192+ public void ParsingDatabaseNewStyleHostnameWithoutPortRootPath ( )
193+ {
194+ const string ConnectionString = "database=//hostname//test.fdb" ;
195+ var cs = new FbConnectionString ( ConnectionString ) ;
196+ Assert . AreEqual ( "hostname" , cs . DataSource ) ;
197+ Assert . AreEqual ( "/test.fdb" , cs . Database ) ;
198+ }
199+
200+ [ Test ]
201+ public void ParsingDatabaseNewStyleHostnameWithoutPortDrivePath ( )
202+ {
203+ const string ConnectionString = "database=//hostname/C:\\ test.fdb" ;
204+ var cs = new FbConnectionString ( ConnectionString ) ;
205+ Assert . AreEqual ( "hostname" , cs . DataSource ) ;
206+ Assert . AreEqual ( "C:\\ test.fdb" , cs . Database ) ;
207+ }
208+
209+ [ Test ]
210+ public void ParsingDatabaseNewStyleIP4WithoutPortWithoutPath ( )
211+ {
212+ const string ConnectionString = "database=//127.0.0.1/test.fdb" ;
213+ var cs = new FbConnectionString ( ConnectionString ) ;
214+ Assert . AreEqual ( "127.0.0.1" , cs . DataSource ) ;
215+ Assert . AreEqual ( "test.fdb" , cs . Database ) ;
216+ }
217+
218+ [ Test ]
219+ public void ParsingDatabaseNewStyleIP4WithoutPortRootPath ( )
220+ {
221+ const string ConnectionString = "database=//127.0.0.1//test.fdb" ;
222+ var cs = new FbConnectionString ( ConnectionString ) ;
223+ Assert . AreEqual ( "127.0.0.1" , cs . DataSource ) ;
224+ Assert . AreEqual ( "/test.fdb" , cs . Database ) ;
225+ }
226+
227+ [ Test ]
228+ public void ParsingDatabaseNewStyleIP4WithoutPortDrivePath ( )
229+ {
230+ const string ConnectionString = "database=//127.0.0.1/C:\\ test.fdb" ;
231+ var cs = new FbConnectionString ( ConnectionString ) ;
232+ Assert . AreEqual ( "127.0.0.1" , cs . DataSource ) ;
233+ Assert . AreEqual ( "C:\\ test.fdb" , cs . Database ) ;
234+ }
235+
236+ [ Test ]
237+ public void ParsingDatabaseNewStyleIP6WithoutPortWithoutPath ( )
238+ {
239+ const string ConnectionString = "database=//::1/test.fdb" ;
240+ var cs = new FbConnectionString ( ConnectionString ) ;
241+ Assert . AreEqual ( "::1" , cs . DataSource ) ;
242+ Assert . AreEqual ( "test.fdb" , cs . Database ) ;
243+ }
244+
245+ [ Test ]
246+ public void ParsingDatabaseNewStyleIP6WithoutPortRootPath ( )
247+ {
248+ const string ConnectionString = "database=//::1//test.fdb" ;
249+ var cs = new FbConnectionString ( ConnectionString ) ;
250+ Assert . AreEqual ( "::1" , cs . DataSource ) ;
251+ Assert . AreEqual ( "/test.fdb" , cs . Database ) ;
252+ }
253+
254+ [ Test ]
255+ public void ParsingDatabaseNewStyleIP6WithoutPortDrivePath ( )
256+ {
257+ const string ConnectionString = "database=//::1/C:\\ test.fdb" ;
258+ var cs = new FbConnectionString ( ConnectionString ) ;
259+ Assert . AreEqual ( "::1" , cs . DataSource ) ;
260+ Assert . AreEqual ( "C:\\ test.fdb" , cs . Database ) ;
261+ }
262+
263+ [ Test ]
264+ public void ParsingDatabaseOldStyleHostnameWithoutPortWithoutPath ( )
265+ {
266+ const string ConnectionString = "database=hostname:test.fdb" ;
267+ var cs = new FbConnectionString ( ConnectionString ) ;
268+ Assert . AreEqual ( "hostname" , cs . DataSource ) ;
269+ Assert . AreEqual ( "test.fdb" , cs . Database ) ;
270+ }
271+
272+ [ Test ]
273+ public void ParsingDatabaseOldStyleHostnameWithoutPortRootPath ( )
274+ {
275+ const string ConnectionString = "database=hostname:/test.fdb" ;
276+ var cs = new FbConnectionString ( ConnectionString ) ;
277+ Assert . AreEqual ( "hostname" , cs . DataSource ) ;
278+ Assert . AreEqual ( "/test.fdb" , cs . Database ) ;
279+ }
280+
281+ [ Test ]
282+ public void ParsingDatabaseOldStyleHostnameWithoutPortDrivePath ( )
283+ {
284+ const string ConnectionString = "database=hostname:C:\\ test.fdb" ;
285+ var cs = new FbConnectionString ( ConnectionString ) ;
286+ Assert . AreEqual ( "hostname" , cs . DataSource ) ;
287+ Assert . AreEqual ( "C:\\ test.fdb" , cs . Database ) ;
288+ }
289+
290+ [ Test ]
291+ public void ParsingDatabaseOldStyleIP4WithoutPortWithoutPath ( )
292+ {
293+ const string ConnectionString = "database=127.0.0.1:test.fdb" ;
294+ var cs = new FbConnectionString ( ConnectionString ) ;
295+ Assert . AreEqual ( "127.0.0.1" , cs . DataSource ) ;
296+ Assert . AreEqual ( "test.fdb" , cs . Database ) ;
297+ }
298+
299+ [ Test ]
300+ public void ParsingDatabaseOldStyleIP4WithoutPortRootPath ( )
301+ {
302+ const string ConnectionString = "database=127.0.0.1:/test.fdb" ;
303+ var cs = new FbConnectionString ( ConnectionString ) ;
304+ Assert . AreEqual ( "127.0.0.1" , cs . DataSource ) ;
305+ Assert . AreEqual ( "/test.fdb" , cs . Database ) ;
306+ }
307+
308+ [ Test ]
309+ public void ParsingDatabaseOldStyleIP4WithoutPortDrivePath ( )
310+ {
311+ const string ConnectionString = "database=127.0.0.1:C:\\ test.fdb" ;
312+ var cs = new FbConnectionString ( ConnectionString ) ;
313+ Assert . AreEqual ( "127.0.0.1" , cs . DataSource ) ;
314+ Assert . AreEqual ( "C:\\ test.fdb" , cs . Database ) ;
315+ }
316+
317+ [ Test ]
318+ public void ParsingDatabaseOldStyleIP6WithoutPortWithoutPath ( )
319+ {
320+ const string ConnectionString = "database=::1:test.fdb" ;
321+ var cs = new FbConnectionString ( ConnectionString ) ;
322+ Assert . AreEqual ( "::1" , cs . DataSource ) ;
323+ Assert . AreEqual ( "test.fdb" , cs . Database ) ;
324+ }
325+
326+ [ Test ]
327+ public void ParsingDatabaseOldStyleIP6WithoutPortRootPath ( )
328+ {
329+ const string ConnectionString = "database=::1:/test.fdb" ;
330+ var cs = new FbConnectionString ( ConnectionString ) ;
331+ Assert . AreEqual ( "::1" , cs . DataSource ) ;
332+ Assert . AreEqual ( "/test.fdb" , cs . Database ) ;
333+ }
334+
335+ [ Test ]
336+ public void ParsingDatabaseOldStyleIP6WithoutPortDrivePath ( )
337+ {
338+ const string ConnectionString = "database=::1:C:\\ test.fdb" ;
339+ var cs = new FbConnectionString ( ConnectionString ) ;
340+ Assert . AreEqual ( "::1" , cs . DataSource ) ;
341+ Assert . AreEqual ( "C:\\ test.fdb" , cs . Database ) ;
342+ }
343+
344+ [ Test ]
345+ public void ParsingDatabaseNewStyleHostnameWithPortWithoutPath ( )
346+ {
347+ const string ConnectionString = "database=//hostname:6666/test.fdb" ;
348+ var cs = new ConnectionString ( ConnectionString ) ;
349+ Assert . AreEqual ( "hostname" , cs . DataSource ) ;
350+ Assert . AreEqual ( "test.fdb" , cs . Database ) ;
351+ Assert . AreEqual ( 6666 , cs . Port ) ;
352+ }
353+
354+ [ Test ]
355+ public void ParsingDatabaseNewStyleHostnameWithPortRootPath ( )
356+ {
357+ const string ConnectionString = "database=//hostname:6666//test.fdb" ;
358+ var cs = new ConnectionString ( ConnectionString ) ;
359+ Assert . AreEqual ( "hostname" , cs . DataSource ) ;
360+ Assert . AreEqual ( "/test.fdb" , cs . Database ) ;
361+ Assert . AreEqual ( 6666 , cs . Port ) ;
362+ }
363+
364+ [ Test ]
365+ public void ParsingDatabaseNewStyleHostnameWithPortDrivePath ( )
366+ {
367+ const string ConnectionString = "database=//hostname:6666/C:\\ test.fdb" ;
368+ var cs = new ConnectionString ( ConnectionString ) ;
369+ Assert . AreEqual ( "hostname" , cs . DataSource ) ;
370+ Assert . AreEqual ( "C:\\ test.fdb" , cs . Database ) ;
371+ Assert . AreEqual ( 6666 , cs . Port ) ;
372+ }
373+
374+ [ Test ]
375+ public void ParsingDatabaseNewStyleIP4WithPortWithoutPath ( )
376+ {
377+ const string ConnectionString = "database=//127.0.0.1:6666/test.fdb" ;
378+ var cs = new ConnectionString ( ConnectionString ) ;
379+ Assert . AreEqual ( "127.0.0.1" , cs . DataSource ) ;
380+ Assert . AreEqual ( "test.fdb" , cs . Database ) ;
381+ Assert . AreEqual ( 6666 , cs . Port ) ;
382+ }
383+
384+ [ Test ]
385+ public void ParsingDatabaseNewStyleIP4WithPortRootPath ( )
386+ {
387+ const string ConnectionString = "database=//127.0.0.1:6666//test.fdb" ;
388+ var cs = new ConnectionString ( ConnectionString ) ;
389+ Assert . AreEqual ( "127.0.0.1" , cs . DataSource ) ;
390+ Assert . AreEqual ( "/test.fdb" , cs . Database ) ;
391+ Assert . AreEqual ( 6666 , cs . Port ) ;
392+ }
393+
394+ [ Test ]
395+ public void ParsingDatabaseNewStyleIP4WithPortDrivePath ( )
396+ {
397+ const string ConnectionString = "database=//127.0.0.1:6666/C:\\ test.fdb" ;
398+ var cs = new ConnectionString ( ConnectionString ) ;
399+ Assert . AreEqual ( "127.0.0.1" , cs . DataSource ) ;
400+ Assert . AreEqual ( "C:\\ test.fdb" , cs . Database ) ;
401+ Assert . AreEqual ( 6666 , cs . Port ) ;
402+ }
403+
404+ [ Test ]
405+ public void ParsingDatabaseNewStyleIP6WithPortWithoutPath ( )
406+ {
407+ const string ConnectionString = "database=//[::1]:6666/test.fdb" ;
408+ var cs = new ConnectionString ( ConnectionString ) ;
409+ Assert . AreEqual ( "::1" , cs . DataSource ) ;
410+ Assert . AreEqual ( "test.fdb" , cs . Database ) ;
411+ Assert . AreEqual ( 6666 , cs . Port ) ;
412+ }
413+
414+ [ Test ]
415+ public void ParsingDatabaseNewStyleIP6WithPortRootPath ( )
416+ {
417+ const string ConnectionString = "database=//[::1]:6666//test.fdb" ;
418+ var cs = new ConnectionString ( ConnectionString ) ;
419+ Assert . AreEqual ( "::1" , cs . DataSource ) ;
420+ Assert . AreEqual ( "/test.fdb" , cs . Database ) ;
421+ Assert . AreEqual ( 6666 , cs . Port ) ;
422+ }
423+
424+ [ Test ]
425+ public void ParsingDatabaseNewStyleIP6WithPortDrivePath ( )
426+ {
427+ const string ConnectionString = "database=//[::1]:6666/C:\\ test.fdb" ;
428+ var cs = new ConnectionString ( ConnectionString ) ;
429+ Assert . AreEqual ( "::1" , cs . DataSource ) ;
430+ Assert . AreEqual ( "C:\\ test.fdb" , cs . Database ) ;
431+ Assert . AreEqual ( 6666 , cs . Port ) ;
432+ }
433+
434+ [ Test ]
435+ public void ParsingDatabaseOldStyleHostnameWithPortWithoutPath ( )
436+ {
437+ const string ConnectionString = "database=hostname/6666:test.fdb" ;
438+ var cs = new ConnectionString ( ConnectionString ) ;
439+ Assert . AreEqual ( "hostname" , cs . DataSource ) ;
440+ Assert . AreEqual ( "test.fdb" , cs . Database ) ;
441+ Assert . AreEqual ( 6666 , cs . Port ) ;
442+ }
443+
444+ [ Test ]
445+ public void ParsingDatabaseOldStyleHostnameWithPortRootPath ( )
446+ {
447+ const string ConnectionString = "database=hostname/6666:/test.fdb" ;
448+ var cs = new ConnectionString ( ConnectionString ) ;
449+ Assert . AreEqual ( "hostname" , cs . DataSource ) ;
450+ Assert . AreEqual ( "/test.fdb" , cs . Database ) ;
451+ Assert . AreEqual ( 6666 , cs . Port ) ;
452+ }
453+
454+ [ Test ]
455+ public void ParsingDatabaseOldStyleHostnameWithPortDrivePath ( )
456+ {
457+ const string ConnectionString = "database=hostname/6666:C:\\ test.fdb" ;
458+ var cs = new ConnectionString ( ConnectionString ) ;
459+ Assert . AreEqual ( "hostname" , cs . DataSource ) ;
460+ Assert . AreEqual ( "C:\\ test.fdb" , cs . Database ) ;
461+ Assert . AreEqual ( 6666 , cs . Port ) ;
462+ }
463+
464+ [ Test ]
465+ public void ParsingDatabaseOldStyleIP4WithPortWithoutPath ( )
466+ {
467+ const string ConnectionString = "database=127.0.0.1/6666:test.fdb" ;
468+ var cs = new ConnectionString ( ConnectionString ) ;
469+ Assert . AreEqual ( "127.0.0.1" , cs . DataSource ) ;
470+ Assert . AreEqual ( "test.fdb" , cs . Database ) ;
471+ Assert . AreEqual ( 6666 , cs . Port ) ;
472+ }
473+
474+ [ Test ]
475+ public void ParsingDatabaseOldStyleIP4WithPortRootPath ( )
476+ {
477+ const string ConnectionString = "database=127.0.0.1/6666:/test.fdb" ;
478+ var cs = new ConnectionString ( ConnectionString ) ;
479+ Assert . AreEqual ( "127.0.0.1" , cs . DataSource ) ;
480+ Assert . AreEqual ( "/test.fdb" , cs . Database ) ;
481+ Assert . AreEqual ( 6666 , cs . Port ) ;
482+ }
483+
484+ [ Test ]
485+ public void ParsingDatabaseOldStyleIP4WithPortDrivePath ( )
486+ {
487+ const string ConnectionString = "database=127.0.0.1/6666:C:\\ test.fdb" ;
488+ var cs = new ConnectionString ( ConnectionString ) ;
489+ Assert . AreEqual ( "127.0.0.1" , cs . DataSource ) ;
490+ Assert . AreEqual ( "C:\\ test.fdb" , cs . Database ) ;
491+ Assert . AreEqual ( 6666 , cs . Port ) ;
492+ }
493+
494+ [ Test ]
495+ public void ParsingDatabaseOldStyleIP6WithPortWithoutPath ( )
496+ {
497+ const string ConnectionString = "database=::1/6666:test.fdb" ;
498+ var cs = new ConnectionString ( ConnectionString ) ;
499+ Assert . AreEqual ( "::1" , cs . DataSource ) ;
500+ Assert . AreEqual ( "test.fdb" , cs . Database ) ;
501+ Assert . AreEqual ( 6666 , cs . Port ) ;
502+ }
503+
504+ [ Test ]
505+ public void ParsingDatabaseOldStyleIP6WithPortRootPath ( )
506+ {
507+ const string ConnectionString = "database=::1/6666:/test.fdb" ;
508+ var cs = new ConnectionString ( ConnectionString ) ;
509+ Assert . AreEqual ( "::1" , cs . DataSource ) ;
510+ Assert . AreEqual ( "/test.fdb" , cs . Database ) ;
511+ Assert . AreEqual ( 6666 , cs . Port ) ;
512+ }
513+
514+ [ Test ]
515+ public void ParsingDatabaseOldStyleIP6WithPortDrivePath ( )
516+ {
517+ const string ConnectionString = "database=::1/6666:C:\\ test.fdb" ;
518+ var cs = new ConnectionString ( ConnectionString ) ;
519+ Assert . AreEqual ( "::1" , cs . DataSource ) ;
520+ Assert . AreEqual ( "C:\\ test.fdb" , cs . Database ) ;
521+ Assert . AreEqual ( 6666 , cs . Port ) ;
522+ }
181523 }
182524}
0 commit comments