@@ -24,38 +24,23 @@ public void Select1ViaExecuteReaderIndexer()
2424 public void Select1ViaExecuteReaderGetInt32 ( )
2525 => Assert . AreEqual ( 1 , ScalarViaReaderTest ( "select 1" ) . GetInt32 ( 0 ) ) ;
2626
27- private static void VersionTest ( string commandText ) =>
28- Assert . AreEqual ( "SQL Server Simulator" , new Simulation ( ) . ExecuteScalar ( commandText ) ) ;
29-
30- [ TestMethod ]
31- public void SelectVersion ( ) => VersionTest ( "SELECT @@VERSION" ) ;
32-
33- [ TestMethod ]
34- public void SelectVersion_LowerCase ( ) => VersionTest ( "select @@version" ) ;
35-
3627 [ TestMethod ]
37- public void SelectVersion_MixedCase ( ) => VersionTest ( "Select @@Version" ) ;
28+ [ DataRow ( "SELECT @@VERSION" ) ]
29+ [ DataRow ( "select @@version" ) ]
30+ [ DataRow ( "Select @@Version" ) ]
31+ public void SelectVersion ( string commandText ) => Assert . AreEqual ( "SQL Server Simulator" , new Simulation ( ) . ExecuteScalar ( commandText ) ) ;
3832
3933 [ TestMethod ]
40- public void SelectParameterValue ( )
34+ [ DataRow ( "select @p0" , "p0" , 5 ) ]
35+ [ DataRow ( "select @p0" , "@p0" , 6 ) ]
36+ public void SelectParameterValue ( string commandText , string name , object value )
4137 {
4238 var result = new Simulation ( )
4339 . CreateOpenConnection ( )
44- . CreateCommand ( "select @p0" , ( "@p0" , 5 ) )
40+ . CreateCommand ( commandText , ( name , value ) )
4541 . ExecuteScalar ( ) ;
4642
47- Assert . AreEqual ( 5 , result ) ;
48- }
49-
50- [ TestMethod ]
51- public void SelectParameterValueWithAtInName ( )
52- {
53- var result = new Simulation ( )
54- . CreateOpenConnection ( )
55- . CreateCommand ( "select @p0" , ( "@p0" , 6 ) )
56- . ExecuteScalar ( ) ;
57-
58- Assert . AreEqual ( 6 , result ) ;
43+ Assert . AreEqual ( value , result ) ;
5944 }
6045
6146 [ TestMethod ]
@@ -67,130 +52,58 @@ public void Select1Plus1()
6752 }
6853
6954 [ TestMethod ]
70- public void SelectAliasedExpression ( )
71- {
72- using var reader = new Simulation ( ) . ExecuteReader ( "select 1 as c" ) ;
73-
74- Assert . IsTrue ( reader . Read ( ) ) ;
75- Assert . AreEqual ( "c" , reader . GetName ( 0 ) ) ;
76- Assert . AreEqual ( 1 , reader . GetInt32 ( 0 ) ) ;
77- }
78-
79- [ TestMethod ]
80- public void SelectAliasedMathExpression ( )
55+ [ DataRow ( "select 1 as c" , "c" , 1 ) ]
56+ [ DataRow ( "select 1 + 1 as c" , "c" , 2 ) ]
57+ public void Expression ( string commandText , string name , object value )
8158 {
82- using var reader = new Simulation ( ) . ExecuteReader ( "select 1 + 1 as c" ) ;
59+ using var reader = new Simulation ( ) . ExecuteReader ( commandText ) ;
8360
8461 Assert . IsTrue ( reader . Read ( ) ) ;
85- Assert . AreEqual ( "c" , reader . GetName ( 0 ) ) ;
86- Assert . AreEqual ( 2 , reader . GetInt32 ( 0 ) ) ;
62+ Assert . AreEqual ( name , reader . GetName ( 0 ) ) ;
63+ Assert . AreEqual ( value , reader [ 0 ] ) ;
8764 }
8865
8966 [ TestMethod ]
90- public void SelectExpressionFromSystemTable ( )
67+ [ DataRow ( "select 1 from systypes" , 34 , 1 , 1 ) ]
68+ [ DataRow ( "select 1 from systypes as s" , 34 , 1 , 1 ) ]
69+ [ DataRow ( "select name from systypes" , 34 , 34 , "image" ) ]
70+ public void ExpressionFromTable ( string commandText , int minimumRows , int uniqueRows , object value )
9171 {
92- using var reader = new Simulation ( ) . ExecuteReader ( "select 1 from systypes" ) ;
72+ using var reader = new Simulation ( ) . ExecuteReader ( commandText ) ;
9373
9474 var results = reader
9575 . EnumerateRecords ( )
96- . Take ( 34 ) // There might be more someday, but there won't be less.
97- . Select ( reader => reader . GetInt32 ( 0 ) )
76+ . Take ( minimumRows ) // There might be more someday, but there won't be less.
77+ . Select ( reader => reader [ 0 ] )
9878 . ToArray ( ) ;
9979
100- Assert . HasCount ( 34 , results ) ;
101- Assert . HasCount ( 1 , results . ToHashSet ( ) ) ;
102- Assert . AreEqual ( 1 , results [ 0 ] ) ;
80+ Assert . HasCount ( minimumRows , results ) ;
81+ Assert . HasCount ( uniqueRows , results . ToHashSet ( ) ) ;
82+ Assert . AreEqual ( value , results [ 0 ] ) ;
10383 }
10484
10585 [ TestMethod ]
106- public void SelectExpressionFromAliasedSystemTable ( )
86+ [ DataRow ( "select name as c from systypes" , 34 , 34 , "c" , "image" ) ]
87+ [ DataRow ( "select name as c from systypes as s" , 34 , 34 , "c" , "image" ) ]
88+ [ DataRow ( "select systypes.name from systypes" , 34 , 34 , "name" , "image" ) ]
89+ [ DataRow ( "select s.name from systypes as s" , 34 , 34 , "name" , "image" ) ]
90+ public void NamedExpressionFromTable ( string commandText , int minimumRows , int uniqueRows , string name , object value )
10791 {
108- using var reader = new Simulation ( ) . ExecuteReader ( "select 1 from systypes as s" ) ;
92+ using var reader = new Simulation ( ) . ExecuteReader ( commandText ) ;
10993
11094 var results = reader
11195 . EnumerateRecords ( )
112- . Take ( 34 ) // There might be more someday, but there won't be less.
113- . Select ( reader => reader . GetInt32 ( 0 ) )
96+ . Take ( minimumRows ) // There might be more someday, but there won't be less.
97+ . Select ( reader =>
98+ {
99+ Assert . AreEqual ( name , reader . GetName ( 0 ) ) ;
100+ return reader [ 0 ] ;
101+ } )
114102 . ToArray ( ) ;
115103
116- Assert . HasCount ( 34 , results ) ;
117- Assert . HasCount ( 1 , results . ToHashSet ( ) ) ;
118- Assert . AreEqual ( 1 , results [ 0 ] ) ;
119- }
120-
121- [ TestMethod ]
122- public void SelectColumnFromSystemTable ( )
123- {
124- using var reader = new Simulation ( ) . ExecuteReader ( "select name from systypes" ) ;
125-
126- var results = reader
127- . EnumerateRecords ( )
128- . Take ( 34 ) // There might be more someday, but there won't be less.
129- . Select ( reader => reader . GetString ( 0 ) )
130- . ToHashSet ( ) ;
131-
132- Assert . HasCount ( 34 , results ) ;
133- Assert . Contains ( "int" , results ) ;
134- }
135-
136- [ TestMethod ]
137- public void SelectAliasedColumnFromSystemTable ( )
138- {
139- using var reader = new Simulation ( ) . ExecuteReader ( "select name as c from systypes" ) ;
140-
141- var results = reader
142- . EnumerateRecords ( )
143- . Take ( 34 ) // There might be more someday, but there won't be less.
144- . Select ( reader => reader . GetName ( 0 ) )
145- . ToHashSet ( ) ;
146-
147- Assert . HasCount ( 1 , results ) ;
148- Assert . Contains ( "c" , results ) ;
149- }
150-
151- [ TestMethod ]
152- public void SelectAliasedColumnFromAliasedSystemTable ( )
153- {
154- using var reader = new Simulation ( ) . ExecuteReader ( "select name as c from systypes as s" ) ;
155-
156- var results = reader
157- . EnumerateRecords ( )
158- . Take ( 34 ) // There might be more someday, but there won't be less.
159- . Select ( reader => reader . GetName ( 0 ) )
160- . ToHashSet ( ) ;
161-
162- Assert . HasCount ( 1 , results ) ;
163- Assert . Contains ( "c" , results ) ;
164- }
165-
166- [ TestMethod ]
167- public void SelectMultiPartColumnFromSystemTable ( )
168- {
169- using var reader = new Simulation ( ) . ExecuteReader ( "select systypes.name from systypes" ) ;
170-
171- var results = reader
172- . EnumerateRecords ( )
173- . Take ( 34 ) // There might be more someday, but there won't be less.
174- . Select ( reader => reader . GetName ( 0 ) )
175- . ToHashSet ( ) ;
176-
177- Assert . HasCount ( 1 , results ) ;
178- Assert . Contains ( "name" , results ) ;
179- }
180-
181- [ TestMethod ]
182- public void SelectMultiPartColumnFromAliasedSystemTable ( )
183- {
184- using var reader = new Simulation ( ) . ExecuteReader ( "select s.name from systypes as s" ) ;
185-
186- var results = reader
187- . EnumerateRecords ( )
188- . Take ( 34 ) // There might be more someday, but there won't be less.
189- . Select ( reader => reader . GetName ( 0 ) )
190- . ToHashSet ( ) ;
191-
192- Assert . HasCount ( 1 , results ) ;
193- Assert . Contains ( "name" , results ) ;
104+ Assert . HasCount ( minimumRows , results ) ;
105+ Assert . HasCount ( uniqueRows , results . ToHashSet ( ) ) ;
106+ Assert . AreEqual ( value , results [ 0 ] ) ;
194107 }
195108
196109 [ TestMethod ]
0 commit comments