@@ -57,7 +57,169 @@ public void DbTypesToMySqlDbTypes(DbType[] dbTypes, MySqlDbType[] mySqlDbTypes)
57
57
Assert . Equal ( mySqlDbType , parameter . MySqlDbType ) ;
58
58
Assert . Equal ( dbTypes [ 0 ] , parameter . DbType ) ;
59
59
}
60
+ }
61
+
62
+ [ Fact ]
63
+ public void ConstructorSimple ( )
64
+ {
65
+ var parameter = new MySqlParameter ( ) ;
66
+ Assert . Null ( parameter . ParameterName ) ;
67
+ #if BASELINE
68
+ Assert . Equal ( MySqlDbType . Decimal , parameter . MySqlDbType ) ;
69
+ Assert . Equal ( DbType . AnsiString , parameter . DbType ) ;
70
+ #else
71
+ Assert . Equal ( MySqlDbType . VarChar , parameter . MySqlDbType ) ;
72
+ Assert . Equal ( DbType . String , parameter . DbType ) ;
73
+ #endif
74
+ Assert . False ( parameter . IsNullable ) ;
75
+ Assert . Null ( parameter . Value ) ;
76
+ Assert . Equal ( ParameterDirection . Input , parameter . Direction ) ;
77
+ Assert . Equal ( 0 , parameter . Precision ) ;
78
+ Assert . Equal ( 0 , parameter . Scale ) ;
79
+ Assert . Equal ( 0 , parameter . Size ) ;
80
+ #if ! NETCOREAPP1_1_2
81
+ Assert . Equal ( DataRowVersion . Current , parameter . SourceVersion ) ;
82
+ #endif
83
+ Assert . Null ( parameter . SourceColumn ) ;
84
+ }
85
+
86
+ [ Fact ]
87
+ public void ConstructorNameValue ( )
88
+ {
89
+ var parameter = new MySqlParameter ( "@name" , 1.0 ) ;
90
+ Assert . Equal ( "@name" , parameter . ParameterName ) ;
91
+ Assert . Equal ( MySqlDbType . Double , parameter . MySqlDbType ) ;
92
+ Assert . Equal ( DbType . Double , parameter . DbType ) ;
93
+ Assert . False ( parameter . IsNullable ) ;
94
+ Assert . Equal ( 1.0 , parameter . Value ) ;
95
+ Assert . Equal ( ParameterDirection . Input , parameter . Direction ) ;
96
+ Assert . Equal ( 0 , parameter . Precision ) ;
97
+ Assert . Equal ( 0 , parameter . Scale ) ;
98
+ Assert . Equal ( 0 , parameter . Size ) ;
99
+ #if ! NETCOREAPP1_1_2
100
+ Assert . Equal ( DataRowVersion . Current , parameter . SourceVersion ) ;
101
+ #endif
102
+ Assert . Null ( parameter . SourceColumn ) ;
103
+ }
104
+
105
+ [ Fact ]
106
+ public void ConstructorNameType ( )
107
+ {
108
+ var parameter = new MySqlParameter ( "@name" , MySqlDbType . Double ) ;
109
+ Assert . Equal ( "@name" , parameter . ParameterName ) ;
110
+ Assert . Equal ( MySqlDbType . Double , parameter . MySqlDbType ) ;
111
+ Assert . Equal ( DbType . Double , parameter . DbType ) ;
112
+ Assert . False ( parameter . IsNullable ) ;
113
+ Assert . Null ( parameter . Value ) ;
114
+ Assert . Equal ( ParameterDirection . Input , parameter . Direction ) ;
115
+ Assert . Equal ( 0 , parameter . Precision ) ;
116
+ Assert . Equal ( 0 , parameter . Scale ) ;
117
+ Assert . Equal ( 0 , parameter . Size ) ;
118
+ #if ! NETCOREAPP1_1_2
119
+ Assert . Equal ( DataRowVersion . Current , parameter . SourceVersion ) ;
120
+ #endif
121
+ Assert . Null ( parameter . SourceColumn ) ;
122
+ }
123
+
124
+ [ Fact ]
125
+ public void ConstructorNameTypeSize ( )
126
+ {
127
+ var parameter = new MySqlParameter ( "@name" , MySqlDbType . Double , 4 ) ;
128
+ Assert . Equal ( "@name" , parameter . ParameterName ) ;
129
+ Assert . Equal ( MySqlDbType . Double , parameter . MySqlDbType ) ;
130
+ Assert . Equal ( DbType . Double , parameter . DbType ) ;
131
+ Assert . False ( parameter . IsNullable ) ;
132
+ Assert . Null ( parameter . Value ) ;
133
+ Assert . Equal ( ParameterDirection . Input , parameter . Direction ) ;
134
+ Assert . Equal ( 0 , parameter . Precision ) ;
135
+ Assert . Equal ( 0 , parameter . Scale ) ;
136
+ Assert . Equal ( 4 , parameter . Size ) ;
137
+ #if ! NETCOREAPP1_1_2
138
+ Assert . Equal ( DataRowVersion . Current , parameter . SourceVersion ) ;
139
+ #endif
140
+ Assert . Null ( parameter . SourceColumn ) ;
141
+ }
142
+
143
+ [ Fact ]
144
+ public void ConstructorNameTypeSizeSourceColumn ( )
145
+ {
146
+ var parameter = new MySqlParameter ( "@name" , MySqlDbType . Int32 , 4 , "source" ) ;
147
+ Assert . Equal ( "@name" , parameter . ParameterName ) ;
148
+ Assert . Equal ( MySqlDbType . Int32 , parameter . MySqlDbType ) ;
149
+ Assert . Equal ( DbType . Int32 , parameter . DbType ) ;
150
+ Assert . False ( parameter . IsNullable ) ;
151
+ Assert . Null ( parameter . Value ) ;
152
+ Assert . Equal ( ParameterDirection . Input , parameter . Direction ) ;
153
+ Assert . Equal ( 0 , parameter . Precision ) ;
154
+ Assert . Equal ( 0 , parameter . Scale ) ;
155
+ Assert . Equal ( 4 , parameter . Size ) ;
156
+ #if ! NETCOREAPP1_1_2
157
+ Assert . Equal ( DataRowVersion . Current , parameter . SourceVersion ) ;
158
+ #endif
159
+ Assert . Equal ( "source" , parameter . SourceColumn ) ;
160
+ }
161
+
162
+ [ Theory ]
163
+ [ InlineData ( 1 , DbType . Int32 , MySqlDbType . Int32 ) ]
164
+ [ InlineData ( 1.0 , DbType . Double , MySqlDbType . Double ) ]
165
+ [ InlineData ( 1.0f , DbType . Single , MySqlDbType . Float ) ]
166
+ [ InlineData ( "1" , DbType . String , MySqlDbType . VarChar ) ]
167
+ #if BASELINE
168
+ [ InlineData ( '1' , DbType . Object , MySqlDbType . Blob ) ]
169
+ #else
170
+ [ InlineData ( '1' , DbType . String , MySqlDbType . VarChar ) ]
171
+ #endif
172
+ public void SetValueInfersType ( object value , DbType expectedDbType , MySqlDbType expectedMySqlDbType )
173
+ {
174
+ var parameter = new MySqlParameter { Value = value } ;
175
+ Assert . Equal ( expectedDbType , parameter . DbType ) ;
176
+ Assert . Equal ( expectedMySqlDbType , parameter . MySqlDbType ) ;
177
+ }
178
+
179
+ [ Fact ]
180
+ public void SetValueToByteArrayInfersType ( )
181
+ {
182
+ var parameter = new MySqlParameter { Value = new byte [ 1 ] } ;
183
+ #if BASELINE
184
+ Assert . Equal ( DbType . Object , parameter . DbType ) ;
185
+ #else
186
+ Assert . Equal ( DbType . Binary , parameter . DbType ) ;
187
+ #endif
188
+ Assert . Equal ( MySqlDbType . Blob , parameter . MySqlDbType ) ;
189
+ }
190
+
191
+
192
+ [ Fact ]
193
+ public void SetValueDoesNotInferType ( )
194
+ {
195
+ var parameter = new MySqlParameter ( "@name" , MySqlDbType . Int32 ) ;
196
+ Assert . Equal ( DbType . Int32 , parameter . DbType ) ;
197
+ Assert . Equal ( MySqlDbType . Int32 , parameter . MySqlDbType ) ;
198
+
199
+ parameter . Value = 1.0 ;
200
+ Assert . Equal ( DbType . Int32 , parameter . DbType ) ;
201
+ Assert . Equal ( MySqlDbType . Int32 , parameter . MySqlDbType ) ;
202
+ }
203
+
204
+ [ Fact ]
205
+ public void ResetDbType ( )
206
+ {
207
+ var parameter = new MySqlParameter ( "@name" , 1 ) ;
208
+ Assert . Equal ( DbType . Int32 , parameter . DbType ) ;
209
+ Assert . Equal ( MySqlDbType . Int32 , parameter . MySqlDbType ) ;
210
+
211
+ parameter . ResetDbType ( ) ;
212
+ #if BASELINE
213
+ Assert . Equal ( MySqlDbType . Int32 , parameter . MySqlDbType ) ;
214
+ Assert . Equal ( DbType . Int32 , parameter . DbType ) ;
215
+ #else
216
+ Assert . Equal ( MySqlDbType . VarChar , parameter . MySqlDbType ) ;
217
+ Assert . Equal ( DbType . String , parameter . DbType ) ;
218
+ #endif
60
219
220
+ parameter . Value = 1.0 ;
221
+ Assert . Equal ( DbType . Double , parameter . DbType ) ;
222
+ Assert . Equal ( MySqlDbType . Double , parameter . MySqlDbType ) ;
61
223
}
62
224
}
63
225
}
0 commit comments