Skip to content

Commit 5ac222f

Browse files
committed
Remove property when it's set to null. Fixes #749
1 parent 52bc3b2 commit 5ac222f

File tree

2 files changed

+123
-1
lines changed

2 files changed

+123
-1
lines changed

src/MySqlConnector/MySql.Data.MySqlClient/MySqlConnectionStringBuilder.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,7 @@ public override bool Remove(string key)
342342
public override object? this[string key]
343343
{
344344
get => MySqlConnectionStringOption.GetOptionForKey(key).GetObject(this);
345-
set => base[MySqlConnectionStringOption.GetOptionForKey(key).Key] = Convert.ToString(value, CultureInfo.InvariantCulture);
345+
set => base[MySqlConnectionStringOption.GetOptionForKey(key).Key] = value;
346346
}
347347

348348
internal string GetConnectionString(bool includePassword)

tests/MySqlConnector.Tests/MySqlConnectionStringBuilderTests.cs

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,5 +234,127 @@ public void SetConnectionStringToEmptyString()
234234
};
235235
Assert.Equal("", csb.ConnectionString);
236236
}
237+
238+
[Fact]
239+
public void SetServerToNull()
240+
{
241+
var csb = new MySqlConnectionStringBuilder("Server=test");
242+
csb.Server = null;
243+
Assert.Equal("", csb.ConnectionString);
244+
}
245+
246+
[Fact]
247+
public void SetUserIdToNull()
248+
{
249+
var csb = new MySqlConnectionStringBuilder("User ID=test");
250+
csb.UserID = null;
251+
Assert.Equal("", csb.ConnectionString);
252+
}
253+
254+
[Fact]
255+
public void SetPasswordToNull()
256+
{
257+
var csb = new MySqlConnectionStringBuilder("Password=test");
258+
csb.Password = null;
259+
Assert.Equal("", csb.ConnectionString);
260+
}
261+
262+
[Fact]
263+
public void SetDatabaseToNull()
264+
{
265+
var csb = new MySqlConnectionStringBuilder("Database=test");
266+
csb.Database = null;
267+
Assert.Equal("", csb.ConnectionString);
268+
}
269+
270+
[Fact]
271+
public void SetPipeNameToNull()
272+
{
273+
var csb = new MySqlConnectionStringBuilder("Pipe=test");
274+
csb.PipeName = null;
275+
Assert.Equal("", csb.ConnectionString);
276+
}
277+
278+
[Fact]
279+
public void SetCertificateFileToNull()
280+
{
281+
var csb = new MySqlConnectionStringBuilder("CertificateFile=test");
282+
csb.CertificateFile = null;
283+
Assert.Equal("", csb.ConnectionString);
284+
}
285+
286+
[Fact]
287+
public void SetCertificatePasswordToNull()
288+
{
289+
var csb = new MySqlConnectionStringBuilder("CertificatePassword=test");
290+
csb.CertificatePassword = null;
291+
Assert.Equal("", csb.ConnectionString);
292+
}
293+
294+
[Fact]
295+
public void SetSslCaToNull()
296+
{
297+
var csb = new MySqlConnectionStringBuilder("SslCa=test");
298+
csb.SslCa = null;
299+
Assert.Equal("", csb.ConnectionString);
300+
}
301+
302+
[Fact]
303+
public void SetSslCertToNull()
304+
{
305+
var csb = new MySqlConnectionStringBuilder("SslCert=test");
306+
csb.SslCert = null;
307+
Assert.Equal("", csb.ConnectionString);
308+
}
309+
310+
[Fact]
311+
public void SetSslKeyToNull()
312+
{
313+
var csb = new MySqlConnectionStringBuilder("SslKey=test");
314+
csb.SslKey = null;
315+
Assert.Equal("", csb.ConnectionString);
316+
}
317+
318+
[Fact]
319+
public void SetCertificateThumbprintToNull()
320+
{
321+
var csb = new MySqlConnectionStringBuilder("CertificateThumbprint=test");
322+
csb.CertificateThumbprint = null;
323+
Assert.Equal("", csb.ConnectionString);
324+
}
325+
326+
[Fact]
327+
public void SetCharacterSetToNull()
328+
{
329+
var csb = new MySqlConnectionStringBuilder("CharSet=test");
330+
csb.CharacterSet = null;
331+
Assert.Equal("", csb.ConnectionString);
332+
}
333+
334+
#if !BASELINE
335+
[Fact]
336+
public void SetApplicationNameToNull()
337+
{
338+
var csb = new MySqlConnectionStringBuilder("ApplicationName=test");
339+
csb.ApplicationName = null;
340+
Assert.Equal("", csb.ConnectionString);
341+
}
342+
343+
[Fact]
344+
public void SetServerRsaPublicKeyFileToNull()
345+
{
346+
var csb = new MySqlConnectionStringBuilder("ServerRSAPublicKeyFile=test");
347+
csb.ServerRsaPublicKeyFile = null;
348+
Assert.Equal("", csb.ConnectionString);
349+
}
350+
351+
[Fact]
352+
public void SetServerSPNToNull()
353+
{
354+
var csb = new MySqlConnectionStringBuilder("ServerSPN=test");
355+
csb.ServerSPN = null;
356+
Assert.Equal("", csb.ConnectionString);
357+
}
358+
#endif
237359
}
238360
}

0 commit comments

Comments
 (0)