Пример #1
0
    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);
    }
Пример #2
0
    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);
    }
Пример #3
0
        public void Run()
        {
            var dbs = new DbSettings()
            {
                ConnString = ""
            };
            var db = new MySqlDbClient(dbs);

            db.InitialiseDatabase();
        }
Пример #4
0
    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);
    }
Пример #5
0
    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));
    }
Пример #6
0
    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);
    }