@@ -162,6 +162,37 @@ def ensure_sqlserver_database(db_name, _ensure_val = 'present')
162162 run_sql_query ( run_sql_query_opts )
163163 end
164164
165+ it 'Run sqlserver_tsql WITH onlyif that does a table insert:' do
166+ # Initilize a new table name:
167+ @table_name = 'Table_' + SecureRandom . hex ( 3 )
168+ @query = "USE #{ db_name } ; SELECT * FROM #{ @table_name } WHERE id = 2;"
169+ pp = <<-MANIFEST
170+ sqlserver::config{'MSSQLSERVER':
171+ instance_name => 'MSSQLSERVER',
172+ admin_user => 'sa',
173+ admin_pass => 'Pupp3t1@',
174+ }
175+ sqlserver_tsql{'testsqlserver_tsql':
176+ instance => 'MSSQLSERVER',
177+ database => '#{ db_name } ',
178+ command => "INSERT #{ @table_name } VALUES(2, 'name2', '[email protected] ');", 179+ onlyif => "CREATE TABLE #{ @table_name } (id INT, name VARCHAR(20), email VARCHAR(20));
180+ INSERT #{ @table_name } VALUES(1, 'name', '[email protected] '); 181+ THROW 5300, 'Throw to trigger second INSERT statement in command property', 10"
182+ }
183+ MANIFEST
184+ apply_manifest ( pp , catch_failures : true )
185+
186+ puts "Validate a row is inserted into #{ @table_name } by the command:"
187+ run_sql_query_opts = {
188+ query : @query ,
189+ sql_admin_user : @admin_user ,
190+ sql_admin_pass : @admin_pass ,
191+ expected_row_count : 1 ,
192+ }
193+ run_sql_query ( run_sql_query_opts )
194+ end
195+
165196 it 'Negative test: Run tsql with invalid command:' do
166197 pp = <<-MANIFEST
167198 sqlserver::config{'MSSQLSERVER':
0 commit comments