Пример #1
0
        public void GoodArguments_ShouldntFindResults()
        {
            bool                  parametros, tablaBorrada = false;
            Database              db       = ObjectConstructor.CreateDatabaseFull("db1");
            List <Column>         columnas = new List <Column>();
            List <List <string> > celdas   = new List <List <string> >();
            Table                 t        = ObjectConstructor.CreateFullTable("table1", columnas, celdas);

            db.AddTable(t);
            IDatabaseContainer container = ObjectConstructor.CreateDatabaseContainer();

            container.AddDatabase(db);
            Drop drop = CreateDrop(container, db.databaseName, t.tableName);

            parametros = drop.ValidateParameters();
            if (parametros)
            {
                drop.Execute();
                if (db.ExistTable(t.tableName) == false)
                {
                    tablaBorrada = false;
                }
            }
            Assert.AreEqual(parametros, true);
            Assert.AreEqual(tablaBorrada, false);
        }
Пример #2
0
        public void UpdatePKColumn_ThisIsIlegal_NoticeInValidate()
        {
            // C phase
            IDatabaseContainer databaseContainer = ObjectConstructor.CreateDatabaseContainer();
            Database           database          = new Database("database");
            Table  table1 = new Table("t1");
            Column c1     = new Column("column1", DataTypesFactory.GetDataTypesFactory().GetDataType(TypesKeyConstants.StringTypeKey));

            table1.AddColumn(c1);
            table1.primaryKey.AddKey(c1);
            Row row = table1.CreateRowDefinition();

            row.GetCell(c1.columnName).data = "data";
            table1.AddRow(row);
            Row row2 = table1.CreateRowDefinition();

            row.GetCell(c1.columnName).data = row.GetCell(c1.columnName).data + "a";
            table1.AddRow(row2);
            database.AddTable(table1);
            databaseContainer.AddDatabase(database);
            // T phase
            Update update = CreateUpdate(databaseContainer, database.databaseName, table1.tableName);

            update.AddValue(c1.columnName, row2.GetCell(c1.columnName).data);
            update.whereClause.AddCritery(c1.columnName, row.GetCell(c1.columnName).data, OperatorFactory.GetOperatorFactory().GetOperator(OperatorKeys.EqualKey));
            Assert.IsFalse(update.ValidateParameters());
        }
Пример #3
0
        public void InsertInTableWithFK_BadArguments_FKViolated_NoticeInValidate()
        {
            //Construct
            IDatabaseContainer databaseContainer = ObjectConstructor.CreateDatabaseContainer();
            Database           database          = new Database("database");
            ITable             table1            = new Table("table1");
            Column             columnt1          = new Column("c1t1", DataTypesFactory.GetDataTypesFactory().GetDataType(TypesKeyConstants.StringTypeKey));

            table1.AddColumn(columnt1);
            table1.primaryKey.AddKey(columnt1);
            database.AddTable(table1);
            ITable table2    = new Table("table2");
            Column column1t2 = new Column("c1t2", DataTypesFactory.GetDataTypesFactory().GetDataType(TypesKeyConstants.StringTypeKey));
            Column column2t2 = new Column("c2t2", DataTypesFactory.GetDataTypesFactory().GetDataType(TypesKeyConstants.StringTypeKey));

            table2.AddColumn(column1t2);
            table2.AddColumn(column2t2);
            table2.primaryKey.AddKey(column1t2);
            table2.foreignKey.AddForeignKey(column2t2, columnt1);
            database.AddTable(table2);
            databaseContainer.AddDatabase(database);
            //Add some data
            Row row = table1.CreateRowDefinition();

            row.GetCell(columnt1.columnName).data = "aa";
            table1.AddRow(row);
            //Test
            Insert insert = CreateInsert(databaseContainer, database.databaseName, table2.tableName);

            insert.AddValue(row.GetCell(columnt1.columnName).data + "a"); //it is not the fk column
            insert.AddValue(row.GetCell(columnt1.columnName).data + "a"); //it is the fk column
            Assert.IsFalse(insert.ValidateParameters());
        }
