Search in sources :

Example 16 with Column

use of org.alfresco.util.schemacomp.model.Column in project alfresco-repository by Alfresco.

the class MySQLDialectExportTester method checkExampleTable.

private void checkExampleTable(Schema schema, Table exampleTable) {
    assertNotNull("Couldn't find export_test_example", exampleTable);
    assertSame("Incorrect parent or no parent set", schema, exampleTable.getParent());
    assertEquals("export_test_example", exampleTable.getName());
    Iterator<Column> colIt = exampleTable.getColumns().iterator();
    Column col = colIt.next();
    assertSame("Incorrect parent or no parent set", exampleTable, col.getParent());
    assertEquals("id", col.getName());
    assertEquals("bigint", col.getType());
    assertEquals(false, col.isNullable());
    assertEquals(1, col.getOrder());
    assertEquals(true, col.isAutoIncrement());
    col = colIt.next();
    assertSame("Incorrect parent or no parent set", exampleTable, col.getParent());
    assertEquals("description", col.getName());
    assertEquals("text", col.getType());
    assertEquals(true, col.isNullable());
    assertEquals(2, col.getOrder());
    col = colIt.next();
    assertSame("Incorrect parent or no parent set", exampleTable, col.getParent());
    assertEquals("fixes_from_schema", col.getName());
    assertEquals("int", col.getType());
    assertEquals(true, col.isNullable());
    assertEquals(3, col.getOrder());
    col = colIt.next();
    assertSame("Incorrect parent or no parent set", exampleTable, col.getParent());
    assertEquals("fixes_to_schema", col.getName());
    assertEquals("int", col.getType());
    assertEquals(true, col.isNullable());
    assertEquals(4, col.getOrder());
    col = colIt.next();
    assertSame("Incorrect parent or no parent set", exampleTable, col.getParent());
    assertEquals("applied_to_schema", col.getName());
    assertEquals("int", col.getType());
    assertEquals(true, col.isNullable());
    assertEquals(5, col.getOrder());
    col = colIt.next();
    assertSame("Incorrect parent or no parent set", exampleTable, col.getParent());
    assertEquals("target_schema", col.getName());
    assertEquals("int", col.getType());
    assertEquals(true, col.isNullable());
    assertEquals(6, col.getOrder());
    col = colIt.next();
    assertSame("Incorrect parent or no parent set", exampleTable, col.getParent());
    assertEquals("applied_on_date", col.getName());
    assertEquals("datetime", col.getType());
    assertEquals(true, col.isNullable());
    assertEquals(7, col.getOrder());
    col = colIt.next();
    assertSame("Incorrect parent or no parent set", exampleTable, col.getParent());
    assertEquals("applied_to_server", col.getName());
    assertEquals("varchar(64)", col.getType());
    assertEquals(true, col.isNullable());
    assertEquals(8, col.getOrder());
    col = colIt.next();
    assertSame("Incorrect parent or no parent set", exampleTable, col.getParent());
    assertEquals("was_executed", col.getName());
    assertEquals("bit", col.getType());
    assertEquals(true, col.isNullable());
    assertEquals(9, col.getOrder());
    col = colIt.next();
    assertSame("Incorrect parent or no parent set", exampleTable, col.getParent());
    assertEquals("succeeded", col.getName());
    assertEquals("bit", col.getType());
    assertEquals(true, col.isNullable());
    assertEquals(10, col.getOrder());
    col = colIt.next();
    assertSame("Incorrect parent or no parent set", exampleTable, col.getParent());
    assertEquals("report", col.getName());
    assertEquals("text", col.getType());
    assertEquals(true, col.isNullable());
    assertEquals(11, col.getOrder());
    PrimaryKey pk = exampleTable.getPrimaryKey();
    assertSame("Incorrect parent or no parent set", exampleTable, pk.getParent());
    assertEquals("id", pk.getColumnNames().get(0));
    assertEquals(1, pk.getColumnOrders().get(0).intValue());
}
Also used : Column(org.alfresco.util.schemacomp.model.Column) PrimaryKey(org.alfresco.util.schemacomp.model.PrimaryKey)

Example 17 with Column

use of org.alfresco.util.schemacomp.model.Column in project alfresco-repository by Alfresco.

the class DbObjectXMLTransformerTest method transformObjectWithValidators.

