OverrideRepository or = buildOverrideRepository();
or.addResource(FOREIGN_KEY_TEST_XML);
ReverseEngineeringStrategy repository = or.getReverseEngineeringStrategy(new DefaultReverseEngineeringStrategy());
JDBCMetaDataConfiguration localCfg = new JDBCMetaDataConfiguration();
localCfg.setReverseEngineeringStrategy(repository);
localCfg.readFromJDBC();
PersistentClass project = localCfg.getClassMapping("Project");
assertNotNull(project.getProperty("worksOns"));
assertPropertyNotExists(project, "employee", "should be removed by reveng.xml");
Property property = project.getProperty("teamLead");
assertNotNull(property);
assertTrue(property.getValue() instanceof SimpleValue);
assertEquals(3, project.getPropertyClosureSpan());
assertEquals("projectId", project.getIdentifierProperty().getName());
PersistentClass employee = localCfg.getClassMapping("Employee");
assertNotNull(employee.getProperty("worksOns"));
assertNotNull("property should be renamed by reveng.xml", employee.getProperty("manager"));
assertPropertyNotExists( employee, "employees", "set should be excluded by reveng.xml" );
Property setProperty = employee.getProperty("managedProjects");
assertNotNull("should be renamed by reveng.xml", setProperty);
assertEquals("delete, update", setProperty.getCascade());
assertEquals(4, employee.getPropertyClosureSpan());
assertEquals("id", employee.getIdentifierProperty().getName());
PersistentClass worksOn = localCfg.getClassMapping("WorksOn");
assertNotNull(worksOn.getProperty("project"));
assertNotNull(worksOn.getProperty("employee"));
assertEquals(4, worksOn.getPropertyClosureSpan());
assertEquals("id", worksOn.getIdentifierProperty().getName());