@@ -53,3 +53,25 @@ func TestParseConnectionStringCompatibilityMode(t *testing.T) {
53
53
assert .Equal (t , expected , crd .compatibility )
54
54
}
55
55
}
56
+
57
+ // TestParseConnectionStringEqualsInValue tests parsing when for e.g. password contains "="
58
+ func TestParseConnectionStringEqualsInValue (t * testing.T ) {
59
+ validConnStrings := []string {
60
+ "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=my=Password;Failover Partner=myMirror;Max Pool Size=200;Lock Timeout=1000" ,
61
+ "Server=myServerAddress;Database=myDataBase;User_Id=myUsername;Password=my=Password;Failover_Partner=myMirror;Max_Pool_Size=200;Lock_Timeout=1000" ,
62
+ "server=myServerAddress;database=myDataBase;user_id=myUsername;password=my=Password;failover_partner=myMirror;max_pool_size=200;lock_timeout=1000" ,
63
+ "host=myServerAddress;database=myDataBase;user=myUsername;pwd=my=Password;mirror=myMirror;max_pool_size=200;lock_timeout=1000" ,
64
+ "host=myServerAddress;database=myDataBase;user=myUsername;pwd=my=Password;mirror=myMirror;max_pool_size=200;lock_timeout=1000" ,
65
+ }
66
+ for _ , connStr := range validConnStrings {
67
+ crd := NewCredentials (connStr )
68
+ assert .NotNil (t , crd )
69
+ assert .Equal (t , "myServerAddress" , crd .host )
70
+ assert .Equal (t , "myDataBase" , crd .database )
71
+ assert .Equal (t , "myUsername" , crd .user )
72
+ assert .Equal (t , "my=Password" , crd .pwd )
73
+ assert .Equal (t , "myMirror" , crd .mirrorHost )
74
+ assert .Equal (t , 200 , crd .maxPoolSize )
75
+ assert .Equal (t , 1000 , crd .lockTimeout )
76
+ }
77
+ }
0 commit comments