Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.uberfire.io;
  
  import static org.junit.Assert.*;
  
  import java.io.File;
  import java.net.URI;
  import java.util.HashMap;
  import java.util.List;
 
 import org.junit.Test;
 import  org.uberfire.java.nio.base.options.CommentedOption;
 import  org.uberfire.java.nio.base.version.VersionAttributeView;
 import  org.uberfire.java.nio.file.FileSystem;
 import  org.uberfire.java.nio.file.Path;
 import  org.uberfire.java.nio.file.WatchEvent;
 import  org.uberfire.java.nio.file.WatchService;
 import  org.uberfire.java.nio.file.api.FileSystemProviders;
 import  org.uberfire.java.nio.fs.jgit.JGitFileSystem;
 import  org.uberfire.java.nio.fs.jgit.JGitFileSystemProvider;
 
 public class BatchTest {
 
     final static IOService ioService = new IOServiceDotFileImpl();
     private static File path = null;
     static FileSystem fs1;
     static JGitFileSystem fs1Batch;
     static FileSystem fs2;
     static JGitFileSystem fs2Batch;
 
     @BeforeClass
     public static void setup() throws IOException {
          = CommonIOServiceDotFileTest.createTempDirectory();
 
         // XXX this is shaky at best: FileSystemProviders bootstraps the JGit FS in a static initializer.
         //     if anything has referenced it before now, setting this system property will have no effect.
         System.setProperty"org.uberfire.nio.git.dir".getAbsolutePath() );
         ..println".niogit: " + .getAbsolutePath() );
 
         final URI newRepo = URI.create"git://amend-repo-test" );
 
          = .newFileSystemnewReponew HashMap<StringObject>() );
          = (JGitFileSystem) ;
         Path init = .get( URI.create"git://amend-repo-test/init.file" ) );
         .writeinit"setupFS!" );
 
         final URI newRepo2 = URI.create"git://check-amend-repo-test" );
 
          = .newFileSystemnewRepo2new HashMap<StringObject>() {{
             put"init""true" );
         }} );
          = (JGitFileSystem) ;
         init = .get( URI.create"git://check-amend-repo-test/init.file" ) );
         .writeinit"setupFS!" );
     }
 
     @AfterClass
     public static void cleanup() {
         FileUtils.deleteQuietly );
         JGitFileSystemProvider gitFsProvider = (JGitFileSystemProvider) FileSystemProviders.resolveProvider( URI.create"git://whatever" ) );
         gitFsProvider.shutdown();
         FileUtils.deleteQuietlygitFsProvider.getGitRepoContainerDir() );
         gitFsProvider.rescanForExistingRepositories();
     }
 
     @Test
     public void testBatch() throws IOExceptionInterruptedException {
         final Path init = .get( URI.create"git://amend-repo-test/readme.txt" ) );
         final WatchService ws = init.getFileSystem().newWatchService();
 
         .writeinit"init!"new CommentedOption( "User Tester""message1" ) );
         .writeinit"init 2!"new CommentedOption( "User Tester""message2" ) );
         {
             List<WatchEvent<?>> events = ws.poll().pollEvents();
             assertEquals( 1, events.size() );//modify readme
         }
 
         final Path init2 = .get( URI.create"git://amend-repo-test/readme2.txt" ) );
         .writeinit2"init 3!"new CommentedOption( "User Tester""message3" ) );
         {
             List<WatchEvent<?>> events = ws.poll().pollEvents();
             assertEquals( 1, events.size() ); // add file
         }
         .writeinit2"init 4!"new CommentedOption( "User Tester""message4" ) );
         {
             List<WatchEvent<?>> events = ws.poll().pollEvents();
             assertEquals( 1, events.size() );// modify file
         }
 
         final VersionAttributeView vinit = .getFileAttributeViewinit, VersionAttributeView.class );
         final VersionAttributeView vinit2 = .getFileAttributeViewinit, VersionAttributeView.class );
 
         assertEquals"init 2!".readAllStringinit ) );
 
        assertNotNullvinit );
        assertEquals( 2, vinit.readAttributes().history().records().size() );
        assertNotNullvinit2 );
        assertEquals( 2, vinit2.readAttributes().history().records().size() );
        .startBatchnew FileSystem[]{ init.getFileSystem() } );
        final Path path = .get( URI.create"git://amend-repo-test/mybatch" + new Random( 10L ).nextInt() + ".txt" ) );
        final Path path2 = .get( URI.create"git://amend-repo-test/mybatch2" + new Random( 10L ).nextInt() + ".txt" ) );
        .writepath"ooooo!" );
        //init.file event
        assertNotNullws.poll() );
        .writepath"ooooo wdfs fg sdf!" );
        assertNullws.poll() );
        .writepath2"ooooo222!" );
        assertNullws.poll() );
        .writepath2" sdfsdg sdg ooooo222!" );
        assertNullws.poll() );
        .endBatch();
        {
            List<WatchEvent<?>> events = ws.poll().pollEvents();
            assertEquals( 2, events.size() ); //adds files
        }
        final VersionAttributeView v = .getFileAttributeViewpath, VersionAttributeView.class );
        final VersionAttributeView v2 = .getFileAttributeViewpath2, VersionAttributeView.class );
        assertNotNullv );
        assertNotNullv2 );
        assertEquals( 1, v.readAttributes().history().records().size() );
        assertEquals( 1, v2.readAttributes().history().records().size() );
    }
    @Test
    public void testBatch2() throws IOExceptionInterruptedException {
        final Path f1 = .get( URI.create"git://check-amend-repo-test/f1.txt" ) );
        final Path f2 = .get( URI.create"git://check-amend-repo-test/f2.txt" ) );
        final Path f3 = .get( URI.create"git://check-amend-repo-test/f3.txt" ) );
        // XXX: Workaround for UF-70: amend-test-repo has to contain something so it can receive the BATCH
        .writef1"init f1!" );
        .writef2"init f2!" );
        // END workaround
        final WatchService ws = f1.getFileSystem().newWatchService();
        .startBatchnew FileSystem[]{ f1.getFileSystem() } );
        .writef1"f1-u1!" );
        assertNullws.poll() );
        .writef2"f2-u1!" );
        assertNullws.poll() );
        .writef3"f3-u1!" );
        assertNullws.poll() );
        .endBatch();
        {
            List<WatchEvent<?>> events = ws.poll().pollEvents();
            assertEquals( 3, events.size() ); //adds files
            final VersionAttributeView v = .getFileAttributeViewf1, VersionAttributeView.class );
            assertNotNullv );
            assertEquals( 2, v.readAttributes().history().records().size() );
            final VersionAttributeView v2 = .getFileAttributeViewf2, VersionAttributeView.class );
            assertNotNullv2 );
            assertEquals( 2, v2.readAttributes().history().records().size() );
            final VersionAttributeView v3 = .getFileAttributeViewf3, VersionAttributeView.class );
            assertNotNullv3 );
            assertEquals( 1, v3.readAttributes().history().records().size() );
        }
        .startBatchnew FileSystem[]{ f1.getFileSystem() } );
        .writef1"f1-u1!" );
        assertNullws.poll() );
        .writef2"f2-u2!" );
        assertNullws.poll() );
        .writef3"f3-u2!" );
        assertNullws.poll() );
        .endBatch();
        {
            List<WatchEvent<?>> events = ws.poll().pollEvents();
            assertEquals( 2, events.size() ); //adds files
            final VersionAttributeView v = .getFileAttributeViewf1, VersionAttributeView.class );
            assertNotNullv );
            assertEquals( 2, v.readAttributes().history().records().size() );
            final VersionAttributeView v2 = .getFileAttributeViewf2, VersionAttributeView.class );
            assertNotNullv2 );
            assertEquals( 3, v2.readAttributes().history().records().size() );
            final VersionAttributeView v3 = .getFileAttributeViewf3, VersionAttributeView.class );
            assertNotNullv3 );
            assertEquals( 2, v3.readAttributes().history().records().size() );
        }
    }
    @Test
    public void batchTest() throws IOExceptionInterruptedException {
        final Path init = .get( URI.create"git://amend-repo-test/readme.txt" ) );
        .writeinit"init!"new CommentedOption( "User Tester""message1" ) );
        assertFalse.isOnBatch() );
        .startBatchnew FileSystem[]{  } );
        assertTrue.isOnBatch() );
        .endBatch();
        assertFalse.isOnBatch() );
    }
    @Test
    public void justOneFSOnBatchTest() throws IOExceptionInterruptedException {
        Path init = .get( URI.create"git://amend-repo-test/readme.txt" ) );
        .writeinit"init!"new CommentedOption( "User Tester""message1" ) );
        init = .get( URI.create"git://check-amend-repo-test/readme.txt" ) );
        .writeinit"init!"new CommentedOption( "User Tester""message1" ) );
        assertFalse.isOnBatch() );
        assertFalse.isOnBatch() );
        .startBatchnew FileSystem[]{  } );
        assertTrue.isOnBatch() );
        assertFalse.isOnBatch() );
        .endBatch();
        assertFalse.isOnBatch() );
        assertFalse.isOnBatch() );
    }
    @Test
        Path init = .get( URI.create"git://amend-repo-test/readme.txt" ) );
        .writeinit"init!"new CommentedOption( "User Tester""message1" ) );
        init = .get( URI.create"git://check-amend-repo-test/readme.txt" ) );
        .writeinit"init!"new CommentedOption( "User Tester""message1" ) );
        .startBatchnew FileSystem[]{  } );
        try {
            .startBatchnew FileSystem[]{  } );
            fail();
        } catch ( RuntimeException e ) {
            .endBatch();
        }
    }
    @Test
        Path init = .get( URI.create"git://amend-repo-test/readme.txt" ) );
        .writeinit"init!"new CommentedOption( "User Tester""message1" ) );
        init = .get( URI.create"git://check-amend-repo-test/readme.txt" ) );
        .writeinit"init!"new CommentedOption( "User Tester""message1" ) );
        .startBatchnew FileSystem[]{  } );
        assertTrue.isOnBatch() );
        .endBatch();
        .startBatchnew FileSystem[]{  } );
        assertTrue.isOnBatch() );
        .endBatch();
    }
    @Test
    public void iCanLockMultipleFS() throws IOExceptionInterruptedException {
        Path init = .get( URI.create"git://amend-repo-test/readme.txt" ) );
        .writeinit"init!"new CommentedOption( "User Tester""message1" ) );
        init = .get( URI.create"git://check-amend-repo-test/readme.txt" ) );
        .writeinit"init!"new CommentedOption( "User Tester""message1" ) );
        .startBatchnew FileSystem[]{  } );
        assertTrue.isOnBatch() );
        assertTrue.isOnBatch() );
        .endBatch();
        assertFalse.isOnBatch() );
        assertFalse.isOnBatch() );
    }
New to GrepCode? Check out our FAQ X