@Test
  public void readAndSave_deleteAndRenameTempFileTest() throws MalformedURLException, IOException {
    final File cache = folder.newFile(); // cache file does not exist

    // Assert.assertTrue(temp.length() == 0); // does not work on any system
    Assert.assertTrue(FileUtil.isEmpty(cache, DataStore.DEFAULT_CHARSET));

    // file will be created
    CachingXmlDataStore.readAndSave(DATA_URL, cache, CHARSET);
    Assert.assertTrue(cache.length() >= 722015);

    // file will be overwritten (delete and rename)
    CachingXmlDataStore.readAndSave(DATA_URL, cache, CHARSET);
    Assert.assertTrue(cache.length() >= 722015);
  }
  @Test
  public void readAndSave_renamingFailsTest() throws MalformedURLException, IOException {
    final File cache = folder.newFile(); // cache file does not exist
    final IMockBuilder<File> builder = EasyMock.createMockBuilder(File.class);
    builder.withConstructor(URI.class);
    builder.withArgs(cache.toURI());
    final File fileMock = builder.addMockedMethod("renameTo", File.class).createMock();
    EasyMock.expect(fileMock.renameTo(EasyMock.anyObject(File.class))).andReturn(false).anyTimes();
    EasyMock.replay(fileMock);

    // Assert.assertTrue(temp.length() == 0); // does not work on any system
    Assert.assertTrue(FileUtil.isEmpty(fileMock, DataStore.DEFAULT_CHARSET));

    // file will be created
    CachingXmlDataStore.readAndSave(DATA_URL, fileMock, CHARSET);
    Assert.assertTrue(fileMock.length() >= 722015);

    // file will be overwritten (delete and rename)
    CachingXmlDataStore.readAndSave(DATA_URL, fileMock, CHARSET);
    Assert.assertTrue(fileMock.length() >= 722015);
  }