@Test
public void transformObjectWithValidators() throws IOException {
    Collection<Column> columns = columns("one VARCHAR2(100)", "two NUMBER(10)");
    PrimaryKey pk = new PrimaryKey(null, "pk_for_my_table", Arrays.asList("id"), Arrays.asList(1));
    Collection<ForeignKey> fks = fkeys(fk("fk_one", "lc", "tt", "tc"), fk("fk_two", "lc", "tt", "tc"));
    Collection<Index> indexes = indexes("index_one col1 col2", "index_two col3 col4");
    Table table = new Table(null, "my_table", columns, pk, fks, indexes);
    NameValidator nameValidator = new NameValidator();
    nameValidator.setPattern(Pattern.compile("match_me_if_you_can"));
    List<DbValidator> validators = new ArrayList<DbValidator>();
    validators.add(nameValidator);
    table.setValidators(validators);
    transformer.output(table);
    BufferedReader reader = new BufferedReader(new StringReader(writer.toString()));
    dumpOutput();
    assertHasPreamble(reader);
    assertEquals("<table name=\"my_table\">", reader.readLine());
    assertEquals("  <validators>", reader.readLine());
    assertEquals("    <validator class=\"org.alfresco.util.schemacomp.validator.NameValidator\">", reader.readLine());
    assertEquals("      <properties>", reader.readLine());
    assertEquals("        <property name=\"pattern\">match_me_if_you_can</property>", reader.readLine());
    assertEquals("      </properties>", reader.readLine());
    assertEquals("    </validator>", reader.readLine());
    assertEquals("  </validators>", reader.readLine());
    assertEquals("  <columns>", reader.readLine());
    skipUntilEnd("       {column}", reader);
    skipUntilEnd("       {column}", reader);
    assertEquals("  </columns>", reader.readLine());
    skipUntilEnd("  {primarykey}", reader);
    assertEquals("  <foreignkeys>", reader.readLine());
    skipUntilEnd("       {foreignkey}", reader);
    skipUntilEnd("       {foreignkey}", reader);
    assertEquals("  </foreignkeys>", reader.readLine());
    assertEquals("  <indexes>", reader.readLine());
    skipUntilEnd("       {index}", reader);
    skipUntilEnd("       {index}", reader);
    assertEquals("  </indexes>", reader.readLine());
    assertEquals("</table>", reader.readLine());
}
Also used : Table(org.alfresco.util.schemacomp.model.Table) NameValidator(org.alfresco.util.schemacomp.validator.NameValidator) ArrayList(java.util.ArrayList) PrimaryKey(org.alfresco.util.schemacomp.model.PrimaryKey) Index(org.alfresco.util.schemacomp.model.Index) ForeignKey(org.alfresco.util.schemacomp.model.ForeignKey) Column(org.alfresco.util.schemacomp.model.Column) BufferedReader(java.io.BufferedReader) StringReader(java.io.StringReader) DbValidator(org.alfresco.util.schemacomp.validator.DbValidator) Test(org.junit.Test)

Example 18 with Column

use of org.alfresco.util.schemacomp.model.Column in project alfresco-repository by Alfresco.

the class DbObjectXMLTransformerTest method transformSchemaNoColumnOrderCheck.

@Test
public void transformSchemaNoColumnOrderCheck() throws IOException {
    Collection<Column> columns = columns("one VARCHAR2(100)", "two NUMBER(10)");
    PrimaryKey pk = new PrimaryKey(null, "pk_for_my_table", Arrays.asList("id"), Arrays.asList(1));
    Collection<ForeignKey> fks = fkeys(fk("fk_one", "lc", "tt", "tc"), fk("fk_two", "lc", "tt", "tc"));
    Collection<Index> indexes = indexes("index_one col1 col2", "index_two col3 col4");
    Table tableOne = new Table(null, "table_one", columns, pk, fks, indexes);
    Table tableTwo = new Table(null, "table_two", columns, pk, fks, indexes);
    Schema schema = new Schema("my_schema", "alf_", 132, false);
    schema.add(tableOne);
    schema.add(tableTwo);
    schema.add(new Sequence(null, "sequence_one"));
    schema.add(new Sequence(null, "sequence_two"));
    schema.add(new Sequence(null, "sequence_three"));
    schema.setValidators(new ArrayList<DbValidator>());
    transformer.output(schema);
    BufferedReader reader = new BufferedReader(new StringReader(writer.toString()));
    dumpOutput();
    assertHasPreamble(reader);
    assertEquals("<schema " + "xmlns=\"http://www.alfresco.org/repo/db-schema\" " + "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " + "xsi:schemaLocation=\"http://www.alfresco.org/repo/db-schema db-schema.xsd\" " + "name=\"my_schema\" dbprefix=\"alf_\" version=\"132\" tablecolumnorder=\"false\">", reader.readLine());
    assertEquals("  <objects>", reader.readLine());
    skipUntilEnd("       {table}", reader);
    skipUntilEnd("       {table}", reader);
    skipUntilEnd("       {sequence}", reader, true);
    skipUntilEnd("       {sequence}", reader, true);
    skipUntilEnd("       {sequence}", reader, true);
    assertEquals("  </objects>", reader.readLine());
    assertEquals("</schema>", reader.readLine());
}
Also used : Table(org.alfresco.util.schemacomp.model.Table) Schema(org.alfresco.util.schemacomp.model.Schema) PrimaryKey(org.alfresco.util.schemacomp.model.PrimaryKey) Index(org.alfresco.util.schemacomp.model.Index) Sequence(org.alfresco.util.schemacomp.model.Sequence) ForeignKey(org.alfresco.util.schemacomp.model.ForeignKey) Column(org.alfresco.util.schemacomp.model.Column) BufferedReader(java.io.BufferedReader) StringReader(java.io.StringReader) DbValidator(org.alfresco.util.schemacomp.validator.DbValidator) Test(org.junit.Test)

