assertTrue(map2File.length() > 0);
}
public void testSaveAs_RecoverFromSaveError() throws Exception {
FileProjectSaver saver = new FileProjectSaver() {
@Override
void saveToTempFile(SaveUnit unit, PrintWriter printWriter) {
throw new CayenneRuntimeException("Test Exception");
}
};
Module testModule = new Module() {
public void configure(Binder binder) {
binder.bind(DataMapLoader.class).to(XMLDataMapLoader.class);
binder.bind(DataChannelDescriptorLoader.class).to(
XMLDataChannelDescriptorLoader.class);
binder.bind(ProjectLoader.class).to(DataChannelProjectLoader.class);
binder.bind(ConfigurationNameMapper.class).to(
DefaultConfigurationNameMapper.class);
}
};
Injector injector = DIBootstrap.createInjector(testModule);
injector.injectMembers(saver);
String testConfigName = "PROJECT2";
String baseUrl = getClass().getPackage().getName().replace('.', '/');
URL url = getClass().getClassLoader().getResource(
baseUrl + "/cayenne-" + testConfigName + ".xml");
Resource source = new URLResource(url);
Project project = injector.getInstance(ProjectLoader.class).loadProject(source);
File outFile = setupTestDirectory("testSaveAs_RecoverFromSaveError");
assertEquals(0, outFile.list().length);
try {
saver.saveAs(project, new URLResource(outFile.toURL()));
fail("No exception was thrown..");
}
catch (CayenneRuntimeException e) {
// expected