Пример #4
0
        public void InsertInTableWithPK_GoodArgument_TheQueryInsertsTheNewRows()
        {
            //Construct
            IDatabaseContainer databaseContainer = ObjectConstructor.CreateDatabaseContainer();
            Database           database          = new Database("database");
            ITable             table             = new Table("table1");
            Column             column            = new Column("c1t1", DataTypesFactory.GetDataTypesFactory().GetDataType(TypesKeyConstants.StringTypeKey));

            table.AddColumn(column);
            table.primaryKey.AddKey(column);
            database.AddTable(table);
            databaseContainer.AddDatabase(database);
            //Test
            bool   b     = true;
            int    limit = 100;
            Insert insert;

            for (int i = 0; i < limit && b; i++)
            {
                insert = CreateInsert(databaseContainer, database.databaseName, table.tableName);
                insert.AddValue(i + "");
                b = insert.ValidateParameters();
                insert.Execute();
            }
            Assert.IsTrue(b);
            Assert.AreEqual(limit, table.GetRowCount());
        }
Пример #5
0
        public void Select_BadArgument_DatabaseDoesntExit_NoticedInValidateParameters()
        {
            IDatabaseContainer databaseContainer = ObjectConstructor.CreateDatabaseContainer();
            Database           database          = new Database("aa");
            ITable             table             = new Table("table1");
            string             columnName        = "c1";
            Column             column            = new Column(columnName, DataTypesFactory.GetDataTypesFactory().GetDataType(TypesKeyConstants.IntTypeKey));

            table.AddColumn(column);
            Row row = table.CreateRowDefinition();

            row.GetCell(columnName).data = "1";
            table.AddRow(row);
            database.AddTable(table);
            databaseContainer.AddDatabase(database);
            string notValidDatabaseName = "bb";

            Assert.IsFalse(databaseContainer.ExistDatabase(notValidDatabaseName));
            Select select = CreateSelect(databaseContainer, notValidDatabaseName, table.tableName, true);

            Assert.IsFalse(select.ValidateParameters());
            select.Execute();
            Assert.AreEqual(0, select.GetAfectedRowCount());
            Console.WriteLine(select.GetResult());
        }
Пример #6
0
        public void UpdateFKColumn_BadArguments_ConcretelyFKViolated_NotifyInValidate()
        {
            // C phase
            IDatabaseContainer databaseContainer = ObjectConstructor.CreateDatabaseContainer();
            Database           database          = new Database("database");
            Table  table1   = new Table("t1");
            Column c1table1 = new Column("column1", DataTypesFactory.GetDataTypesFactory().GetDataType(TypesKeyConstants.StringTypeKey));

            table1.AddColumn(c1table1);
            table1.primaryKey.AddKey(c1table1);
            Table  table2   = new Table("t2");
            Column c1table2 = new Column("column1", DataTypesFactory.GetDataTypesFactory().GetDataType(TypesKeyConstants.StringTypeKey));

            table2.AddColumn(c1table2);
            table2.primaryKey.AddKey(c1table2);
            table2.foreignKey.AddForeignKey(c1table2, c1table1);
            Row r1 = table1.CreateRowDefinition();

            r1.GetCell(c1table1.columnName).data = "asda";
            table1.AddRow(r1);
            Row r2 = table2.CreateRowDefinition();

            r2.GetCell(c1table2.columnName).data = r1.GetCell(c1table1.columnName).data;
            table2.AddRow(r2);
            database.AddTable(table1);
            database.AddTable(table2);
            databaseContainer.AddDatabase(database);
            // T phase
            Update update = CreateUpdate(databaseContainer, database.databaseName, table2.tableName);

            update.AddValue(c1table2.columnName, r2.GetCell(c1table2.columnName).data + "aaa");
            Assert.IsFalse(update.ValidateParameters());
        }
        private void CreateDefaultDatabase(ISystemeDatabaseModule databaseModule)
        {
            IDatabaseContainer databaseContainer = databaseModule.GetDatabaseContainer();

            if (!databaseContainer.ExistDatabase(SystemeConstants.DefaultDatabaseName))
            {
                databaseContainer.AddDatabase(new Database(SystemeConstants.DefaultDatabaseName));
            }
        }
