Ignore:
Timestamp:
02/04/10 21:56:24 (2 years ago)
Author:
kasper
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • MetadataBeans/trunk/src/test/java/org/eobjects/metamodel/XmlDataContextStrategyTest.java

    r886 r887  
    2727 
    2828import org.apache.commons.lang.ArrayUtils; 
    29 import org.eobjects.metamodel.DataContext; 
    30 import org.eobjects.metamodel.IDataContextStrategy; 
    31 import org.eobjects.metamodel.XmlDataContextStrategy; 
    3229import org.eobjects.metamodel.data.DataSet; 
    3330import org.eobjects.metamodel.query.FromItem; 
     
    4037import org.w3c.dom.Element; 
    4138 
    42  
    4339public class XmlDataContextStrategyTest extends MetaModelTestCase { 
    4440 
     
    4642                // Retrieve the eobjects.org news rss 
    4743                URL url = new URL("http://eobjects.org/trac/blog?format=rss"); 
    48                  
     44 
    4945                try { 
    50                         XmlDataContextStrategy strategy = new XmlDataContextStrategy(url, true); 
     46                        XmlDataContextStrategy strategy = new XmlDataContextStrategy(url, 
     47                                        true); 
    5148                        DataContext dataContext = new DataContext(strategy); 
    52                          
     49 
    5350                        Schema schema = dataContext.getDefaultSchema(); 
    5451                        assertEquals("/blog?format=rss", schema.getName()); 
    55                          
     52 
    5653                        assertEquals( 
    5754                                        "{rss,channel_title,channel_link,channel_description,channel_language," 
    58                                         + "channel_generator,channel_image_title,channel_image_url," 
    59                                         + "channel_image_link,channel_item,channel_item_guid,channel_item_category}", 
     55                                                        + "channel_generator,channel_image_title,channel_image_url," 
     56                                                        + "channel_image_link,channel_item,channel_item_guid,channel_item_category}", 
    6057                                        ArrayUtils.toString(schema.getTableNames())); 
    6158                } catch (IllegalArgumentException e) { 
     
    7673 
    7774                Schema schema = strategy.getSchemaByName("xml_input_eobjects.xml"); 
    78                 assertEquals("Schema[name=xml_input_eobjects.xml]", schema.toString()); 
     75                assertEquals("MutableSchema[name=xml_input_eobjects.xml]", schema 
     76                                .toString()); 
    7977 
    8078                Table[] tables = schema.getTables(); 
    8179                assertEquals(5, schema.getTableCount()); 
    8280                assertEquals( 
    83                                 "{Table[name=eobjects.dk,type=TABLE,remarks=<null>]," 
    84                                                 + "Table[name=contributors_person,type=TABLE,remarks=<null>]," 
    85                                                 + "Table[name=contributors_person_name,type=TABLE,remarks=<null>]," 
    86                                                 + "Table[name=contributors_person_address,type=TABLE,remarks=<null>]," 
    87                                                 + "Table[name=projects_project,type=TABLE,remarks=<null>]}", 
     81                                "{MutableTable[name=eobjects.org,type=TABLE,remarks=<null>]," 
     82                                                + "MutableTable[name=contributors_person,type=TABLE,remarks=<null>]," 
     83                                                + "MutableTable[name=contributors_person_name,type=TABLE,remarks=<null>]," 
     84                                                + "MutableTable[name=contributors_person_address,type=TABLE,remarks=<null>]," 
     85                                                + "MutableTable[name=projects_project,type=TABLE,remarks=<null>]}", 
    8886                                ArrayUtils.toString(tables)); 
    8987 
    90                 Table table = schema.getTableByName("eobjects.dk"); 
     88                Table table = schema.getTableByName("eobjects.org"); 
    9189                assertEquals(2, table.getColumnCount()); 
    9290                assertEquals( 
    93                                 "{Column[name=id,columnNumber=0,type=INTEGER,nullable=false,indexed=true,nativeType=Auto-generated primary key,columnSize=<null>]," 
    94                                                 + "Column[name=website,columnNumber=2,type=VARCHAR,nullable=true,indexed=false,nativeType=XML Attribute,columnSize=<null>]}", 
     91                                "{MutableColumn[name=eobjects.org_mdbeans_surrogate_id,columnNumber=0,type=INTEGER,nullable=false,indexed=true,nativeType=Auto-generated primary key,columnSize=<null>]," 
     92                                                + "MutableColumn[name=website,columnNumber=2,type=VARCHAR,nullable=true,indexed=false,nativeType=XML Attribute,columnSize=<null>]}", 
    9593                                ArrayUtils.toString(table.getColumns())); 
    9694 
     
    9896                assertEquals(1, table.getColumnCount()); 
    9997                assertEquals( 
    100                                 "{Column[name=id,columnNumber=0,type=INTEGER,nullable=false,indexed=true,nativeType=Auto-generated primary key,columnSize=<null>]}", 
     98                                "{MutableColumn[name=contributors_person_mdbeans_surrogate_id,columnNumber=0,type=INTEGER,nullable=false,indexed=true,nativeType=Auto-generated primary key,columnSize=<null>]}", 
    10199                                ArrayUtils.toString(table.getColumns())); 
    102100 
     
    104102                assertEquals(3, table.getColumnCount()); 
    105103                assertEquals( 
    106                                 "{Column[name=id,columnNumber=0,type=INTEGER,nullable=false,indexed=true,nativeType=Auto-generated primary key,columnSize=<null>]," 
    107                                                 + "Column[name=contributors_person_id,columnNumber=1,type=INTEGER,nullable=false,indexed=false,nativeType=Auto-generated foreign key,columnSize=<null>]," 
    108                                                 + "Column[name=name,columnNumber=2,type=VARCHAR,nullable=true,indexed=false,nativeType=XML Text,columnSize=<null>]}", 
    109                                 ArrayUtils.toString(table.getColumns())); 
    110                 assertEquals( 
    111                                 "{Relationship[primaryTable=contributors_person,primaryColumns={id}," 
    112                                                 + "foreignTable=contributors_person_name,foreignColumns={contributors_person_id}]}", 
     104                                "{MutableColumn[name=contributors_person_name_mdbeans_surrogate_id,columnNumber=0,type=INTEGER,nullable=false,indexed=true,nativeType=Auto-generated primary key,columnSize=<null>]," 
     105                                                + "MutableColumn[name=contributors_person_id,columnNumber=1,type=INTEGER,nullable=false,indexed=false,nativeType=Auto-generated foreign key,columnSize=<null>]," 
     106                                                + "MutableColumn[name=name,columnNumber=2,type=VARCHAR,nullable=true,indexed=false,nativeType=XML Text,columnSize=<null>]}", 
     107                                ArrayUtils.toString(table.getColumns())); 
     108                assertEquals( 
     109                                "{ImmutableRelationship[primaryTable=contributors_person,primaryColumns={contributors_person_mdbeans_surrogate_id},foreignTable=contributors_person_name,foreignColumns={contributors_person_id}]}", 
    113110                                ArrayUtils.toString(table.getRelationships())); 
    114111 
     
    116113                assertEquals(3, table.getColumnCount()); 
    117114                assertEquals( 
    118                                 "{Column[name=id,columnNumber=0,type=INTEGER,nullable=false,indexed=true,nativeType=Auto-generated primary key,columnSize=<null>]," 
    119                                                 + "Column[name=contributors_person_id,columnNumber=1,type=INTEGER,nullable=false,indexed=false,nativeType=Auto-generated foreign key,columnSize=<null>]," 
    120                                                 + "Column[name=address,columnNumber=2,type=VARCHAR,nullable=true,indexed=false,nativeType=XML Text,columnSize=<null>]}", 
    121                                 ArrayUtils.toString(table.getColumns())); 
    122                 assertEquals( 
    123                                 "{Relationship[primaryTable=contributors_person,primaryColumns={id}," 
     115                                "{MutableColumn[name=contributors_person_address_mdbeans_surrogate_id,columnNumber=0,type=INTEGER,nullable=false,indexed=true,nativeType=Auto-generated primary key,columnSize=<null>]," 
     116                                                + "MutableColumn[name=contributors_person_id,columnNumber=1,type=INTEGER,nullable=false,indexed=false,nativeType=Auto-generated foreign key,columnSize=<null>]," 
     117                                                + "MutableColumn[name=address,columnNumber=2,type=VARCHAR,nullable=true,indexed=false,nativeType=XML Text,columnSize=<null>]}", 
     118                                ArrayUtils.toString(table.getColumns())); 
     119                assertEquals( 
     120                                "{ImmutableRelationship[primaryTable=contributors_person,primaryColumns={contributors_person_mdbeans_surrogate_id}," 
    124121                                                + "foreignTable=contributors_person_address,foreignColumns={contributors_person_id}]}", 
    125122                                ArrayUtils.toString(table.getRelationships())); 
     
    128125                assertEquals(3, table.getColumnCount()); 
    129126                assertEquals( 
    130                                 "{Column[name=id,columnNumber=0,type=INTEGER,nullable=false,indexed=true,nativeType=Auto-generated primary key,columnSize=<null>]," 
    131                                                 + "Column[name=project,columnNumber=1,type=VARCHAR,nullable=true,indexed=false,nativeType=XML Text,columnSize=<null>]," 
    132                                                 + "Column[name=name,columnNumber=2,type=VARCHAR,nullable=true,indexed=false,nativeType=XML Attribute,columnSize=<null>]}", 
     127                                "{MutableColumn[name=projects_project_mdbeans_surrogate_id,columnNumber=0,type=INTEGER,nullable=false,indexed=true,nativeType=Auto-generated primary key,columnSize=<null>]," 
     128                                                + "MutableColumn[name=project,columnNumber=1,type=VARCHAR,nullable=true,indexed=false,nativeType=XML Text,columnSize=<null>]," 
     129                                                + "MutableColumn[name=name,columnNumber=2,type=VARCHAR,nullable=true,indexed=false,nativeType=XML Attribute,columnSize=<null>]}", 
    133130                                ArrayUtils.toString(table.getColumns())); 
    134131 
     
    137134                assertEquals(2, table.getColumnCount()); 
    138135                assertEquals( 
    139                                 "{Column[name=id,columnNumber=0,type=INTEGER,nullable=false,indexed=true,nativeType=Auto-generated primary key,columnSize=<null>]," 
    140                                                 + "Column[name=name,columnNumber=1,type=VARCHAR,nullable=true,indexed=false,nativeType=XML Text,columnSize=<null>]}", 
     136                                "{MutableColumn[name=contributors_person_mdbeans_surrogate_id,columnNumber=0,type=INTEGER,nullable=false,indexed=true,nativeType=Auto-generated primary key,columnSize=<null>]," 
     137                                                + "MutableColumn[name=name,columnNumber=1,type=VARCHAR,nullable=true,indexed=false,nativeType=XML Text,columnSize=<null>]}", 
    141138                                ArrayUtils.toString(table.getColumns())); 
    142139        } 
     
    150147                Query q = new Query().select(table.getColumns()).from(table, "p"); 
    151148                assertEquals( 
    152                                 "SELECT p.id, p.project, p.name FROM xml_input_eobjects.xml.projects_project p", 
     149                                "SELECT p.projects_project_mdbeans_surrogate_id, p.project, p.name FROM xml_input_eobjects.xml.projects_project p", 
    153150                                q.toString()); 
    154151                DataSet data = dc.executeQuery(q); 
     
    177174 
    178175                assertEquals( 
    179                                 "SELECT contributors_person.id, contributors_person_address.id, " 
     176                                "SELECT contributors_person.contributors_person_mdbeans_surrogate_id, contributors_person_address.contributors_person_address_mdbeans_surrogate_id, " 
    180177                                                + "contributors_person_address.contributors_person_id, contributors_person_address.address " 
    181178                                                + "FROM xml_input_eobjects.xml.contributors_person INNER JOIN xml_input_eobjects.xml.contributors_person_address " 
    182                                                 + "ON contributors_person.id = contributors_person_address.contributors_person_id", 
     179                                                + "ON contributors_person.contributors_person_mdbeans_surrogate_id = contributors_person_address.contributors_person_id", 
    183180                                q.toString()); 
    184181 
     
    227224                                "foobarSchema", document, true); 
    228225                Schema schema = strategy.getSchemaByName("foobarSchema"); 
    229                 assertEquals("Schema[name=foobarSchema]", schema.toString()); 
    230                 assertEquals("{Table[name=child,type=TABLE,remarks=<null>]}", 
     226                assertEquals("MutableSchema[name=foobarSchema]", schema.toString()); 
     227                assertEquals("{MutableTable[name=child,type=TABLE,remarks=<null>]}", 
    231228                                ArrayUtils.toString(schema.getTables())); 
    232229                Table table = schema.getTables()[0]; 
    233230                assertEquals( 
    234                                 "{Column[name=id,columnNumber=0,type=INTEGER,nullable=false,indexed=true,nativeType=Auto-generated primary key,columnSize=<null>]," 
    235                                                 + "Column[name=child,columnNumber=1,type=VARCHAR,nullable=true,indexed=false,nativeType=XML Text,columnSize=<null>]}", 
     231                                "{MutableColumn[name=child_mdbeans_surrogate_id,columnNumber=0,type=INTEGER,nullable=false,indexed=true,nativeType=Auto-generated primary key,columnSize=<null>]," 
     232                                                + "MutableColumn[name=child,columnNumber=1,type=VARCHAR,nullable=true,indexed=false,nativeType=XML Text,columnSize=<null>]}", 
    236233                                ArrayUtils.toString(table.getColumns())); 
    237234        } 
     
    244241                Schema schema = dc.getDefaultSchema(); 
    245242                assertEquals( 
    246                                 "{Table[name=dependency,type=TABLE,remarks=<null>]," 
    247                                                 + "Table[name=dependency_groupId,type=TABLE,remarks=<null>]," 
    248                                                 + "Table[name=dependency_artifactId,type=TABLE,remarks=<null>]," 
    249                                                 + "Table[name=dependency_version,type=TABLE,remarks=<null>]," 
    250                                                 + "Table[name=dependency_scope,type=TABLE,remarks=<null>]}", 
     243                                "{MutableTable[name=dependency,type=TABLE,remarks=<null>]," 
     244                                                + "MutableTable[name=dependency_groupId,type=TABLE,remarks=<null>]," 
     245                                                + "MutableTable[name=dependency_artifactId,type=TABLE,remarks=<null>]," 
     246                                                + "MutableTable[name=dependency_version,type=TABLE,remarks=<null>]," 
     247                                                + "MutableTable[name=dependency_scope,type=TABLE,remarks=<null>]}", 
    251248                                ArrayUtils.toString(schema.getTables())); 
    252249                Table dependencyTable = schema.getTableByName("dependency"); 
    253250                assertEquals( 
    254                                 "{Column[name=id,columnNumber=0,type=INTEGER,nullable=false,indexed=true,nativeType=Auto-generated primary key,columnSize=<null>]}", 
     251                                "{MutableColumn[name=dependency_mdbeans_surrogate_id,columnNumber=0,type=INTEGER,nullable=false,indexed=true,nativeType=Auto-generated primary key,columnSize=<null>]}", 
    255252                                ArrayUtils.toString(dependencyTable.getColumns())); 
    256253                List<Object[]> dependencyData = strategy.materializeMainSchemaTable( 
     
    264261                                .getRelationships()[0]; 
    265262                assertEquals( 
    266                                 "Relationship[primaryTable=dependency,primaryColumns={id},foreignTable=dependency_groupId,foreignColumns={dependency_id}]", 
     263                                "ImmutableRelationship[primaryTable=dependency,primaryColumns={dependency_mdbeans_surrogate_id},foreignTable=dependency_groupId,foreignColumns={dependency_id}]", 
    267264                                relationship.toString()); 
    268265 
     
    270267 
    271268                assertEquals( 
    272                                 "{Table[name=dependency,type=TABLE,remarks=<null>]," 
    273                                                 + "Table[name=dependency_artifactId,type=TABLE,remarks=<null>]," 
    274                                                 + "Table[name=dependency_version,type=TABLE,remarks=<null>]," 
    275                                                 + "Table[name=dependency_scope,type=TABLE,remarks=<null>]}", 
     269                                "{MutableTable[name=dependency,type=TABLE,remarks=<null>]," 
     270                                                + "MutableTable[name=dependency_artifactId,type=TABLE,remarks=<null>]," 
     271                                                + "MutableTable[name=dependency_version,type=TABLE,remarks=<null>]," 
     272                                                + "MutableTable[name=dependency_scope,type=TABLE,remarks=<null>]}", 
    276273                                ArrayUtils.toString(schema.getTables())); 
    277274 
    278275                assertEquals( 
    279                                 "{Column[name=id,columnNumber=0,type=INTEGER,nullable=false,indexed=true,nativeType=Auto-generated primary key,columnSize=<null>]," 
    280                                                 + "Column[name=groupId,columnNumber=1,type=VARCHAR,nullable=true,indexed=false,nativeType=XML Text,columnSize=<null>]}", 
     276                                "{MutableColumn[name=dependency_mdbeans_surrogate_id,columnNumber=0,type=INTEGER,nullable=false,indexed=true,nativeType=Auto-generated primary key,columnSize=<null>]," 
     277                                                + "MutableColumn[name=groupId,columnNumber=1,type=VARCHAR,nullable=true,indexed=false,nativeType=XML Text,columnSize=<null>]}", 
    281278                                ArrayUtils.toString(dependencyTable.getColumns())); 
    282279 
     
    290287                strategy.autoFlattenTables(); 
    291288 
    292                 assertEquals("{Table[name=dependency,type=TABLE,remarks=<null>]}", 
     289                assertEquals( 
     290                                "{MutableTable[name=dependency,type=TABLE,remarks=<null>]}", 
    293291                                ArrayUtils.toString(schema.getTables())); 
    294292                assertEquals( 
    295                                 "{Column[name=id,columnNumber=0,type=INTEGER,nullable=false,indexed=true,nativeType=Auto-generated primary key,columnSize=<null>]," 
    296                                                 + "Column[name=groupId,columnNumber=1,type=VARCHAR,nullable=true,indexed=false,nativeType=XML Text,columnSize=<null>]," 
    297                                                 + "Column[name=artifactId,columnNumber=2,type=VARCHAR,nullable=true,indexed=false,nativeType=XML Text,columnSize=<null>]," 
    298                                                 + "Column[name=version,columnNumber=3,type=VARCHAR,nullable=true,indexed=false,nativeType=XML Text,columnSize=<null>]," 
    299                                                 + "Column[name=scope,columnNumber=4,type=VARCHAR,nullable=true,indexed=false,nativeType=XML Text,columnSize=<null>]}", 
     293                                "{MutableColumn[name=dependency_mdbeans_surrogate_id,columnNumber=0,type=INTEGER,nullable=false,indexed=true,nativeType=Auto-generated primary key,columnSize=<null>]," 
     294                                                + "MutableColumn[name=groupId,columnNumber=1,type=VARCHAR,nullable=true,indexed=false,nativeType=XML Text,columnSize=<null>]," 
     295                                                + "MutableColumn[name=artifactId,columnNumber=2,type=VARCHAR,nullable=true,indexed=false,nativeType=XML Text,columnSize=<null>]," 
     296                                                + "MutableColumn[name=version,columnNumber=3,type=VARCHAR,nullable=true,indexed=false,nativeType=XML Text,columnSize=<null>]," 
     297                                                + "MutableColumn[name=scope,columnNumber=4,type=VARCHAR,nullable=true,indexed=false,nativeType=XML Text,columnSize=<null>]}", 
    300298                                ArrayUtils.toString(dependencyTable.getColumns())); 
    301299 
     
    317315                Table table = schema.getTableByName("dependencies_dependency"); 
    318316                assertEquals( 
    319                                 "{Column[name=id,columnNumber=0,type=INTEGER,nullable=false,indexed=true,nativeType=Auto-generated primary key,columnSize=<null>]," 
    320                                                 + "Column[name=groupId,columnNumber=1,type=VARCHAR,nullable=true,indexed=false,nativeType=XML Text,columnSize=<null>]," 
    321                                                 + "Column[name=artifactId,columnNumber=2,type=VARCHAR,nullable=true,indexed=false,nativeType=XML Text,columnSize=<null>]," 
    322                                                 + "Column[name=version,columnNumber=3,type=VARCHAR,nullable=true,indexed=false,nativeType=XML Text,columnSize=<null>]," 
    323                                                 + "Column[name=scope,columnNumber=4,type=VARCHAR,nullable=true,indexed=false,nativeType=XML Text,columnSize=<null>]}", 
     317                                "{MutableColumn[name=dependencies_dependency_mdbeans_surrogate_id,columnNumber=0,type=INTEGER,nullable=false,indexed=true,nativeType=Auto-generated primary key,columnSize=<null>]," 
     318                                                + "MutableColumn[name=groupId,columnNumber=1,type=VARCHAR,nullable=true,indexed=false,nativeType=XML Text,columnSize=<null>]," 
     319                                                + "MutableColumn[name=artifactId,columnNumber=2,type=VARCHAR,nullable=true,indexed=false,nativeType=XML Text,columnSize=<null>]," 
     320                                                + "MutableColumn[name=version,columnNumber=3,type=VARCHAR,nullable=true,indexed=false,nativeType=XML Text,columnSize=<null>]," 
     321                                                + "MutableColumn[name=scope,columnNumber=4,type=VARCHAR,nullable=true,indexed=false,nativeType=XML Text,columnSize=<null>]}", 
    324322                                ArrayUtils.toString(table.getColumns())); 
    325323 
     
    327325 
    328326                assertEquals( 
    329                                 "{Column[name=id,columnNumber=0,type=INTEGER,nullable=false,indexed=true,nativeType=Auto-generated primary key,columnSize=<null>]," 
    330                                                 + "Column[name=groupId,columnNumber=1,type=VARCHAR,nullable=false,indexed=false,nativeType=Text,columnSize=<null>]," 
    331                                                 + "Column[name=artifactId,columnNumber=2,type=VARCHAR,nullable=false,indexed=false,nativeType=Text,columnSize=<null>]," 
    332                                                 + "Column[name=version,columnNumber=3,type=VARCHAR,nullable=false,indexed=false,nativeType=Text,columnSize=<null>]," 
    333                                                 + "Column[name=scope,columnNumber=4,type=VARCHAR,nullable=true,indexed=false,nativeType=Text,columnSize=<null>]}", 
     327                                "{MutableColumn[name=dependencies_dependency_mdbeans_surrogate_id,columnNumber=0,type=INTEGER,nullable=false,indexed=true,nativeType=Auto-generated primary key,columnSize=<null>]," 
     328                                                + "MutableColumn[name=groupId,columnNumber=1,type=VARCHAR,nullable=false,indexed=false,nativeType=Text,columnSize=<null>]," 
     329                                                + "MutableColumn[name=artifactId,columnNumber=2,type=VARCHAR,nullable=false,indexed=false,nativeType=Text,columnSize=<null>]," 
     330                                                + "MutableColumn[name=version,columnNumber=3,type=VARCHAR,nullable=false,indexed=false,nativeType=Text,columnSize=<null>]," 
     331                                                + "MutableColumn[name=scope,columnNumber=4,type=VARCHAR,nullable=true,indexed=false,nativeType=Text,columnSize=<null>]}", 
    334332                                ArrayUtils.toString(table.getColumns())); 
    335333 
    336334                table = schema.getTableByName("inceptionYear"); 
    337335                assertEquals( 
    338                                 "{Column[name=id,columnNumber=0,type=INTEGER,nullable=false,indexed=true,nativeType=Auto-generated primary key,columnSize=<null>]," 
    339                                                 + "Column[name=inceptionYear,columnNumber=1,type=INTEGER,nullable=false,indexed=false,nativeType=Text transformed to integer,columnSize=<null>]}", 
     336                                "{MutableColumn[name=inceptionYear_mdbeans_surrogate_id,columnNumber=0,type=INTEGER,nullable=false,indexed=true,nativeType=Auto-generated primary key,columnSize=<null>]," 
     337                                                + "MutableColumn[name=inceptionYear,columnNumber=1,type=INTEGER,nullable=false,indexed=false,nativeType=Text transformed to integer,columnSize=<null>]}", 
    340338                                ArrayUtils.toString(table.getColumns())); 
    341339 
     
    362360                                ArrayUtils.toString(schema.getTableNames())); 
    363361                assertEquals( 
    364                                 "{id,OSType,lastStateChange,name,uuid,enabled,enabled,RAMSize,enabled,enabled,mode,value," 
     362                                "{Machine_mdbeans_surrogate_id,OSType,lastStateChange,name,uuid,enabled,enabled,RAMSize,enabled,enabled,mode,value," 
    365363                                                + "enabled,type,enabled,mode}", ArrayUtils 
    366364                                                .toString(schema.getTableByName("Machine") 
Note: See TracChangeset for help on using the changeset viewer.