/// <summary>
        /// Method to delete projects
        /// </summary>
        /// <param name="projectId">Project id to delete</param>
        public void DeleteProjectById(string projectId)
        {
            LogUtil.log.Info($"{System.Reflection.MethodBase.GetCurrentMethod()} => Delete project from rfmc_invoices_{clientName} database. Project_id = \"{projectId}\".");
            using (PostgreSqlDbClient dbcMcInvoices = new PostgreSqlDbClient(connectionString, $"rfmc_invoices_{clientName}"))
            {
                dbcMcInvoices.ExecuteModifyQuery(GetQueryToDeleteProjectFromMCInvoices(projectId));
            }

            LogUtil.log.Info($"{System.Reflection.MethodBase.GetCurrentMethod()} => Delete project from rfmc_validations_{clientName} database. Project_id = \"{projectId}\".");
            using (PostgreSqlDbClient dbcMcValidations = new PostgreSqlDbClient(connectionString, $"rfmc_validations_{clientName}"))
            {
                dbcMcValidations.ExecuteModifyQuery(GetQueryToDeleteProjectFromMCValidations(projectId));
            }

            LogUtil.log.Info($"{System.Reflection.MethodBase.GetCurrentMethod()} => Delete project from common_methodologyoutputs_{clientName} database. Project_id = \"{projectId}\".");
            using (PostgreSqlDbClient dbcMcOutputs = new PostgreSqlDbClient(connectionString, $"common_methodologyoutputs_{clientName}"))
            {
                DataTable outputsRegistryTableContent = dbcMcOutputs.ExecuteSelectQuery(GetQueryToReceiveOutputTableName(projectId));
                string    outputsTableName            = outputsRegistryTableContent.Rows.Cast <DataRow>().FirstOrDefault()?["output_table_name"].ToString();
                if (outputsTableName != null)
                {
                    var t = dbcMcOutputs.ExecuteModifyQuery(GetQueryToDropOutputsTable(outputsTableName));
                }
            }
        }
    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 PostgreSqlDbClient();

        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 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 PostgreSqlDbClient();

        var expected = $"INSERT INTO {schema}.{name} ({c0Name}, {c1Name}) VALUES (@{c0Alias}, @{c1Alias}); " +
                       "SELECT LASTVAL();";

        // Act
        var result = client.GetCreateQueryTest(table, list);

        // Assert
        Assert.Equal(expected, result);
    }
Beispiel #4
0
    public static (PostgreSqlDbClient 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 PostgreSqlDbClient();

        return(client, new(table, schema, name));
    }
    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 PostgreSqlDbClient();

        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 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 PostgreSqlDbClient();

        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);
    }