Esempio n. 1
0
        public static DropDatabase CreateDropDatabase(IDatabaseContainer databaseContainer, string databaseName)
        {
            DropDatabase dropDatabase = new DropDatabase(databaseContainer);

            dropDatabase.targetDatabase = databaseName;
            return(dropDatabase);
        }
        public void RevokePrivilege_AllOK_RevokePrivilege()
        {
            //Prefase
            IDatabaseContainer databaseContainer = ObjectConstructor.CreateDatabaseContainer();
            IDatabase          database          = databaseContainer.GetDatabase(SystemeConstants.DefaultDatabaseName);
            Table table = new Table("table");

            database.AddTable(table);
            string         profileName    = SystemeConstants.DefaultProfile;
            string         privilegeName  = SystemeConstants.InsertPrivilegeName;
            GrantPrivilege grantPrivilege = TestGrantPrivilege.CreateGrantPrivilege(databaseContainer, SystemeConstants.SystemDatabaseName, SystemeConstants.PrivilegesOfProfilesOnTablesTableName);

            grantPrivilege.SetData(privilegeName, profileName, database.databaseName, table.tableName);
            grantPrivilege.ValidateParameters();
            grantPrivilege.Execute();
            ITable profilesPrivilegesTable = databaseContainer.GetDatabase(SystemeConstants.SystemDatabaseName).GetTable(SystemeConstants.PrivilegesOfProfilesOnTablesTableName);
            int    rowCounts = profilesPrivilegesTable.GetRowCount();
            //Test
            RevoquePrivilege revoquePrivilege = CreateRevokePrivilege(databaseContainer, SystemeConstants.SystemDatabaseName, SystemeConstants.PrivilegesOfProfilesOnTablesTableName);

            revoquePrivilege.SetData(profileName, database.databaseName, table.tableName, privilegeName);
            Assert.IsTrue(revoquePrivilege.ValidateParameters());
            revoquePrivilege.Execute();
            Assert.AreEqual(rowCounts - 1, profilesPrivilegesTable.GetRowCount());
        }
        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());
        }
Esempio n. 4
0
        private Drop CreateDropTableQuery(IMessage request, IDatabaseContainer container)
        {
            Drop drop = new Drop(container);

            this.SetDatabaseAndTableTarget(request, drop);
            return(drop);
        }
Esempio n. 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());
        }
Esempio n. 6
0
        private DropDatabase DropDatabaseQuery(IMessage request, IDatabaseContainer container)
        {
            DropDatabase dropDatabase = new DropDatabase(container);

            dropDatabase.targetDatabase = request.GetElementsContentByTagName(RequestAndRegexConstants.databaseTagName)[0];
            return(dropDatabase);
        }
        public static CreateDatabase CreateCreateDatabase(IDatabaseContainer databaseContainer, string databaseName)
        {
            CreateDatabase createDatabase = new CreateDatabase(databaseContainer);

            createDatabase.targetDatabase = databaseName;
            return(createDatabase);
        }
Esempio n. 8
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());
        }
Esempio n. 9
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());
        }
Esempio n. 10
0
        private CreateDatabase CreateDatabaseQuery(IMessage request, IDatabaseContainer container)
        {
            CreateDatabase createDatabase = new CreateDatabase(container);

            createDatabase.targetDatabase = request.GetElementsContentByTagName(RequestAndRegexConstants.databaseTagName)[0];
            return(createDatabase);
        }
Esempio n. 11
0
        public override bool ValidateParameters()
        {
            IDatabaseContainer container = this.GetContainer();

            if (!container.ExistDatabase(this.targetDatabase))
            {
                this.SaveTheError(QuerysStringResultConstants.DatabaseDoesntExist(this.targetDatabase));
            }
            else
            {
                IDatabase targetDatabaseObject = container.GetDatabase(this.targetDatabase);
                if (!targetDatabaseObject.ExistTable(this.targetTableName))
                {
                    this.SaveTheError(QuerysStringResultConstants.TableDoensExist(this.targetDatabase, this.targetTableName));
                }
                else if (!this.GetPrivilegeModule().CheckProfileTablePrivileges(this.username, this.targetDatabase, this.targetTableName, this.GetNeededExecutePrivilege()))
                {
                    this.SaveTheError("Not enought privileges");
                }
                else
                {
                    this.DoTheOtherValidations(targetDatabaseObject.GetTable(this.targetTableName));
                }
            }
            return(this.GetIsValidQuery());
        }
