package org.codehaus.plexus.archiver; import java.io.IOException; import junit.framework.TestCase; public class AbstractArchiverTest extends TestCase { private AbstractArchiver archiver; protected void setUp() throws Exception { super.setUp(); this.archiver = new AbstractArchiver() { protected String getArchiveType() { throw new UnsupportedOperationException(); } protected void execute() throws ArchiverException, IOException { throw new UnsupportedOperationException(); } protected void close() throws IOException { throw new UnsupportedOperationException(); } }; } public void testModesAndOverridesAreUnsetByDefault() { assertEquals(-1, archiver.getDefaultFileMode()); assertEquals(-1, archiver.getOverrideFileMode()); assertEquals(Archiver.DEFAULT_DIR_MODE, archiver.getDefaultDirectoryMode()); assertEquals(-1, archiver.getOverrideDirectoryMode()); } public void testWhenUnsetModeUsesDefault() { assertEquals(Archiver.DEFAULT_FILE_MODE, archiver.getFileMode()); assertEquals(Archiver.DEFAULT_DIR_MODE, archiver.getDirectoryMode()); } public void testSetModeIsUsedWithFlagsForType() { archiver.setFileMode(0400); assertEquals(0100400, archiver.getFileMode()); archiver.setDirectoryMode(0600); assertEquals(040600, archiver.getDirectoryMode()); } public void testSetDefaultIncludesFlagsForType() { archiver.setDefaultFileMode(0400); assertEquals(0100400, archiver.getDefaultFileMode()); archiver.setDefaultDirectoryMode(0600); assertEquals(040600, archiver.getDefaultDirectoryMode()); } public void testDefaultIsUsedWhenModeIsUnset() { archiver.setDefaultFileMode(0400); assertEquals(0100400, archiver.getFileMode()); archiver.setDefaultDirectoryMode(0600); assertEquals(040600, archiver.getDirectoryMode()); } public void testOverridesCanBeReset() { archiver.setFileMode(0400); archiver.setFileMode(-1); assertEquals(-1, archiver.getOverrideFileMode()); archiver.setDirectoryMode(0600); archiver.setDirectoryMode(-1); assertEquals(-1, archiver.getOverrideDirectoryMode()); } }