Пример #8
0
        public void Update_GodArguments_TheQueryUpdateTheNewsRows()
        {
            IDatabaseContainer databaseContainer = ObjectConstructor.CreateDatabaseContainer();
            string             c1FirstRowData    = "aaa";
            string             c2FirstRowData    = "1";
            string             c1SecondRowData   = "aaaa";
            string             c2SecondRowData   = "2";
            Database           database          = new Database("TestInsert3");
            ITable             table             = new Table("table1");
            Column             column1           = new Column("c1", DataTypesFactory.GetDataTypesFactory().GetDataType(TypesKeyConstants.StringTypeKey));
            Column             column2           = new Column("c2", DataTypesFactory.GetDataTypesFactory().GetDataType(TypesKeyConstants.IntTypeKey));

            Assert.IsTrue(column1.dataType.IsAValidDataType(c1FirstRowData));
            Assert.IsTrue(column2.dataType.IsAValidDataType(c2FirstRowData));
            Assert.IsTrue(column1.dataType.IsAValidDataType(c1SecondRowData));
            Assert.IsTrue(column2.dataType.IsAValidDataType(c2SecondRowData));
            table.AddColumn(column1);
            table.AddColumn(column2);
            database.AddTable(table);
            databaseContainer.AddDatabase(database);
            int    rowCount    = table.GetRowCount();
            Select firstSelect = TestSelect.CreateSelect(databaseContainer, database.databaseName, table.tableName, true);

            firstSelect.ValidateParameters();
            firstSelect.Execute();
            Assert.AreEqual(0, firstSelect.GetAfectedRowCount());
            Insert insert = CreateInsert(databaseContainer, database.databaseName, table.tableName);

            insert.AddValue(c1FirstRowData);
            insert.AddValue(c2FirstRowData);
            Assert.IsTrue(insert.ValidateParameters());
            insert.Execute();
            Select secondSelect = TestSelect.CreateSelect(databaseContainer, database.databaseName, table.tableName, true);

            secondSelect.ValidateParameters();
            secondSelect.Execute();
            Assert.IsTrue(firstSelect.GetAfectedRowCount() < secondSelect.GetAfectedRowCount());
            Assert.IsTrue(column1.GetCells(c1FirstRowData).Count > 0);
            Assert.IsTrue(column2.GetCells(c2FirstRowData).Count > 0);
            Assert.AreEqual(rowCount + 1, table.GetRowCount());
            Update update = CreateUpdate(databaseContainer, database.databaseName, table.tableName);

            update.AddValue(column1.columnName, c1FirstRowData);
            update.AddValue(column2.columnName, c2FirstRowData);
            Assert.IsTrue(update.ValidateParameters());
            update.Execute();
            Select thirdSelect = TestSelect.CreateSelect(databaseContainer, database.databaseName, table.tableName, true);

            thirdSelect.ValidateParameters();
            thirdSelect.Execute();
            Assert.IsTrue(firstSelect.GetAfectedRowCount() < thirdSelect.GetAfectedRowCount());
            Assert.IsTrue(column1.GetCells(c1FirstRowData).Count > 0);
            Assert.IsTrue(column2.GetCells(c2FirstRowData).Count > 0);
            Assert.AreEqual(rowCount + 1, table.GetRowCount());
        }
Пример #9
0
        public void DeleteRow_WrongArgumentsTableDoesntExist_NotifiedInResult()
        {
            Database           db        = new Database("db");
            ITable             t         = new Table("table");
            IDatabaseContainer container = ObjectConstructor.CreateDatabaseContainer();

            container.AddDatabase(db);
            Delete delete = CreateDelete(container, db.databaseName, t.tableName);

            Assert.IsFalse(delete.ValidateParameters());
            Assert.AreEqual(0, delete.GetAfectedRowCount());
        }
Пример #10
0
        public void DropDatabase_DatabaseExist_DropDatabase()
        {
            //Construct phase
            IDatabaseContainer databaseContainer = ObjectConstructor.CreateDatabaseContainer();
            Database           database          = new Database("database");

            databaseContainer.AddDatabase(database);
            DropDatabase dropDatabase = CreateDropDatabase(databaseContainer, database.databaseName);

            //Test phase
            Assert.IsTrue(dropDatabase.ValidateParameters());
            dropDatabase.Execute();
            Assert.IsFalse(databaseContainer.ExistDatabase(database.databaseName));
        }
Пример #11
0
        public void DeleteRow_BadArgumentsInWhere_NotifiedInResult()
        {
            Database db = ObjectConstructor.CreateDatabaseFull("db");
            ITable   t  = db.GetTable("Table1");

            t.AddRow(t.CreateRowDefinition());
            IDatabaseContainer container = ObjectConstructor.CreateDatabaseContainer();

            container.AddDatabase(db);
            Delete delete = CreateDelete(container, db.databaseName, t.tableName);

            delete.whereClause.AddCritery("x", "a", Operator.equal);
            Assert.IsFalse(delete.ValidateParameters());
            Assert.AreEqual(0, delete.GetAfectedRowCount());
        }
