|
What this is
Other links
The source code/* * FSTest.java * * Created on July 15, 2002, 3:59 PM */ package FileSystemTest; import java.beans.PropertyVetoException; import java.io.*; import java.util.Iterator; import java.util.Set; import org.openide.nodes.Children; import org.openide.nodes.Node; import org.openide.windows.Mode; import org.openide.windows.TopComponent; import org.openide.windows.WindowManager; import org.openide.windows.Workspace; import org.openide.filesystems.*; import org.openide.loaders.DataObject; import org.openide.loaders.DataObjectNotFoundException; import org.openide.loaders.DataFilter; import org.openide.loaders.RepositoryNodeFactory; import junit.framework.*; import org.netbeans.junit.*; import org.openide.util.Lookup; /** * * @author pz97949 */ public class FSTest extends NbTestCase { File testDir; LocalFileSystem testFS; String TEST_FILE_OBJECT_NAME = "testedfile.java"; static class FailException extends Exception { FailException () { super (); } FailException (String msg) { super(msg); } } static class ErrorException extends Exception { ErrorException() { super(); } ErrorException(String name) { super(name); } } /** Creates a new instance of FSTest */ public FSTest(String testName) { super(testName); } /** * @param args the command line arguments */ public static void main(String[] args) { junit.textui.TestRunner.run(suite()); } /**This suite*/ public static Test suite() { NbTestSuite suite = new NbTestSuite(FSTest.class); return suite; } /** Test if filesystem is hiden or shown in repository * (test is done through nodes of explorer) */ public void testHide () throws IOException { Node node = null; FileObject fo = null; FileSystem fs = null; try { try { // TopManager tm = TopManager.getDefault(); // get node of dataObject fo = getRefFO(); fs = fo.getFileSystem(); fs.setHidden(false); System.out.println(fs); failTest("file system is hidden", fs.isHidden() ==false); DataObject dobj = DataObject.find(fo); node = dobj.getNodeDelegate(); } catch (DataObjectNotFoundException donfe ) { failTest (donfe); } catch (FileStateInvalidException fsie ) { failTest (fsie); } Node repNode = RepositoryNodeFactory.getDefault().repository(DataFilter.ALL); fs.setHidden(false); // System.out.println("status:" + ((fs.isHidden()) ? "hidden" : "shown")); if (findNode(repNode,node,2) == false ) { failTest("filesystem is hidden (must be shown)", false); } fs.setHidden(true); if (findNode(repNode,node,2) == true ) { failTest("filesystem is shown (must be hidden)", false); } fs.setHidden(false); if (findNode(repNode,node,2) == false ) { failTest("filesystem is hidden (must be shown)", false); } } catch (FailException fe) { System.out.println("failed"); } System.out.println("passed"); } /** @return unique fileobject in tested filesystem */ protected FileObject getRefFO() throws java.io.IOException { Repository rep = Repository.getDefault(); FileObject fo = rep.findResource(TEST_FILE_OBJECT_NAME); if (fo == null) { fo = testFS.getRoot().createData(TEST_FILE_OBJECT_NAME) ; } return fo; } /** * */ private void failTest(Exception e) throws FailException { e.printStackTrace (); throw new FailException (); } private void failTest(String str, boolean status) throws FailException { if (status == false ) { System.out.println(str); throw new FailException(); } } private boolean findNode(Node parent, Node child, int depth) { if (parent.getName().equals(child.getName()) ) { return true; } if (depth == 0 ) { return false; } Children children = parent.getChildren(); Node childNodes[] = children.getNodes(); for (int i = 0 ; i < childNodes.length ; i++ ) { if (childNodes[i] == child || findNode(childNodes[i],child, depth - 1 ) ) { return true; } // System.out.println(childNodes[i].getName()); } return false; } private void sleepCurThread(int milis) { try { Thread.currentThread().sleep(milis); } catch (InterruptedException exception) { exception.printStackTrace(); } } /** * test if filesystem is readonly */ public void testReadOnLocalFS() throws IOException { try { FileObject fo = getRefFO(); FileSystem fs = null; try { fs = fo.getFileSystem(); }catch (FileStateInvalidException fse) { fse.printStackTrace(); throw new FailException("fo.getFileSystem() failed"); } if (! (fs instanceof LocalFileSystem)) { throw new ErrorException("tested filesystem is not instance of LocalFileSystem"); } LocalFileSystem lfs =(LocalFileSystem )fs; boolean tmpROValue = lfs.isReadOnly(); // test read only lfs.setReadOnly(true ); FileObject root = fs.getRoot(); // test create file object try { root.createData("MyNewFile.txt"); throw new FailException ("Create FileObject on read only filesystem failed."); } catch (IOException ioe) { System.out.println("Create FileObject on read only filesystem file passed."); } //test create folder try { root.createFolder("MyNewFolder"); throw new FailException ("Create folder on read only filesytem failed."); } catch (IOException ioe) { System.out.println("Create folder on read only filesystem passed"); } // tet write data into file object FileLock lock = null; try { lock = fo.lock(); OutputStream os = fo.getOutputStream(lock); PrintStream ps = new PrintStream(os); ps.println("import ahoj;"); lock.releaseLock(); throw new FailException("write to file object on read only filesystem failed."); } catch (IOException ioe) { System.out.println("write to file object on read only filesystem passed."); } // test on readonly = false // lfs.setReadOnly(false); // test create FileObject try { FileObject fo2 = root.createData("MyNewFile.txt"); fo2.delete(); System.out.println("Create FileObject on read/write filesystem passed."); } catch (IOException ioe) { ioe.printStackTrace(); throw new FSTest.FailException("Create FileObject on read/write filesystem file failed."); } //test create folder try { FileObject folder = root.createFolder("MyNewFolder"); folder.delete(); System.out.println("Create folder on read only filesytem passed."); } catch (IOException ioe) { ioe.printStackTrace(); throw new FSTest.FailException("Create folder on read/write filesystem failed."); } // tet write data into file object lock = fo.lock(); try { OutputStream os = fo.getOutputStream(lock); PrintStream ps = new PrintStream(os); ps.println("import ahoj;"); System.out.println("write to file object on read/write filesystem passed."); lock.releaseLock(); } catch (IOException ioe) { ioe.printStackTrace(); lock.releaseLock(); throw new FSTest.FailException("write to file object on read/write filesystem failed."); } } catch (FailException fe) { fe.printStackTrace(); assertTrue(fe.getMessage(), false); } catch (ErrorException ee) { ee.printStackTrace(); assertTrue(ee.getMessage(),false); } } protected void setUp() throws IOException, PropertyVetoException { testDir = new File(File.createTempFile("ssadfasdfsadf","6346436").getParentFile(),"fgsagkjasdhgksa"); // System.out.println("testDir = " + testDir ); if (testDir.mkdir() == false && testDir.isDirectory() == false) { throw new IOException ("Error, temporary directory is not created"); } testFS = new LocalFileSystem(); testFS.setRootDirectory(testDir); FileSystem [] fss = Repository.getDefault().toArray(); for (int i = 0 ; i < fss.length ; i++ ) { FileSystem fs = fss[i]; if (fs instanceof LocalFileSystem && ((LocalFileSystem) fs).getRootDirectory().equals(testDir)) { // filesystem is allready mounted testFS = (LocalFileSystem) fs; return; } } FileObject root = testFS.getRoot(); Repository.getDefault().addFileSystem(testFS); } } |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.