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