Пример #12
0
        public void Drop_GoodArguments_TableDroped()
        {
            IDatabaseContainer databaseContainer = ObjectConstructor.CreateDatabaseContainer();
            Database           database          = new Database("aaa");
            ITable             table             = new Table("table1"); //Realmente no hace falta ni añadir columnas ni nada para esta query

            database.AddTable(table);
            databaseContainer.AddDatabase(database);
            Assert.IsTrue(databaseContainer.ExistDatabase(database.databaseName));             //Omitible, aunque nunca esta de mas por si acaso el problema esta en que en el container no se añaden las bases de datos
            Drop drop = CreateDrop(databaseContainer, database.databaseName, table.tableName); //Aqui se añaden los parametros a la drop

            Assert.IsTrue(drop.ValidateParameters());                                          //Poned esta linea en todos los test. En caso de que se metan parametros validos ponerla como Assert.IsTrue, en caso de que no, ponerla como Assert.IsFalse
            drop.Execute();
            Assert.IsFalse(database.ExistTable(table.tableName));
        }
Пример #13
0
        public void Select_GoodArguments_ShouldFindResults()
        {
            Database database = ObjectConstructor.CreateDatabaseFull("test1");
            ITable   table    = database.GetTable("Table1");

            table.AddRow(table.CreateRowDefinition());
            IDatabaseContainer databaseContainer = ObjectConstructor.CreateDatabaseContainer();

            databaseContainer.AddDatabase(database);
            Select select = CreateSelect(databaseContainer, database.databaseName, table.tableName, true);

            select.whereClause.AddCritery("Column3", table.GetColumn("Column3").dataType.GetDataTypeDefaultValue(), Operator.equal);
            Assert.IsTrue(select.ValidateParameters());
            select.Execute();
            Assert.IsTrue(select.GetAfectedRowCount() > 0);
        }
Пример #14
0
        public void DeleteRow_GodArguments_RowsDeleted()
        {
            Database db = ObjectConstructor.CreateDatabaseFull("db");
            ITable   t  = db.GetTable("Table1");

            t.AddRow(t.CreateRowDefinition());
            IDatabaseContainer container = ObjectConstructor.CreateDatabaseContainer();

            container.AddDatabase(db);
            Delete delete = CreateDelete(container, db.databaseName, t.tableName);

            delete.whereClause.AddCritery("Column3", t.GetColumn("Column3").dataType.GetDataTypeDefaultValue(), Operator.equal);
            Assert.IsTrue(delete.ValidateParameters());
            delete.ExecuteParticularQueryAction(t);
            Assert.IsTrue(delete.GetAfectedRowCount() > 0);
        }
Пример #15
0
        public void CreateTable_GoodArguments_TableExists_DontCreateNewTableAndNoticedinValidateParameters()
        {
            IDatabaseContainer container = ObjectConstructor.CreateDatabaseContainer();
            Database           database  = new Database("testDatabase");
            ITable             table     = new Table("table1");

            database.AddTable(table);
            container.AddDatabase(database);
            Assert.IsTrue(database.ExistTable(table.tableName)); //( ͡° ͜ʖ ͡°)
            Create create = CreateCreate(container, database.databaseName, table.tableName);

            create.AddColumn("rellenuto", TypesKeyConstants.StringTypeKey);
            Assert.IsFalse(create.ValidateParameters());
            create.Execute();
            Console.WriteLine(create.GetResult());
        }
        public void CreateDatabase_DatabaseExist_NoticeInValidate()
        {
            IDatabaseContainer databaseContainer = ObjectConstructor.CreateDatabaseContainer();
            string             databaseName      = VariousFunctions.GenerateRandomString(8);

            while (databaseContainer.ExistDatabase(databaseName))
            {
                databaseName = VariousFunctions.GenerateRandomString(8);
            }
            IDatabase database = new Database(databaseName);

            databaseContainer.AddDatabase(database);
            CreateDatabase createDatabase = CreateCreateDatabase(databaseContainer, database.databaseName);

            Assert.IsFalse(createDatabase.ValidateParameters());
        }
Пример #17
0
        public void Insert_BadArguments_ConcretelyTableDoesntExist_NoticeInValidate()
        {
            IDatabaseContainer databaseContainer = ObjectConstructor.CreateDatabaseContainer();
            Database           database          = new Database("TestInsert1");

            databaseContainer.AddDatabase(database);
            string doenstExistTableNames = VariousFunctions.GenerateRandomString(6);

            while (database.ExistTable(doenstExistTableNames))
            {
                doenstExistTableNames = VariousFunctions.GenerateRandomString(6);
            }
            Assert.IsFalse(database.ExistTable(doenstExistTableNames));
            Insert insert = CreateInsert(databaseContainer, database.databaseName, doenstExistTableNames);

            Assert.IsFalse(insert.ValidateParameters());
            insert.Execute();
        }
