@Test public void testNestedRelativePath() { FileSystem fs = new MemoryFileSystem(); Folder f1 = fs.getFolder( "src/main/java" ); Folder f2 = fs.getFolder( "src/main/java/org" ); f1.create(); f2.create(); assertEquals( "org", f2.getPath().toRelativePortableString( f1.getPath() ) ); fs = new MemoryFileSystem(); f1 = fs.getFolder( "src/main/java" ); f2 = fs.getFolder( "src/main/java/org/drools/reteoo" ); f1.create(); f2.create(); assertEquals( "org/drools/reteoo", f2.getPath().toRelativePortableString( f1.getPath() ) ); }
@Test public void testNestedRelativeDifferentPath() { FileSystem fs = new MemoryFileSystem(); Folder f1 = fs.getFolder( "src/main/java" ); Folder f2 = fs.getFolder( "src/main/resources" ); f1.create(); f2.create(); assertEquals( "../resources", f2.getPath().toRelativePortableString( f1.getPath() ) ); fs = new MemoryFileSystem(); f1 = fs.getFolder( "src/main/java/org/drools" ); f2 = fs.getFolder( "src/main/resources/org/drools/reteoo" ); f1.create(); f2.create(); assertEquals( "../../../resources/org/drools/reteoo", f2.getPath().toRelativePortableString( f1.getPath() ) ); }
@Test public void testNestedRelativePathReverseArguments() { FileSystem fs = new MemoryFileSystem(); Folder f1 = fs.getFolder( "src/main/java/org" ); Folder f2 = fs.getFolder( "src/main/java/" ); f1.create(); f2.create(); assertEquals( "..", f2.getPath().toRelativePortableString( f1.getPath() ) ); fs = new MemoryFileSystem(); f1 = fs.getFolder( "src/main/java/org/drools/reteoo" ); f2 = fs.getFolder( "src/main/java" ); f1.create(); f2.create(); assertEquals( "../../..", f2.getPath().toRelativePortableString( f1.getPath() ) ); }
@Test public void testFileCreation() throws IOException { FileSystem fs = new MemoryFileSystem(); Folder mres = fs.getFolder( "src/main/java/org/domain" ); File f1 = mres.getFile( "MyClass.java" ); f1.create( new ByteArrayInputStream( "ABC".getBytes() ) ); mres.create(); f1 = mres.getFile( "MyClass.java" ); assertTrue( f1.exists()); f1.create( new ByteArrayInputStream( "ABC".getBytes() ) ); f1 = mres.getFile( "MyClass.java" ); assertTrue( f1.exists() ); assertEquals( "ABC", StringUtils.toString( f1.getContents() ) ); f1.create( new ByteArrayInputStream( "ABC".getBytes() ) ); f1.setContents( new ByteArrayInputStream( "DEF".getBytes() ) ); assertEquals( "DEF", StringUtils.toString( f1.getContents() ) ); }
@Test public void testFileRemoval() throws IOException { FileSystem fs = new MemoryFileSystem(); Folder mres = fs.getFolder( "src/main/java/org/domain" ); mres.create(); File f1 = mres.getFile( "MyClass.java" ); f1.create( new ByteArrayInputStream( "ABC".getBytes() ) ); assertTrue( f1.exists() ); assertEquals( "ABC", StringUtils.toString( f1.getContents() ) ); fs.remove( f1 ); f1 = mres.getFile( "MyClass.java" ); assertFalse( f1.exists() ); try { f1.getContents(); fail( "Should throw IOException" ); } catch( IOException e ) { } }
@Test public void testFolderGetParent() { FileSystem fs = new MemoryFileSystem(); Folder mres = fs.getFolder( "src/main/resources" ); mres.create(); assertEquals( "src/main", mres.getParent().getPath().toPortableString() ); assertEquals( "src", mres.getParent().getParent().getPath().toPortableString() ); }
@Test public void testRecursiveFolderCreation() { FileSystem fs = new MemoryFileSystem(); Folder mres = fs.getFolder( "src/main/resources" ); assertFalse( mres.exists() ); mres.create(); assertTrue( mres.exists() ); Folder fld = fs.getFolder( "src/main" ); assertTrue( fld.exists() ); Folder src = fs.getFolder( "src" ); assertTrue( src.exists() ); }
public List<String> compile(KieModuleModel kproj, MemoryFileSystem srcMfs, MemoryFileSystem trgMfs, List<String> classes) { for ( KieBaseModel kbase : kproj.getKieBaseModels().values() ) { Folder srcFolder = srcMfs.getFolder( "src/main/resources/" + kbase.getName() ); Folder trgFolder = trgMfs.getFolder(kbase.getName()); copyFolder( srcMfs, srcFolder, trgMfs, trgFolder, kproj ); } Folder srcFolder = srcMfs.getFolder( "META-INF" ); Folder trgFolder = trgMfs.getFolder( "META-INF" ); trgFolder.create(); copyFolder( srcMfs, srcFolder, trgMfs, trgFolder, kproj ); EclipseJavaCompilerSettings settings = new EclipseJavaCompilerSettings(); settings.setSourceVersion( "1.5" ); settings.setTargetVersion( "1.5" ); EclipseJavaCompiler compiler = new EclipseJavaCompiler( settings, "" ); CompilationResult res = compiler.compile( classes.toArray( new String[classes.size()] ), trgMfs, trgMfs ); if ( res.getErrors().length > 0 ) { fail( res.getErrors()[0].getMessage() ); } List<String> classes2 = new ArrayList<String>( classes.size() ); for ( String str : classes ) { classes2.add( filenameToClassname( str ) ); } return classes2; }
public void copyFolder(MemoryFileSystem srcMfs, Folder srcFolder, MemoryFileSystem trgMfs, Folder trgFolder, KieModuleModel kproj) { if ( !trgFolder.exists() ) { trgMfs.getFolder( trgFolder.getPath() ).create(); } Collection<Resource> col = (Collection<Resource>) srcFolder.getMembers(); if (col == null) { return; } for ( Resource rs : col ) { if ( rs instanceof Folder ) { copyFolder( srcMfs, (Folder) rs, trgMfs, trgFolder.getFolder( ((Folder) rs).getName() ), kproj ); } else { MemoryFile trgFile = (MemoryFile) trgFolder.getFile( ((File) rs).getName() ); try { trgMfs.setFileContents( trgFile, srcMfs.getFileContents( (MemoryFile) rs ) ); } catch ( IOException e ) { throw new RuntimeException( e ); } } } }