public void Returns_Valid_Insert_Query() { // Arrange var schema = Rnd.Str; var name = Rnd.Str; var table = new DbName(schema, name); var c0Name = Rnd.Str; var c0Alias = Rnd.Str; var c0Property = Substitute.ForPartsOf <PropertyInfo>(); c0Property.Name.Returns(c0Alias); c0Property.Configure().CustomAttributes.Returns(Array.Empty <CustomAttributeData>()); var c0 = new Column(table, c0Name, c0Property); var c1Name = Rnd.Str; var c1Alias = Rnd.Str; var c1Property = Substitute.ForPartsOf <PropertyInfo>(); c1Property.Name.Returns(c1Alias); c1Property.Configure().CustomAttributes.Returns(Array.Empty <CustomAttributeData>()); var c1 = new Column(table, c1Name, c1Property); var list = new ColumnList(new[] { c0, c1 }); var client = new MySqlDbClient(); var expected = $"INSERT INTO `{schema}.{name}` (`{c0Name}`, `{c1Name}`) VALUES (@{c0Alias}, @{c1Alias}); " + "SELECT LAST_INSERT_ID();"; // Act var result = client.GetCreateQueryTest(table, list); // Assert Assert.Equal(expected, result); }
public void Returns_Valid_Delete_Query_With_Version() { // Arrange var schema = Rnd.Str; var name = Rnd.Str; var table = new DbName(schema, name); var c0Name = Rnd.Str; var c0Alias = Rnd.Str; var c0Property = Substitute.ForPartsOf <PropertyInfo>(); c0Property.Name.Returns(c0Alias); var c0 = new Column(table, c0Name, c0Property); var c1Name = Rnd.Str; var c1Alias = Rnd.Str; var c1Property = Substitute.ForPartsOf <PropertyInfo>(); c1Property.Name.Returns(c1Alias); var c1 = new Column(table, c1Name, c1Property); var client = new MySqlDbClient(); var id = Rnd.Lng; var expected = $"DELETE FROM `{schema}.{name}` WHERE `{c0Name}` = {id} AND `{c1Name}` = @{c1Alias};"; // Act var result = client.GetDeleteQueryTest(table, c0, id, c1); // Assert Assert.Equal(expected, result); }
public void Run() { var dbs = new DbSettings() { ConnString = "" }; var db = new MySqlDbClient(dbs); db.InitialiseDatabase(); }
public void Returns_Valid_Update_Query_With_Version() { // Arrange var schema = Rnd.Str; var name = Rnd.Str; var table = new DbName(schema, name); var c0Name = Rnd.Str; var c0Alias = Rnd.Str; var c0PropertyInfo = Substitute.For <PropertyInfo>(); c0PropertyInfo.Name.Returns(c0Alias); var c0 = new Column(table, c0Name, c0PropertyInfo); var c1Name = Rnd.Str; var c1Alias = Rnd.Str; var c1PropertyInfo = Substitute.For <PropertyInfo>(); c1PropertyInfo.Name.Returns(c1Alias); var c1 = new Column(table, c1Name, c1PropertyInfo); var c2Name = Rnd.Str; var c2Alias = Rnd.Str; var c2Property = Substitute.ForPartsOf <PropertyInfo>(); c2Property.Name.Returns(c2Alias); var c2 = new Column(table, c2Name, c2Property); var c3Name = Rnd.Str; var c3Alias = Rnd.Str; var c3Property = Substitute.ForPartsOf <PropertyInfo>(); c3Property.Name.Returns(c3Alias); var c3 = new Column(table, c3Name, c3Property); var list = new ColumnList(new[] { c0, c1 }); var client = new MySqlDbClient(); var id = Rnd.Lng; var expected = $"UPDATE `{schema}.{name}` SET" + $" `{c0Name}` = @{c0Alias}," + $" `{c1Name}` = @{c1Alias}," + $" `{c3Name}` = @{c3Alias} + 1" + $" WHERE `{c2Name}` = {id}" + $" AND `{c3Name}` = @{c3Alias};"; // Act var result = client.GetUpdateQueryTest(table, list, c2, id, c3); // Assert Assert.Equal(expected, result); }
public static (MySqlDbClient client, Vars v) Get() { var schema = Rnd.Str; var name = Rnd.Str; var tableName = new DbName(schema, name); var table = Substitute.For <ITable>(); table.GetName().Returns(tableName); var client = new MySqlDbClient(); return(client, new(table, schema, name)); }
public void Returns_Valid_Select_Query() { // Arrange var schema = Rnd.Str; var name = Rnd.Str; var table = new DbName(schema, name); var c0Name = Rnd.Str; var c0Alias = Rnd.Str; var c0 = new Column(table, c0Name, Helpers.CreateInfoFromAlias(c0Alias)); var c1Name = Rnd.Str; var c1Alias = Rnd.Str; var c1 = new Column(table, c1Name, Helpers.CreateInfoFromAlias(c1Alias)); var c2Name = Rnd.Str; var c2Alias = Rnd.Str; var c2Property = Substitute.ForPartsOf <PropertyInfo>(); c2Property.Name.Returns(c2Alias); var c2 = new Column(table, c2Name, c2Property); var list = new ColumnList(new[] { c0, c1 }); var client = new MySqlDbClient(); var id = Rnd.Lng; var expected = "SELECT" + $" `{c0Name}` AS '{c0Alias}'," + $" `{c1Name}` AS '{c1Alias}'" + $" FROM `{schema}.{name}`" + $" WHERE `{c2Name}` = {id};"; // Act var result = client.GetRetrieveQueryTest(table, list, c2, id); // Assert Assert.Equal(expected, result); }