Пример #18
0
        public void CreateTable_BadArgumentsTwoColumnsWithSameName_DontCreateNewTableAndNotifiedInResult()
        {
            IDatabaseContainer container = ObjectConstructor.CreateDatabaseContainer();
            Database           database  = new Database("testDatabase");

            container.AddDatabase(database);
            string tableName = "testTable";

            Assert.IsFalse(database.ExistTable(tableName));
            Create create = CreateCreate(container, database.databaseName, tableName);
            Tuple <string, string> columnAndType = new Tuple <string, string>("c1", TypesKeyConstants.StringTypeKey);

            create.AddColumn(columnAndType.Item1, columnAndType.Item2);
            create.AddColumn(columnAndType.Item1, columnAndType.Item2);
            Assert.IsFalse(create.ValidateParameters());
            create.Execute();
            Console.WriteLine(create.GetResult());
        }
Пример #19
0
        public void Select_GoodArguments_TableEmpty_ShouldntFindResults()
        {
            IDatabaseContainer databaseContainer = ObjectConstructor.CreateDatabaseContainer();
            Database           database          = new Database("aa");

            databaseContainer.AddDatabase(database); //Notice the references. (this database object references, no the 'referencias')
            ITable table  = new Table("table1");
            Column column = new Column("c1", DataTypesFactory.GetDataTypesFactory().GetDataType(TypesKeyConstants.StringTypeKey));

            table.AddColumn(column);
            database.AddTable(table);
            Select select = CreateSelect(databaseContainer, database.databaseName, table.tableName, true);

            select.whereClause.AddCritery(column.columnName, table.GetColumn(column.columnName).dataType.GetDataTypeDefaultValue(), Operator.equal);
            Assert.IsTrue(select.ValidateParameters());
            Assert.IsTrue(table.GetRowCount() == 0); //Maybe assert.equal
            select.Execute();
            Assert.IsTrue(select.GetAfectedRowCount() == 0);
        }
Пример #20
0
        public void DeleteRow_TheRowIsReferedForAnotherRows_DontDeleteTheRowRefered()
        {
            //Construction phase
            IDatabaseContainer container = ObjectConstructor.CreateDatabaseContainer();
            Database           db        = new Database("database1");
            ITable             table1    = new Table("table1");
            Column             column1t1 = new Column("c1t1", DataTypesFactory.GetDataTypesFactory().GetDataType(TypesKeyConstants.IntTypeKey));

            table1.AddColumn(column1t1);
            table1.primaryKey.AddKey(column1t1);
            db.AddTable(table1);
            ITable table2    = new Table("table2");
            Column column1t2 = new Column("c1t2", DataTypesFactory.GetDataTypesFactory().GetDataType(TypesKeyConstants.IntTypeKey));

            table2.AddColumn(column1t2);
            table2.primaryKey.AddKey(column1t2);
            db.AddTable(table2);
            container.AddDatabase(db);
            table2.foreignKey.AddForeignKey(column1t2, column1t1);
            //Insert some data
            Row rowT1;
            int limit = 10;

            for (int i = 0; i <= limit; i++)
            {
                rowT1 = table1.CreateRowDefinition();
                rowT1.GetCell(column1t1.columnName).data = "" + i;
                table1.AddRow(rowT1);
            }
            Row rowT2 = table2.CreateRowDefinition();

            rowT2.GetCell(column1t2.columnName).data = "" + limit;
            table2.AddRow(rowT2);
            //Test
            int    numberOfRows = table1.GetRowCount();
            Delete delete       = CreateDelete(container, db.databaseName, table1.tableName);

            delete.whereClause.AddCritery(column1t1.columnName, "" + 11, Operator.less);
            Assert.IsTrue(delete.ValidateParameters());
            delete.Execute();
            Assert.AreEqual(table2.GetRowCount(), numberOfRows - delete.GetAfectedRowCount());
            Assert.IsTrue(table1.GetColumn(column1t1.columnName).ExistCells(rowT2.GetCell(column1t2.columnName).data));
        }