Esempio n. 12
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());
        }
Esempio n. 13
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);
        }
Esempio n. 14
0
        private Delete CreateDeleteQuery(IMessage request, IDatabaseContainer container)
        {
            Delete delete = new Delete(container);

            this.SetDatabaseAndTableTarget(request, delete);
            delete.whereClause = this.CreateWhereClause(request);
            return(delete);
        }
Esempio n. 15
0
        public static DropSecurityProfile CreateDropSecurityProfile(IDatabaseContainer container, string databaseName, string tableName)
        {
            DropSecurityProfile dropSecurityProfile = new DropSecurityProfile(container);

            dropSecurityProfile.targetDatabase  = databaseName;
            dropSecurityProfile.targetTableName = tableName;
            return(dropSecurityProfile);
        }
Esempio n. 16
0
        public void DropSecurityProfile_TheProfileCannotDrop_NoticeInValidate()
        {
            IDatabaseContainer  databaseContainer   = ObjectConstructor.CreateDatabaseContainer();
            DropSecurityProfile dropSecurityProfile = CreateDropSecurityProfile(databaseContainer, SystemeConstants.SystemDatabaseName, SystemeConstants.ProfilesTableName);

            dropSecurityProfile.SetTargetSecurityProfile(SystemeConstants.DefaultProfile);
            Assert.IsFalse(dropSecurityProfile.ValidateParameters());
        }
Esempio n. 17
0
        public Update CreateUpdate(IDatabaseContainer databaseContainer, string databaseName, string tableName)
        {
            Update update = new Update(databaseContainer);

            update.targetDatabase  = databaseName;
            update.targetTableName = tableName;
            return(update);
        }
Esempio n. 18
0
        //Lo he puesto en mayusculas la primera letra (para cumplir con las reglas del proyecto, aunque tampoco pasaria nada si se nos cuela alguna minuscula, supongo)
        public static Drop CreateDrop(IDatabaseContainer container, string databaseName, string tableName)
        {
            Drop drop = new Drop(container);

            drop.targetDatabase  = databaseName;
            drop.targetTableName = tableName;
            return(drop);
        }
Esempio n. 19
0
        public static DeleteUser CreateDeleteUser(IDatabaseContainer container)
        {
            DeleteUser deleteUser = new DeleteUser(container);

            deleteUser.targetDatabase  = SystemeConstants.SystemDatabaseName;
            deleteUser.targetTableName = SystemeConstants.UsersTableName;
            return(deleteUser);
        }
        public static CreateSecurityProfile CreateCreateSecurityProfile(IDatabaseContainer container)
        {
            CreateSecurityProfile createSecurityProfile = new CreateSecurityProfile(container);

            createSecurityProfile.targetDatabase  = SystemeConstants.SystemDatabaseName;
            createSecurityProfile.targetTableName = SystemeConstants.ProfilesTableName;
            return(createSecurityProfile);
        }
Esempio n. 21
0
        public static Insert CreateInsert(IDatabaseContainer databaseContainer, string databaseName, string tableName)
        {
            Insert insert = new Insert(databaseContainer);

            insert.targetDatabase  = databaseName;
            insert.targetTableName = tableName;
            return(insert);
        }
