Skip to content

Commit abaa3ee

Browse files
committed
Add support for SqlClient 5.2-specific options.
1 parent 23a4c80 commit abaa3ee

3 files changed

Lines changed: 31 additions & 9 deletions

File tree

PSql.Tests/Tests.Unit/AzureSqlContextTests.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -386,7 +386,7 @@ public void GetConnectionString_ExplicitDatabase_Property()
386386
new { FullyQualifiedDomainName = "foo.example.com" }
387387
);
388388

389-
context.GetConnectionString(databaseName: null, Mds5).ShouldBe(
389+
context.GetConnectionString(databaseName: null, Latest).ShouldBe(
390390
@"Data Source=foo.example.com;Initial Catalog=bar;" +
391391
@"Authentication=""Active Directory Integrated"";Encrypt=true;Pooling=false"
392392
);
@@ -406,7 +406,7 @@ public void GetConnectionString_ExplicitDatabase_Parameter()
406406
new { FullyQualifiedDomainName = "foo.example.com" }
407407
);
408408

409-
context.GetConnectionString(databaseName: "quux", Mds5).ShouldBe(
409+
context.GetConnectionString(databaseName: "quux", Latest).ShouldBe(
410410
@"Data Source=foo.example.com;Initial Catalog=quux;" +
411411
@"Authentication=""Active Directory Integrated"";Encrypt=true;Pooling=false"
412412
);
@@ -432,7 +432,7 @@ public void GetConnectionString_NoCredential(AzureAuthenticationMode mode, strin
432432
new { FullyQualifiedDomainName = "foo.example.com" }
433433
);
434434

435-
context.GetConnectionString(databaseName: null, Mds5).ShouldBe(
435+
context.GetConnectionString(databaseName: null, Latest).ShouldBe(
436436
$@"Data Source=foo.example.com;Initial Catalog=master;{
437437
fragment}Encrypt=true;Pooling=false"
438438
);
@@ -483,7 +483,7 @@ public void GetConnectionString_NoCredential_Required(AzureAuthenticationMode mo
483483
);
484484

485485
Should.Throw<NotSupportedException>(
486-
() => context.GetConnectionString(databaseName: null, Mds5)
486+
() => context.GetConnectionString(databaseName: null, Latest)
487487
);
488488
}
489489

@@ -511,7 +511,7 @@ public void GetConnectionString_ExplicitCredential(AzureAuthenticationMode mode,
511511
new { FullyQualifiedDomainName = "foo.example.com" }
512512
);
513513

514-
context.GetConnectionString(databaseName: null, Mds5).ShouldBe(
514+
context.GetConnectionString(databaseName: null, Latest).ShouldBe(
515515
$@"Data Source=foo.example.com;Initial Catalog=master;{
516516
fragment}Encrypt=true;Pooling=false"
517517
);
@@ -531,7 +531,7 @@ public void GetConnectionString_ExplicitCredential_Omit()
531531
new { FullyQualifiedDomainName = "foo.example.com" }
532532
);
533533