Пример #21
0
        public void Select_BadArguments_TableDoesntExist_NoticedInValidateParameters()
        {
            IDatabaseContainer databaseContainer = ObjectConstructor.CreateDatabaseContainer();
            Database           database          = ObjectConstructor.CreateDatabaseFull("test1");

            databaseContainer.AddDatabase(database);
            string noInDatabaseTableName = VariousFunctions.GenerateRandomString(10); //Do while instead of while is okkkkk

            while (database.ExistTable(noInDatabaseTableName))
            {
                noInDatabaseTableName = VariousFunctions.GenerateRandomString(10);
            }
            Select select = CreateSelect(databaseContainer, database.databaseName, noInDatabaseTableName, true);

            Assert.IsFalse(select.ValidateParameters());
            select.Execute();
            Assert.AreEqual(0, select.GetAfectedRowCount());
            Console.WriteLine(select.GetResult()); //It is only to see the message not to trace execution
        }
Пример #22
0
        public void InsertBadArguments_ConcretelyNotEnougthParameters_NoticeInValidate()
        {
            IDatabaseContainer databaseContainer = ObjectConstructor.CreateDatabaseContainer();
            Database           database          = new Database("TestInsert2");
            ITable             table             = new Table("table1");
            Column             column1           = new Column("c1", DataTypesFactory.GetDataTypesFactory().GetDataType(TypesKeyConstants.StringTypeKey));
            Column             column2           = new Column("c2", DataTypesFactory.GetDataTypesFactory().GetDataType(TypesKeyConstants.IntTypeKey));

            table.AddColumn(column1);
            table.AddColumn(column2);
            database.AddTable(table);
            databaseContainer.AddDatabase(database);
            int    rowCount = table.GetRowCount();
            Insert insert   = CreateInsert(databaseContainer, database.databaseName, table.tableName);

            string[] rowData = { "aaa" };
            insert.AddValue(rowData[0]);
            Assert.IsTrue(table.GetColumnCount() > rowData.Length);
            Assert.IsFalse(insert.ValidateParameters());
            insert.Execute();
            Assert.AreEqual(rowCount, table.GetRowCount());
        }
Пример #23
0
        public void CreateTable_GoodArguments_TableDoenstExist_CreateNewTable()
        {
            IDatabaseContainer container = ObjectConstructor.CreateDatabaseContainer();
            Database           database  = new Database("testDatabase");

            container.AddDatabase(database);
            string tableName = "testTable";

            Assert.IsFalse(database.ExistTable(tableName));
            Create create = CreateCreate(container, database.databaseName, tableName);
            List <Tuple <string, string> > columnsAndTypes = new List <Tuple <string, string> >()
            {
                new Tuple <string, string>("c1", TypesKeyConstants.StringTypeKey), new Tuple <string, string>("c2", TypesKeyConstants.IntTypeKey), new Tuple <string, string>("c3", TypesKeyConstants.DoubleTypeKey)
            };

            foreach (Tuple <string, string> tuple in columnsAndTypes)
            {
                create.AddColumn(tuple.Item1, tuple.Item2);
            }
            Assert.IsTrue(create.ValidateParameters());
            create.Execute();
            Assert.IsTrue(database.ExistTable(tableName));
            ITable table           = database.GetTable(tableName);
            bool   allColumnExist  = true;
            bool   correctDataType = true;

            for (int i = 0; i < columnsAndTypes.Count && allColumnExist; i++)
            {
                allColumnExist = table.ExistColumn(columnsAndTypes[i].Item1);
                if (allColumnExist)
                {
                    correctDataType = table.GetColumn(columnsAndTypes[i].Item1).dataType.GetSimpleTextValue().Equals(columnsAndTypes[i].Item2);
                }
            }
            Assert.IsTrue(allColumnExist);
            Assert.IsTrue(correctDataType);
            Console.WriteLine(create.GetResult());
        }
Пример #24
0
        public void Select_SelectAColumnExplicitelyGoodArguments_ShouldFindResults()
        {
            IDatabaseContainer databaseContainer = ObjectConstructor.CreateDatabaseContainer();
            Database           database          = new Database("aa");
            ITable             table             = new Table("table1");
            string             columnName        = "c1";
            Column             column            = new Column(columnName, DataTypesFactory.GetDataTypesFactory().GetDataType(TypesKeyConstants.StringTypeKey));

            table.AddColumn(column);
            Row row = table.CreateRowDefinition();

            row.GetCell(columnName).data = "aaaa";
            table.AddRow(row);
            database.AddTable(table);
            databaseContainer.AddDatabase(database);
            Select select = CreateSelect(databaseContainer, database.databaseName, table.tableName, true);

            select.whereClause.AddCritery(columnName, row.GetCell(columnName).data, Operator.equal);
            Assert.IsTrue(select.ValidateParameters());
            select.Execute();
            Assert.IsTrue(select.GetAfectedRowCount() > 0);
            Console.WriteLine(select.GetResult());
        }
