public async Task MySqlRecordCountScriptTest_Success() { var generator = new MySqlTestGenerator(options => { options.AddDatabaseRecordsCountRule( new List <RecordCountRule>() { new RecordCountRule() { TableName = "mytable", Operator = "=", Count = 100 } }); }); var results = new List <Models.Test> { new Models.Test( "mytable", $@"SELECT EXISTS (SELECT * FROM `mytable` WHERE (SELECT COUNT(*) AS `count` FROM `mytable`) = 100);", TestType.RecordCount, DatabaseKind.MySql) }.ToExpectedObject(); results.ShouldEqual(await generator.Generate()); Assert.Equal(DatabaseKind.MySql, generator.DatabaseKind); }
public async Task MySqlRecordExistScriptTest_Success() { var generator = new MySqlTestGenerator(options => { options.AddDatabaseRecordExitsRule( new List <RecordExistRule>() { new RecordExistRule() { TableName = "mytable", ColumnName = "name", Operator = "=", Value = "myname" } }); }); var results = new List <Models.Test> { new Models.Test( "mytable", $@"SELECT EXISTS(SELECT * FROM `mytable` WHERE `name` = 'myname');", TestType.RecordExist, DatabaseKind.MySql) }.ToExpectedObject(); results.ShouldEqual(await generator.Generate()); Assert.Equal(DatabaseKind.MySql, generator.DatabaseKind); }
public void MySqlObjectExistScriptNullDbKindTest_Success() { var generator = new MySqlTestGenerator(options => { options.AddDatabaseObjectExitsRule(new string[] { "sp1", "sp2" }, DatabaseObjectType.StoredProcedure); }); Assert.Equal(DatabaseKind.MySql, generator.DatabaseKind); }
public async Task MysqlCreateRunnerTest_Success() { var generator = new MySqlTestGenerator(options => { options.AddDatabaseObjectExitsRule(new string[] { "mytable" }, DatabaseObjectType.Table); }); var script = await generator.Generate(); var options = Substitute.For <Action <TestRunnerOptions> >(); var runner = Substitute.For <MySqlTestRunnerFactory>(script, options); Assert.NotNull(runner); }
public async Task MySqlStoredProcedureExistScriptTest_Success() { var generator = new MySqlTestGenerator(options => { options.AddDatabaseObjectExitsRule(new string[] { "mystoredprocedure" }, DatabaseObjectType.StoredProcedure); }); var results = new List <Models.Test> { new Models.Test( "mystoredprocedure", $@"SELECT EXISTS(SELECT * FROM `information_schema`.`routines` WHERE `routine_name` = 'mystoredprocedure');", TestType.ObjectExist, DatabaseKind.MySql) }.ToExpectedObject(); results.ShouldEqual(await generator.Generate()); Assert.Equal(DatabaseKind.MySql, generator.DatabaseKind); }
public async Task MySqlCustomScriptTest_Success() { var generator = new MySqlTestGenerator(options => { options.AddCustomSqlRule( new List <string>() { "SELECT * FROM mytable WHERE (SELECT COUNT(*) AS count FROM mytable) = 50" }); }); var results = new List <Models.Test> { new Models.Test( null, $@"SELECT EXISTS (SELECT * FROM mytable WHERE (SELECT COUNT(*) AS count FROM mytable) = 50);", TestType.CustomScript, DatabaseKind.MySql) }.ToExpectedObject(); results.ShouldEqual(await generator.Generate()); Assert.Equal(DatabaseKind.MySql, generator.DatabaseKind); }
public async Task MySqlMultipleTableExistScriptTest_Success() { var generator = new MySqlTestGenerator(options => { options.AddDatabaseObjectExitsRule(new string[] { "table1", "table2" }, DatabaseObjectType.Table); }); var results = new List <Models.Test> { new Models.Test( "table1", $@"SELECT EXISTS(SELECT * FROM `information_schema`.`tables` WHERE `table_name` = 'table1');", TestType.ObjectExist, DatabaseKind.MySql), new Models.Test( "table2", $@"SELECT EXISTS(SELECT * FROM `information_schema`.`tables` WHERE `table_name` = 'table2');", TestType.ObjectExist, DatabaseKind.MySql) }.ToExpectedObject(); results.ShouldEqual(await generator.Generate()); Assert.Equal(DatabaseKind.MySql, generator.DatabaseKind); }