|
1 | 1 | using System; |
| 2 | +using System.Linq; |
2 | 3 | using MySql.Data.MySqlClient; |
3 | 4 | using Xunit; |
4 | 5 |
|
@@ -66,6 +67,7 @@ public void Defaults() |
66 | 67 | Assert.Null(csb.SslCert); |
67 | 68 | Assert.Null(csb.SslKey); |
68 | 69 | Assert.Equal(MySqlSslMode.Preferred, csb.SslMode); |
| 70 | + Assert.Null(csb.TlsVersion); |
69 | 71 | Assert.True(csb.TreatTinyAsBoolean); |
70 | 72 | Assert.False(csb.UseCompression); |
71 | 73 | Assert.Equal("", csb.UserID); |
@@ -355,5 +357,51 @@ public void SetServerSPNToNull() |
355 | 357 | Assert.Equal("", csb.ConnectionString); |
356 | 358 | } |
357 | 359 | #endif |
| 360 | + |
| 361 | + [Theory] |
| 362 | + [InlineData("Tls", "0")] |
| 363 | + [InlineData("Tls1", "0")] |
| 364 | + [InlineData("Tlsv1", "0")] |
| 365 | + [InlineData("Tlsv1.0", "0")] |
| 366 | + [InlineData("TLS 1.0", "0")] |
| 367 | + [InlineData("TLS v1.0", "0")] |
| 368 | + [InlineData("Tls11", "1")] |
| 369 | + [InlineData("Tlsv11", "1")] |
| 370 | + [InlineData("Tlsv1.1", "1")] |
| 371 | + [InlineData("TLS 1.1", "1")] |
| 372 | + [InlineData("TLS v1.1", "1")] |
| 373 | + [InlineData("Tls12", "2")] |
| 374 | + [InlineData("Tlsv12", "2")] |
| 375 | + [InlineData("Tlsv1.2", "2")] |
| 376 | + [InlineData("TLS 1.2", "2")] |
| 377 | + [InlineData("TLS v1.2", "2")] |
| 378 | + [InlineData("Tls13", "3")] |
| 379 | + [InlineData("Tlsv13", "3")] |
| 380 | + [InlineData("Tlsv1.3", "3")] |
| 381 | + [InlineData("TLS 1.3", "3")] |
| 382 | + [InlineData("TLS v1.3", "3")] |
| 383 | + [InlineData("Tls,Tls", "0")] |
| 384 | + [InlineData("Tls1.1,Tls v1.1, TLS 1.1", "1")] |
| 385 | + [InlineData("Tls12,Tls10", "0,2")] |
| 386 | + [InlineData("TLS v1.3, TLS12, Tls 1.1", "1,2,3")] |
| 387 | + public void ParseTlsVersion(string input, string expected) |
| 388 | + { |
| 389 | + var csb = new MySqlConnectionStringBuilder { TlsVersion = input }; |
| 390 | +#if !BASELINE |
| 391 | + string[] normalizedVersions = new[] { "TLS 1.0", "TLS 1.1", "TLS 1.2", "TLS 1.3" }; |
| 392 | +#else |
| 393 | + string[] normalizedVersions = new[] { "Tls", "Tls11", "Tls12", "Tls13" }; |
| 394 | +#endif |
| 395 | + var expectedTlsVersion = string.Join(", ", expected.Split(',').Select(int.Parse).Select(x => normalizedVersions[x])); |
| 396 | + Assert.Equal(expectedTlsVersion, csb.TlsVersion); |
| 397 | + } |
| 398 | + |
| 399 | + [Fact] |
| 400 | + public void ParseInvalidTlsVersion() |
| 401 | + { |
| 402 | + var csb = new MySqlConnectionStringBuilder(); |
| 403 | + Assert.Throws<ArgumentException>(() => csb.TlsVersion = "Tls14"); |
| 404 | + Assert.Throws<ArgumentException>(() => new MySqlConnectionStringBuilder("TlsVersion=Tls14")); |
| 405 | + } |
358 | 406 | } |
359 | 407 | } |
0 commit comments