Пример #25
0
        public void Update_BadArguments_TheDataTypesDontMatch_NoticeInValidateParameters()
        {
            IDatabaseContainer databaseContainer = ObjectConstructor.CreateDatabaseContainer();
            Database           database          = new Database("TestUpdate2");
            ITable             table             = new Table("table1");
            Column             column1           = new Column("c1", DataTypesFactory.GetDataTypesFactory().GetDataType(TypesKeyConstants.StringTypeKey));
            Column             column2           = new Column("c2", DataTypesFactory.GetDataTypesFactory().GetDataType(TypesKeyConstants.IntTypeKey));

            table.AddColumn(column1);
            table.AddColumn(column2);
            database.AddTable(table);
            databaseContainer.AddDatabase(database);
            string[] rowData = new string[] { "aaa", "aaa" };
            Assert.IsFalse(column1.dataType.IsAValidDataType(rowData[0]) && column2.dataType.IsAValidDataType(rowData[1]));
            int    rowCount = table.GetRowCount();
            Update update   = CreateUpdate(databaseContainer, database.databaseName, table.tableName);

            update.AddValue(column1.columnName, rowData[0]);
            update.AddValue(column2.columnName, rowData[1]);
            Assert.IsFalse(update.ValidateParameters());
            update.Execute();
            Assert.AreEqual(rowCount, table.GetRowCount());
        }
Пример #26
0
        public void Insert_BadArguments_PKViolated_NoticeInValidate()
        {
            //Construct
            IDatabaseContainer databaseContainer = ObjectConstructor.CreateDatabaseContainer();
            Database           database          = new Database("database");
            ITable             table             = new Table("table");
            Column             column            = new Column("c1", DataTypesFactory.GetDataTypesFactory().GetDataType(TypesKeyConstants.StringTypeKey));

            table.AddColumn(column);
            table.primaryKey.AddKey(column);
            database.AddTable(table);
            databaseContainer.AddDatabase(database);
            Row row = table.CreateRowDefinition();

            row.GetCell(column.columnName).data = "aaaa";
            table.AddRow(row);
            Insert insert = CreateInsert(databaseContainer, database.databaseName, table.tableName);

            insert.AddValue(row.GetCell(column.columnName).data);
            //Test
            Assert.IsFalse(insert.ValidateParameters());
            insert.Execute();
        }
Пример #27
0
        public void UpdateFKColumn_GoodArguments_DoTheUpdate()
        {
            // C phase
            IDatabaseContainer databaseContainer = ObjectConstructor.CreateDatabaseContainer();
            Database           database          = new Database("database");
            Table  table1   = new Table("t1");
            Column c1table1 = new Column("column1", DataTypesFactory.GetDataTypesFactory().GetDataType(TypesKeyConstants.StringTypeKey));

            table1.AddColumn(c1table1);
            table1.primaryKey.AddKey(c1table1);
            Table  table2   = new Table("t2");
            Column c1table2 = new Column("column1", DataTypesFactory.GetDataTypesFactory().GetDataType(TypesKeyConstants.StringTypeKey));

            table2.AddColumn(c1table2);
            table2.foreignKey.AddForeignKey(c1table2, c1table1);
            Row r1 = table1.CreateRowDefinition();

            r1.GetCell(c1table1.columnName).data = "asda";
            table1.AddRow(r1);
            Row r2 = table1.CreateRowDefinition();

            r2.GetCell(c1table1.columnName).data = r1.GetCell(c1table1.columnName).data + "a";
            table1.AddRow(r2);
            Row r3 = table2.CreateRowDefinition();

            r3.GetCell(c1table2.columnName).data = r1.GetCell(c1table1.columnName).data;
            table2.AddRow(r3);
            database.AddTable(table1);
            database.AddTable(table2);
            databaseContainer.AddDatabase(database);
            // T phase
            Update update = CreateUpdate(databaseContainer, database.databaseName, table2.tableName);

            update.AddValue(c1table2.columnName, r2.GetCell(c1table2.columnName).data);
            update.whereClause.AddCritery(c1table2.columnName, r3.GetCell(c1table2.columnName).data, OperatorFactory.GetOperatorFactory().GetOperator(OperatorKeys.EqualKey));
            Assert.IsTrue(update.ValidateParameters());
        }