534-
context.GetConnectionString(databaseName: null, Mds5, omitCredential: true).ShouldBe(
534+
context.GetConnectionString(databaseName: null, Latest, omitCredential: true).ShouldBe(
535535
@"Data Source=foo.example.com;Initial Catalog=master;" +
536536
@"Encrypt=true;Pooling=false"
537537
);
@@ -554,7 +554,7 @@ public void GetConnectionString_ExplicitCredential_Expose()
554554

555555
// NOTE: Ignored because ExposeCredentialInConnectionString takes precedence
556556
// vvvvvvvvvvvvvvvvvvvv
557-
context.GetConnectionString(databaseName: null, Mds5, omitCredential: true).ShouldBe(
557+
context.GetConnectionString(databaseName: null, Latest, omitCredential: true).ShouldBe(
558558
@"Data Source=foo.example.com;Initial Catalog=master;" +
559559
@"User ID=user;Password=pass;Persist Security Info=true;Encrypt=true;Pooling=false"
560560
);

PSql.Tests/Tests.Unit/SqlContextTests.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -367,6 +367,7 @@ public void GetEffectiveServerName(string? serverName, string expected)
367367
[TestCase(Mds3, "Data Source=.;Integrated Security=true;Trust Server Certificate=true;Pooling=false")]
368368
[TestCase(Mds4, "Data Source=.;Integrated Security=true;Encrypt=false;Trust Server Certificate=true;Pooling=false")]
369369
[TestCase(Mds5, "Data Source=.;Integrated Security=true;Encrypt=false;Trust Server Certificate=true;Pooling=false")]
370+
[TestCase(Mds5_2, "Data Source=.;Integrated Security=true;Encrypt=false;Trust Server Certificate=true;Pooling=false")]
370371
public void GetConnectionString_Default(SqlClientVersion version, string expected)
371372
{
372373
var context = new SqlContext();
@@ -383,6 +384,7 @@ public void GetConnectionString_Default(SqlClientVersion version, string expecte
383384
[TestCase(Mds3, "Data Source=s;Integrated Security=true;Encrypt=true;Pooling=false")]
384385
[TestCase(Mds4, "Data Source=s;Integrated Security=true;Pooling=false")]
385386
[TestCase(Mds5, "Data Source=s;Integrated Security=true;Pooling=false")]
387+
[TestCase(Mds5_2, "Data Source=s;Integrated Security=true;Pooling=false")]
386388
public void GetConnectionString_ExplicitServerName(SqlClientVersion version, string expected)
387389
{
388390
var context = new SqlContext { ServerName = "s" };
@@ -399,6 +401,7 @@ public void GetConnectionString_ExplicitServerName(SqlClientVersion version, str
399401
[TestCase(Mds3, @"Data Source=.\I;Integrated Security=true;Trust Server Certificate=true;Pooling=false")]
400402
[TestCase(Mds4, @"Data Source=.\I;Integrated Security=true;Encrypt=false;Trust Server Certificate=true;Pooling=false")]
401403
[TestCase(Mds5, @"Data Source=.\I;Integrated Security=true;Encrypt=false;Trust Server Certificate=true;Pooling=false")]
404+
[TestCase(Mds5_2, @"Data Source=.\I;Integrated Security=true;Encrypt=false;Trust Server Certificate=true;Pooling=false")]
402405
public void GetConnectionString_ExplicitInstanceName(SqlClientVersion version, string expected)
403406
{
404407
var context = new SqlContext { InstanceName = "I" };
@@ -415,6 +418,7 @@ public void GetConnectionString_ExplicitInstanceName(SqlClientVersion version, s
415418
[TestCase(Mds3, "Data Source=.,3341;Integrated Security=true;Trust Server Certificate=true;Pooling=false")]
416419
[TestCase(Mds4, "Data Source=.,3341;Integrated Security=true;Encrypt=false;Trust Server Certificate=true;Pooling=false")]
417420
[TestCase(Mds5, "Data Source=.,3341;Integrated Security=true;Encrypt=false;Trust Server Certificate=true;Pooling=false")]
421+
[TestCase(Mds5_2, "Data Source=.,3341;Integrated Security=true;Encrypt=false;Trust Server Certificate=true;Pooling=false")]
418422
public void GetConnectionString_ExplicitServerPort(SqlClientVersion version, string expected)
419423
{
420424
var context = new SqlContext { ServerPort = 3341 };
@@ -431,6 +435,7 @@ public void GetConnectionString_ExplicitServerPort(SqlClientVersion version, str
431435
[TestCase(Mds3, "Data Source=.;Initial Catalog=d;Integrated Security=true;Trust Server Certificate=true;Pooling=false")]
432436
[TestCase(Mds4, "Data Source=.;Initial Catalog=d;Integrated Security=true;Encrypt=false;Trust Server Certificate=true;Pooling=false")]
433437
[TestCase(Mds5, "Data Source=.;Initial Catalog=d;Integrated Security=true;Encrypt=false;Trust Server Certificate=true;Pooling=false")]
438+
[TestCase(Mds5_2, "Data Source=.;Initial Catalog=d;Integrated Security=true;Encrypt=false;Trust Server Certificate=true;Pooling=false")]
434439
public void GetConnectionString_ExplicitDatabaseName(SqlClientVersion version, string expected)
435440
{
436441
var context = new SqlContext { DatabaseName = "d" };
@@ -447,6 +452,7 @@ public void GetConnectionString_ExplicitDatabaseName(SqlClientVersion version, s
447452
[TestCase(Mds3, "Data Source=.;User ID=u;Password=p;Trust Server Certificate=true;Pooling=false")]
448453
[TestCase(Mds4, "Data Source=.;User ID=u;Password=p;Encrypt=false;Trust Server Certificate=true;Pooling=false")]
449454
[TestCase(Mds5, "Data Source=.;User ID=u;Password=p;Encrypt=false;Trust Server Certificate=true;Pooling=false")]
455+
[TestCase(Mds5_2, "Data Source=.;User ID=u;Password=p;Encrypt=false;Trust Server Certificate=true;Pooling=false")]
450456
public void GetConnectionString_ExplicitCredential(SqlClientVersion version, string expected)
451457
{
452458
var context = new SqlContext { Credential = new("u", "p".Secure()) };
@@ -463,6 +469,7 @@ public void GetConnectionString_ExplicitCredential(SqlClientVersion version, str
463469
[TestCase(Mds3, "Data Source=.;Trust Server Certificate=true;Pooling=false")]
464470
[TestCase(Mds4, "Data Source=.;Encrypt=false;Trust Server Certificate=true;Pooling=false")]
465471
[TestCase(Mds5, "Data Source=.;Encrypt=false;Trust Server Certificate=true;Pooling=false")]
472+
[TestCase(Mds5_2, "Data Source=.;Encrypt=false;Trust Server Certificate=true;Pooling=false")]
466473
public void GetConnectionString_ExplicitCredential_Omit(SqlClientVersion version, string expected)
467474
{
468475
var context = new SqlContext { Credential = new("u", "p".Secure()) };
@@ -479,6 +486,7 @@ public void GetConnectionString_ExplicitCredential_Omit(SqlClientVersion version
479486
[TestCase(Mds3, "Data Source=.;User ID=u;Password=p;Persist Security Info=true;Trust Server Certificate=true;Pooling=false")]
480487
[TestCase(Mds4, "Data Source=.;User ID=u;Password=p;Persist Security Info=true;Encrypt=false;Trust Server Certificate=true;Pooling=false")]
481488
[TestCase(Mds5, "Data Source=.;User ID=u;Password=p;Persist Security Info=true;Encrypt=false;Trust Server Certificate=true;Pooling=false")]
489+
[TestCase(Mds5_2, "Data Source=.;User ID=u;Password=p;Persist Security Info=true;Encrypt=false;Trust Server Certificate=true;Pooling=false")]
482490
public void GetConnectionString_ExplicitCredential_Expose(SqlClientVersion version, string expected)
483491
{
484492
var context = new SqlContext
@@ -501,6 +509,7 @@ public void GetConnectionString_ExplicitCredential_Expose(SqlClientVersion versi
501509
[TestCase(Mds3, None, "Data Source=.;Integrated Security=true;Trust Server Certificate=true;Pooling=false")]
502510
[TestCase(Mds4, None, "Data Source=.;Integrated Security=true;Encrypt=false;Trust Server Certificate=true;Pooling=false")]
503511
[TestCase(Mds5, None, "Data Source=.;Integrated Security=true;Encrypt=false;Trust Server Certificate=true;Pooling=false")]
512+
[TestCase(Mds5_2, None, "Data Source=.;Integrated Security=true;Encrypt=false;Trust Server Certificate=true;Pooling=false")]
504513
[TestCase(Legacy, Unverified, "Data Source=.;Integrated Security=true;Encrypt=true;TrustServerCertificate=true;Pooling=false")]
505514
[TestCase(Mds1, Unverified, "Data Source=.;Integrated Security=true;Encrypt=true;TrustServerCertificate=true;Pooling=false")]
506515
[TestCase(Mds1_1, Unverified, "Data Source=.;Integrated Security=true;Encrypt=true;TrustServerCertificate=true;Pooling=false")]
@@ -509,6 +518,7 @@ public void GetConnectionString_ExplicitCredential_Expose(SqlClientVersion versi
509518
[TestCase(Mds3, Unverified, "Data Source=.;Integrated Security=true;Encrypt=true;Trust Server Certificate=true;Pooling=false")]
510519
[TestCase(Mds4, Unverified, "Data Source=.;Integrated Security=true;Trust Server Certificate=true;Pooling=false")]
511520
[TestCase(Mds5, Unverified, "Data Source=.;Integrated Security=true;Trust Server Certificate=true;Pooling=false")]
521+
[TestCase(Mds5_2, Unverified, "Data Source=.;Integrated Security=true;Trust Server Certificate=true;Pooling=false")]
512522
[TestCase(Legacy, Full, "Data Source=.;Integrated Security=true;Encrypt=true;Pooling=false")]
513523
[TestCase(Mds1, Full, "Data Source=.;Integrated Security=true;Encrypt=true;Pooling=false")]
514524
[TestCase(Mds1_1, Full, "Data Source=.;Integrated Security=true;Encrypt=true;Pooling=false")]
@@ -517,6 +527,7 @@ public void GetConnectionString_ExplicitCredential_Expose(SqlClientVersion versi
517527
[TestCase(Mds3, Full, "Data Source=.;Integrated Security=true;Encrypt=true;Pooling=false")]
518528
[TestCase(Mds4, Full, "Data Source=.;Integrated Security=true;Pooling=false")]
519529
[TestCase(Mds5, Full, "Data Source=.;Integrated Security=true;Pooling=false")]
530+
[TestCase(Mds5_2, Full, "Data Source=.;Integrated Security=true;Pooling=false")]
520531
public void GetConnectionString_ExplicitEncryptionMode(SqlClientVersion version, EncryptionMode mode, string expected)
521532
{
522533
var context = new SqlContext { EncryptionMode = mode };
@@ -533,6 +544,7 @@ public void GetConnectionString_ExplicitEncryptionMode(SqlClientVersion version,
533544
[TestCase(Mds3, "Data Source=.;Integrated Security=true;Trust Server Certificate=true;Connect Timeout=3;Pooling=false")]
534545
[TestCase(Mds4, "Data Source=.;Integrated Security=true;Encrypt=false;Trust Server Certificate=true;Connect Timeout=3;Pooling=false")]
535546
[TestCase(Mds5, "Data Source=.;Integrated Security=true;Encrypt=false;Trust Server Certificate=true;Connect Timeout=3;Pooling=false")]
547+
[TestCase(Mds5_2, "Data Source=.;Integrated Security=true;Encrypt=false;Trust Server Certificate=true;Connect Timeout=3;Pooling=false")]
536548
public void GetConnectionString_ExplicitConnectTimeout(SqlClientVersion version, string expected)
537549
{
538550
var context = new SqlContext { ConnectTimeout = 3.Seconds() };
@@ -549,6 +561,7 @@ public void GetConnectionString_ExplicitConnectTimeout(SqlClientVersion version,
549561
[TestCase(Mds3, "Data Source=.;Integrated Security=true;Trust Server Certificate=true;Workstation ID=c;Pooling=false")]
550562
[TestCase(Mds4, "Data Source=.;Integrated Security=true;Encrypt=false;Trust Server Certificate=true;Workstation ID=c;Pooling=false")]
551563
[TestCase(Mds5, "Data Source=.;Integrated Security=true;Encrypt=false;Trust Server Certificate=true;Workstation ID=c;Pooling=false")]
564+
[TestCase(Mds5_2, "Data Source=.;Integrated Security=true;Encrypt=false;Trust Server Certificate=true;Workstation ID=c;Pooling=false")]
552565
public void GetConnectionString_ExplicitClientName(SqlClientVersion version, string expected)
553566
{
554567
var context = new SqlContext { ClientName = "c" };
@@ -565,6 +578,7 @@ public void GetConnectionString_ExplicitClientName(SqlClientVersion version, str
565578
[TestCase(Mds3, "Data Source=.;Integrated Security=true;Trust Server Certificate=true;Application Name=c;Pooling=false")]
566579
[TestCase(Mds4, "Data Source=.;Integrated Security=true;Encrypt=false;Trust Server Certificate=true;Application Name=c;Pooling=false")]
567580
[TestCase(Mds5, "Data Source=.;Integrated Security=true;Encrypt=false;Trust Server Certificate=true;Application Name=c;Pooling=false")]
581+
[TestCase(Mds5_2, "Data Source=.;Integrated Security=true;Encrypt=false;Trust Server Certificate=true;Application Name=c;Pooling=false")]
568582
public void GetConnectionString_ExplicitApplicationName(SqlClientVersion version, string expected)
569583
{
570584
var context = new SqlContext { ApplicationName = "c" };
@@ -581,6 +595,7 @@ public void GetConnectionString_ExplicitApplicationName(SqlClientVersion version
581595
[TestCase(Mds3, "Data Source=.;Integrated Security=true;Trust Server Certificate=true;Application Intent=ReadOnly;Pooling=false")]
582596
[TestCase(Mds4, "Data Source=.;Integrated Security=true;Encrypt=false;Trust Server Certificate=true;Application Intent=ReadOnly;Pooling=false")]
583597
[TestCase(Mds5, "Data Source=.;Integrated Security=true;Encrypt=false;Trust Server Certificate=true;Application Intent=ReadOnly;Pooling=false")]
598+
[TestCase(Mds5_2, "Data Source=.;Integrated Security=true;Encrypt=false;Trust Server Certificate=true;Application Intent=ReadOnly;Pooling=false")]
584599
public void GetConnectionString_ExplicitApplicationIntent(SqlClientVersion version, string expected)
585600
{
586601
var context = new SqlContext { ApplicationIntent = ApplicationIntent.ReadOnly };
@@ -597,6 +612,7 @@ public void GetConnectionString_ExplicitApplicationIntent(SqlClientVersion versi
597612
[TestCase(Mds3, "Data Source=.;Integrated Security=true;Trust Server Certificate=true;Multiple Active Result Sets=true;Pooling=false")]
598613
[TestCase(Mds4, "Data Source=.;Integrated Security=true;Encrypt=false;Trust Server Certificate=true;Multiple Active Result Sets=true;Pooling=false")]
599614
[TestCase(Mds5, "Data Source=.;Integrated Security=true;Encrypt=false;Trust Server Certificate=true;Multiple Active Result Sets=true;Pooling=false")]
615+
[TestCase(Mds5_2, "Data Source=.;Integrated Security=true;Encrypt=false;Trust Server Certificate=true;Multiple Active Result Sets=true;Pooling=false")]
600616
public void GetConnectionString_ExplicitMultipleActiveResultSets(SqlClientVersion version, string expected)
601617
{
602618
var context = new SqlContext { EnableMultipleActiveResultSets = true };
@@ -613,6 +629,7 @@ public void GetConnectionString_ExplicitMultipleActiveResultSets(SqlClientVersio
613629
[TestCase(Mds3, "Data Source=.;Integrated Security=true;Trust Server Certificate=true")]
614630
[TestCase(Mds4, "Data Source=.;Integrated Security=true;Encrypt=false;Trust Server Certificate=true")]
615631
[TestCase(Mds5, "Data Source=.;Integrated Security=true;Encrypt=false;Trust Server Certificate=true")]
632+
[TestCase(Mds5_2, "Data Source=.;Integrated Security=true;Encrypt=false;Trust Server Certificate=true")]
616633
public void GetConnectionString_ExplicitConnectionPooling(SqlClientVersion version, string expected)
617634
{
618635
var context = new SqlContext() { EnableConnectionPooling = true };

PSql/Data/SqlClientVersion.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,17 @@ public enum SqlClientVersion
4444
Mds4,
4545

4646
/// <summary>
47-
/// Microsoft.Data.SqlClient 5.x
47+
/// Microsoft.Data.SqlClient 5.0.x and 5.1.x
4848
/// </summary>
4949
Mds5,
5050

51+
/// <summary>
52+
/// Microsoft.Data.SqlClient 5.2.x
53+
/// </summary>
54+
Mds5_2,
55+
5156
/// <summary>
5257
/// The latest version supported by the current PSql module.
5358
/// </summary>
54-
Latest = Mds5
59+
Latest = Mds5_2
5560
}

0 commit comments

Comments
 (0)