package org.zend.sdk.test.sdkcli.update.parser; import static org.junit.Assert.assertNotNull; import java.io.ByteArrayInputStream; import java.io.File; import java.io.IOException; import org.junit.Test; import org.mockito.Mockito; import org.zend.sdk.test.sdkcli.update.AbstractXMLTest; import org.zend.sdkcli.update.UpdateException; import org.zend.sdkcli.update.parser.Delta; import org.zend.sdkcli.update.parser.DeltaParser; public class TestDelta extends AbstractXMLTest { private static final String UPDATE_FOLDER = "src/config/update/"; @Test public void testExecuteDelta() throws UpdateException, IOException { String xmlString = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<delta file=\"package.zip\" size=\"833\">" + "<add file=\"toCopy\" dest=\"a/b/c\"/>" + "<add file=\"folder/\" dest=\"a/b\"/>" + "<remove file=\"toRemove\"/>" + "</delta>"; DeltaParser parser = new DeltaParser(new ByteArrayInputStream( xmlString.getBytes())); assertNotNull(parser); assertNotNull(parser.getDelta()); Delta delta = Mockito.spy(parser.getDelta()); Mockito.doReturn( "file:///" + new File(UPDATE_FOLDER + "package.zip") .getAbsolutePath()).when(delta) .getZipLocation(); copyFile(new File(UPDATE_FOLDER + "package.zip"), new File(delta.getTemp(), "package.zip")); createFile(new File(tmp, "toRemove")); assertFileExists(tmp, "toRemove"); delta.execute(tmp); assertFileNotExists(tmp, "toRemove"); assertFileExists(tmp, "a/b/c/toCopy"); assertFileExists(tmp, "a/b/folder/innerFile"); assertFileExists(tmp, "a/b/folder/innerFolder/nextFile"); } }