Пример #28
0
        public void InsertInTableWithFK_GoodArgument_TheQueryInsertTheNewsRows()
        {
            //like the other fk test, but now not violating the FK
            IDatabaseContainer databaseContainer = ObjectConstructor.CreateDatabaseContainer();
            Database           database          = new Database("database");
            ITable             table1            = new Table("table1");
            Column             columnt1          = new Column("c1t1", DataTypesFactory.GetDataTypesFactory().GetDataType(TypesKeyConstants.StringTypeKey));

            table1.AddColumn(columnt1);
            table1.primaryKey.AddKey(columnt1);
            database.AddTable(table1);
            ITable table2    = new Table("table2");
            Column column1t2 = new Column("c1t2", DataTypesFactory.GetDataTypesFactory().GetDataType(TypesKeyConstants.StringTypeKey));
            Column column2t2 = new Column("c2t2", DataTypesFactory.GetDataTypesFactory().GetDataType(TypesKeyConstants.StringTypeKey));

            table2.AddColumn(column1t2);
            table2.AddColumn(column2t2);
            table2.primaryKey.AddKey(column1t2);
            table2.foreignKey.AddForeignKey(column2t2, columnt1);
            database.AddTable(table2);
            databaseContainer.AddDatabase(database);
            //Add some data
            Row row = table1.CreateRowDefinition();

            row.GetCell(columnt1.columnName).data = "aa";
            table1.AddRow(row);
            //Test
            Insert insert = CreateInsert(databaseContainer, database.databaseName, table2.tableName);

            insert.AddValue(row.GetCell(columnt1.columnName).data); //it is not the fk column
            insert.AddValue(row.GetCell(columnt1.columnName).data); //it is the fk column
            int numberOfColumn = table2.GetRowCount();

            Assert.IsTrue(insert.ValidateParameters());
            insert.Execute();
            Assert.AreEqual(numberOfColumn + 1, table2.GetRowCount());
        }
Пример #29
0
        public void Select_BadArguments_WhereClauseColumnsDontExist_NoticedInValidateParameters()
        {
            IDatabaseContainer databaseContainer = ObjectConstructor.CreateDatabaseContainer();
            Database           database          = new Database("aa");
            ITable             table             = new Table("table1");
            Column             column            = new Column("c1", DataTypesFactory.GetDataTypesFactory().GetDataType(TypesKeyConstants.StringTypeKey));

            table.AddColumn(column);
            database.AddTable(table);
            databaseContainer.AddDatabase(database);
            string noInTableColumnName = VariousFunctions.GenerateRandomString(10);

            while (table.ExistColumn(noInTableColumnName))
            {
                noInTableColumnName = VariousFunctions.GenerateRandomString(10);
            }
            Select select = CreateSelect(databaseContainer, database.databaseName, table.tableName, true);

            select.whereClause.AddCritery(noInTableColumnName, "a", Operator.equal);
            Assert.IsFalse(select.ValidateParameters());
            select.Execute();
            Assert.AreEqual(0, select.GetAfectedRowCount());
            Console.WriteLine(select.GetResult());
        }
Пример #30
0
        public void DropTable_BadArgumentsTryToDropReferenciedTable_NotifyInValidate()
        {
            //Construct phase
            IDatabaseContainer container = ObjectConstructor.CreateDatabaseContainer();
            Database           db        = new Database("database1");
            ITable             table1    = new Table("table1");
            Column             column1t1 = new Column("c1t1", DataTypesFactory.GetDataTypesFactory().GetDataType(TypesKeyConstants.IntTypeKey));

            table1.AddColumn(column1t1);
            table1.primaryKey.AddKey(column1t1);
            db.AddTable(table1);
            ITable table2    = new Table("table2");
            Column column1t2 = new Column("c1t2", DataTypesFactory.GetDataTypesFactory().GetDataType(TypesKeyConstants.IntTypeKey));

            table2.AddColumn(column1t2);
            table2.primaryKey.AddKey(column1t2);
            db.AddTable(table2);
            container.AddDatabase(db);
            table2.foreignKey.AddForeignKey(column1t2, column1t1);
            //Test Phase
            Drop drop = CreateDrop(container, db.databaseName, table1.tableName);

            Assert.IsFalse(drop.ValidateParameters());
        }