boolean threwException = false;
/**
* Test duplicate mappingName
*/
HashSet mappings = new HashSet();
TypeMapping duplicate = new TypeMapping();
duplicate.setMappingName(dtoMappingName.getMappingName());
duplicate.setSourceDataStore(dtoMappingName.getSourceDataStore());
duplicate.setSourceTypeName(dtoMappingName.getSourceTypeName());
duplicate.setTargetElementName(dtoMappingName.getTargetElementName());
mappings.add(dtoMappingName);
mappings.add(duplicate);
config.setTypeMappings(mappings);
try {
AppSchemaDataAccess da = new AppSchemaDataAccess(AppSchemaDataAccessConfigurator
.buildMappings(config));
} catch (DataSourceException e) {
assertTrue(e
.getMessage()
.startsWith(
"Duplicate mappingName or targetElement across FeatureTypeMapping instances detected."));
threwException = true;
}
assertTrue(threwException);
threwException = false;
/**
* Test when targetElement duplicates a mappingName
*/
duplicate = new TypeMapping();
duplicate.setMappingName(dtoNoMappingName.getTargetElementName());
duplicate.setSourceDataStore(dtoNoMappingName.getSourceDataStore());
duplicate.setSourceTypeName(dtoNoMappingName.getSourceTypeName());
duplicate.setTargetElementName(dtoNoMappingName.getTargetElementName());
mappings.clear();
mappings.add(duplicate);
mappings.add(dtoNoMappingName);
config.setTypeMappings(mappings);
// make sure the above operation didn't fail
assertTrue(config.getTypeMappings().containsAll(mappings));
try {
AppSchemaDataAccess da = new AppSchemaDataAccess(AppSchemaDataAccessConfigurator
.buildMappings(config));
} catch (DataSourceException e) {
assertTrue(e
.getMessage()
.startsWith(
"Duplicate mappingName or targetElement across FeatureTypeMapping instances detected."));
threwException = true;
}
assertTrue(threwException);
threwException = false;
/**
* Test duplicate targetElement, when both don't have mappingName
*/
duplicate = new TypeMapping();
duplicate.setSourceDataStore(dtoNoMappingName.getSourceDataStore());
duplicate.setSourceTypeName(dtoNoMappingName.getSourceTypeName());
duplicate.setTargetElementName(dtoNoMappingName.getTargetElementName());
mappings.clear();
mappings.add(duplicate);
mappings.add(dtoNoMappingName);
config.setTypeMappings(mappings);
assertTrue(config.getTypeMappings().containsAll(mappings));