protected void resolveProvider( FileDialogOperation op ) {
    if ( op.getProvider() == null ) {
      if ( isVfsPath( op.getPath() ) ) {
        op.setProvider( VFSFileProvider.TYPE );
      } else if ( spoonSupplier.get().getRepository() != null ) {
        op.setProvider( RepositoryFileProvider.TYPE );
      } else {
        op.setProvider( LocalFileProvider.TYPE );
      }
    }
  }
@Test
  public void testResolveProvider_Local() throws Exception  {
    // SETUP
    ProviderService mockProviderService = mock( ProviderService.class );
    VFSFileProvider mockVFSFileProvider = mock( VFSFileProvider.class );
    when( mockProviderService.get( VFSFileProvider.TYPE ) ).thenReturn( mockVFSFileProvider );
    when( mockVFSFileProvider.isSupported( any() ) ).thenReturn( false );
    Spoon mockSpoon = mock( Spoon.class );
    when( mockSpoon.getRepository() ).thenReturn( null );
    FileOpenSaveExtensionPoint testInstance = new FileOpenSaveExtensionPoint( mockProviderService, () -> mockSpoon );

    FileDialogOperation opLocal = new FileDialogOperation( FILE_OP_DUMMY_COMMAND  );
    opLocal.setProvider( null );
    opLocal.setPath( "/someUser/someUnixFile" );

    // EXECUTE
    testInstance.resolveProvider( opLocal );

    // VERIFY
    assertEquals( LocalFileProvider.TYPE, opLocal.getProvider() );
  }