Example 19 with Column

use of org.alfresco.util.schemacomp.model.Column in project alfresco-repository by Alfresco.

the class DbObjectXMLTransformerTest method transformTable.

@Test
public void transformTable() throws IOException {
    Collection<Column> columns = columns("one VARCHAR2(100)", "two NUMBER(10)");
    PrimaryKey pk = new PrimaryKey(null, "pk_for_my_table", Arrays.asList("id"), Arrays.asList(1));
    Collection<ForeignKey> fks = fkeys(fk("fk_one", "lc", "tt", "tc"), fk("fk_two", "lc", "tt", "tc"));
    Collection<Index> indexes = indexes("index_one col1 col2", "index_two col3 col4");
    Table table = new Table(null, "my_table", columns, pk, fks, indexes);
    transformer.output(table);
    BufferedReader reader = new BufferedReader(new StringReader(writer.toString()));
    dumpOutput();
    assertHasPreamble(reader);
    assertEquals("<table name=\"my_table\">", reader.readLine());
    assertEquals("  <columns>", reader.readLine());
    skipUntilEnd("       {column}", reader);
    skipUntilEnd("       {column}", reader);
    assertEquals("  </columns>", reader.readLine());
    skipUntilEnd("  {primarykey}", reader);
    assertEquals("  <foreignkeys>", reader.readLine());
    skipUntilEnd("       {foreignkey}", reader);
    skipUntilEnd("       {foreignkey}", reader);
    assertEquals("  </foreignkeys>", reader.readLine());
    assertEquals("  <indexes>", reader.readLine());
    skipUntilEnd("       {index}", reader);
    skipUntilEnd("       {index}", reader);
    assertEquals("  </indexes>", reader.readLine());
    assertEquals("</table>", reader.readLine());
}
Also used : Table(org.alfresco.util.schemacomp.model.Table) Column(org.alfresco.util.schemacomp.model.Column) BufferedReader(java.io.BufferedReader) StringReader(java.io.StringReader) PrimaryKey(org.alfresco.util.schemacomp.model.PrimaryKey) Index(org.alfresco.util.schemacomp.model.Index) ForeignKey(org.alfresco.util.schemacomp.model.ForeignKey) Test(org.junit.Test)

Aggregations

Column (org.alfresco.util.schemacomp.model.Column)19 Index (org.alfresco.util.schemacomp.model.Index)11 PrimaryKey (org.alfresco.util.schemacomp.model.PrimaryKey)11 ForeignKey (org.alfresco.util.schemacomp.model.ForeignKey)10 Test (org.junit.Test)8 Table (org.alfresco.util.schemacomp.model.Table)7 BufferedReader (java.io.BufferedReader)5 StringReader (java.io.StringReader)5 Sequence (org.alfresco.util.schemacomp.model.Sequence)5 DbValidator (org.alfresco.util.schemacomp.validator.DbValidator)5 Schema (org.alfresco.util.schemacomp.model.Schema)4 ResultSet (java.sql.ResultSet)1 SQLException (java.sql.SQLException)1 ArrayList (java.util.ArrayList)1 AlfrescoRuntimeException (org.alfresco.error.AlfrescoRuntimeException)1 DbProperty (org.alfresco.util.schemacomp.DbProperty)1 ValidationResult (org.alfresco.util.schemacomp.ValidationResult)1 DbObject (org.alfresco.util.schemacomp.model.DbObject)1 NameValidator (org.alfresco.util.schemacomp.validator.NameValidator)1