Esempio n. 22
0
        public static Create CreateCreate(IDatabaseContainer dataContainer, string databaseName, string tableName)
        {
            Create create = new Create(dataContainer);

            create.targetDatabase  = databaseName;
            create.targetTableName = tableName;
            return(create);
        }
        public static GrantDatabasePrivilege CreateGrantDatabasePrivilege(IDatabaseContainer databaseContainer, string databaseName, string tableName)
        {
            GrantDatabasePrivilege grantDatabasePrivilege = new GrantDatabasePrivilege(databaseContainer);

            grantDatabasePrivilege.targetDatabase  = databaseName;
            grantDatabasePrivilege.targetTableName = tableName;
            return(grantDatabasePrivilege);
        }
Esempio n. 24
0
        public static Delete CreateDelete(IDatabaseContainer container, string databaseName, string tableName)
        {
            Delete delete = new Delete(container);

            delete.targetDatabase  = databaseName;
            delete.targetTableName = tableName;
            return(delete);
        }
Esempio n. 25
0
        public static Login CreateLogin(IDatabaseContainer container, IUserThread thread, string databaseName, string tableName)
        {
            Login login = new Login(container, thread);

            login.targetDatabase  = databaseName;
            login.targetTableName = tableName;
            return(login);
        }
Esempio n. 26
0
        public static RevokeDatabasePrivilege CreateRevoqueDatabasePrivilege(IDatabaseContainer container, string databaseName, string tableName)
        {
            RevokeDatabasePrivilege revoqueDatabasePrivilege = new RevokeDatabasePrivilege(container);

            revoqueDatabasePrivilege.targetDatabase  = databaseName;
            revoqueDatabasePrivilege.targetTableName = tableName;
            return(revoqueDatabasePrivilege);
        }
Esempio n. 27
0
        private DeleteUser CreateDeleteUserQuery(IMessage request, IDatabaseContainer container)
        {
            DeleteUser deleteUser = new DeleteUser(container);

            deleteUser.targetDatabase  = SystemeConstants.SystemDatabaseName;
            deleteUser.targetTableName = SystemeConstants.UsersTableName;
            deleteUser.SetTargetUserName(request.GetElementsContentByTagName(RequestAndRegexConstants.usernameTagName)[0]);
            return(deleteUser);
        }
Esempio n. 28
0
        private Login CreateLogin(IMessage request, IDatabaseContainer container, IUserThread thread)
        {
            Login login = new Login(container, thread);

            login.targetDatabase  = SystemeConstants.SystemDatabaseName;
            login.targetTableName = SystemeConstants.UsersTableName;
            login.SetData(request.GetElementsContentByTagName(RequestAndRegexConstants.usernameTagName)[0], request.GetElementsContentByTagName(RequestAndRegexConstants.passwordTagName)[0]);
            return(login);
        }
Esempio n. 29
0
        private RevoquePrivilege CreateRevoquePrivilege(IMessage request, IDatabaseContainer container)
        {
            RevoquePrivilege revokePrivilege = new RevoquePrivilege(container);

            revokePrivilege.targetDatabase  = SystemeConstants.SystemDatabaseName;
            revokePrivilege.targetTableName = SystemeConstants.PrivilegesOfProfilesOnTablesTableName;
            revokePrivilege.SetData(request.GetElementsContentByTagName(RequestAndRegexConstants.securityProfileTag)[0], this.GetTargetDatabase(request), request.GetElementsContentByTagName(RequestAndRegexConstants.tableTagName)[0], request.GetElementsContentByTagName(RequestAndRegexConstants.privilegeTag)[0]);
            return(revokePrivilege);
        }
Esempio n. 30
0
        private DropSecurityProfile CreateDropSecurityProfile(IMessage request, IDatabaseContainer container)
        {
            DropSecurityProfile dropSecurityProfile = new DropSecurityProfile(container);

            dropSecurityProfile.targetDatabase  = SystemeConstants.SystemDatabaseName;
            dropSecurityProfile.targetTableName = SystemeConstants.ProfilesTableName;
            dropSecurityProfile.SetTargetSecurityProfile(request.GetElementsContentByTagName(RequestAndRegexConstants.valueTagName)[0]);
            return(dropSecurityProfile);
        }