/** * Check if a folder exists on server (only IMAP). * * @param foldername * the name of the folder * @return true is folder exists */ public boolean folderExists( String foldername ) { boolean retval = false; Folder dfolder = null; try { // Open destination folder dfolder = getRecursiveFolder( foldername ); if ( dfolder.exists() ) { retval = true; } } catch ( Exception e ) { // Ignore errors } finally { try { if ( dfolder != null ) { dfolder.close( false ); } } catch ( Exception e ) { /* Ignore */ } } return retval; }
public Mconn( LogChannelInterface log ) throws KettleException, MessagingException { super( log, MailConnectionMeta.PROTOCOL_IMAP, "junit", 0, "junit", "junit", false, false, "junit" ); store = Mockito.mock( Store.class ); inbox = Mockito.mock( Folder.class ); a = Mockito.mock( Folder.class ); b = Mockito.mock( Folder.class ); c = Mockito.mock( Folder.class ); when( a.getFullName() ).thenReturn( "A" ); when( b.getFullName() ).thenReturn( "B" ); when( c.getFullName() ).thenReturn( "C" ); when( a.exists() ).thenReturn( true ); when( b.exists() ).thenReturn( true ); when( c.exists() ).thenReturn( cCreated ); when( c.create( Mockito.anyInt() ) ).thenAnswer( new Answer<Boolean>() { @Override public Boolean answer( InvocationOnMock invocation ) throws Throwable { Object arg0 = invocation.getArguments()[0]; mode = Integer.class.cast( arg0 ); cCreated = true; return true; } } ); when( inbox.getFolder( "a" ) ).thenReturn( a ); when( a.getFolder( "b" ) ).thenReturn( b ); when( b.getFolder( "c" ) ).thenReturn( c ); when( store.getDefaultFolder() ).thenReturn( inbox ); }
/** * Set destination folder * * @param foldername * destination foldername * @param createFolder * flag create folder if needed * @throws KettleException */ public void setDestinationFolder( String foldername, boolean createFolder ) throws KettleException { try { String[] folderparts = foldername.split( "/" ); Folder f = this.getStore().getDefaultFolder(); // Open destination folder for ( int i = 0; i < folderparts.length; i++ ) { f = f.getFolder( folderparts[i] ); if ( !f.exists() ) { if ( createFolder ) { // Create folder f.create( Folder.HOLDS_MESSAGES ); } else { throw new KettleException( BaseMessages.getString( PKG, "MailConnection.Error.FolderNotFound", foldername ) ); } } } this.destinationIMAPFolder = f; } catch ( Exception e ) { throw new KettleException( e ); } }
if (!folder.exists()) throw new FolderNotFoundException( folder.getFullName() + " does not exist",
protected void openFolder() throws MessagingException { if (this.folder == null) { openSession(); connectStoreIfNecessary(); this.folder = obtainFolderInstance(); } else { connectStoreIfNecessary(); } if (this.folder == null || !this.folder.exists()) { throw new IllegalStateException("no such folder [" + this.url.getFile() + "]"); } if (this.folder.isOpen()) { return; } if (this.logger.isDebugEnabled()) { this.logger.debug("opening folder [" + this.folder.getURLName() + "]"); } this.folder.open(this.folderOpenMode); }
if (!folder.exists()) throw new FolderNotFoundException( folder.getFullName() + " does not exist",
this.folder = getRecursiveFolder( foldername ); if ( this.folder == null || !this.folder.exists() ) { throw new KettleException( BaseMessages.getString( PKG, "JobGetMailsFromPOP.InvalidFolder.Label" ) );
@Test public void testStoreConnect() throws Exception { AbstractMailReceiver receiver = new AbstractMailReceiver() { @Override protected Message[] searchForNewMessages() throws MessagingException { return null; } }; Properties props = new Properties(); Session session = Session.getInstance(props); receiver.setSession(session); receiver.setProtocol("imap"); Store store = session.getStore("imap"); store = spy(store); new DirectFieldAccessor(receiver).setPropertyValue("store", store); when(store.isConnected()).thenReturn(false); Folder folder = mock(Folder.class); when(folder.exists()).thenReturn(true); when(folder.isOpen()).thenReturn(false); doReturn(folder).when(store).getFolder((URLName) null); doNothing().when(store).connect(); receiver.openFolder(); receiver.openFolder(); verify(store, times(2)).connect(); }
private Folder testAttachmentsGuts(final ImapMailReceiver receiver) throws MessagingException, IOException { Store store = mock(Store.class); Folder folder = mock(Folder.class); given(folder.exists()).willReturn(true); given(folder.isOpen()).willReturn(true); Message message = new MimeMessage(null, new ClassPathResource("test.mail").getInputStream()); given(folder.search(Mockito.any())).willReturn(new Message[] { message }); given(store.getFolder(Mockito.any(URLName.class))).willReturn(folder); given(folder.getPermanentFlags()).willReturn(new Flags(Flags.Flag.USER)); DirectFieldAccessor df = new DirectFieldAccessor(receiver); df.setPropertyValue("store", store); receiver.setBeanFactory(mock(BeanFactory.class)); receiver.afterPropertiesSet(); return folder; }
Store store = mock(Store.class); Folder folder = mock(Folder.class); given(folder.exists()).willReturn(true); given(folder.isOpen()).willReturn(true); given(folder.search(Mockito.any())).willReturn(new Message[] { });
@Override public boolean exists() throws RuntimeMessagingException { try { return delegate.exists(); } catch (MessagingException e) { throw new RuntimeMessagingException(e); } }
public Boolean exist(String folderName) throws Exception { WithContext<Boolean> action = ctx -> { Folder folder = ctx.store.getFolder(folderName); return folder.exists(); }; return performWithContext(action); }
private void openFolder() throws MessagingException { if (folder != null && folder.isOpen()) { return; } folder = store.getFolder(storeUri); if (folder == null || !folder.exists()) { throw new IllegalStateException("No default folder to receive from"); } if (logger.isDebugEnabled()) { logger.debug("Opening folder [" + MailTransportUtils.toPasswordProtectedString(storeUri) + "]"); } folder.open(monitoringStrategy.getFolderOpenMode()); }
private void openFolder() throws MessagingException { if (folder != null && folder.isOpen()) { return; } folder = store.getFolder(storeUri); if (folder == null || !folder.exists()) { throw new IllegalStateException("No default folder to receive from"); } if (logger.isDebugEnabled()) { logger.debug("Opening folder [" + MailTransportUtils.toPasswordProtectedString(storeUri) + "]"); } folder.open(monitoringStrategy.getFolderOpenMode()); }
public Integer messageCount(String folderName) throws Exception { WithContext<Integer> action = ctx -> { Folder folder = ctx.store.getFolder(folderName); if (folder.exists()) { return folder.getMessageCount(); } return null; }; return performWithContext(action); }
public static void open(final Folder folder) throws MessagingException { if (folder != null && folder.exists() && !folder.isOpen() && (folder.getType() & Folder.HOLDS_MESSAGES) != 0) { folder.open(Folder.READ_ONLY); } }
public void expunge(String folderName) throws Exception { WithContext<Object> action = ctx -> { Folder folder = ctx.store.getFolder(folderName); if (folder.exists()) { folder.expunge(); } folder.close(false); return null; }; performWithContext(action); }
protected Message getMessage() throws Exception { Store store = createMessageStore(); Folder f = store.getFolder(folder); if (!f.exists()) { throw new Exception(THE_SPECIFIED_FOLDER_DOES_NOT_EXIST_ON_THE_REMOTE_SERVER); } f.open(getFolderOpenMode()); if (messageNumber > f.getMessageCount()) throw new IndexOutOfBoundsException("message value was: " + messageNumber + " there are only " + f.getMessageCount() + " messages in folder"); return f.getMessage(messageNumber); }
public void delete(String folderName) throws Exception { WithContext<Object> action = ctx -> { Folder folder = ctx.store.getFolder(folderName); if (folder.exists()) { folder.delete(true); } folder.close(true); return null; }; performWithContext(action); }
public void create(String folderName) throws Exception { WithContext<Object> action = ctx -> { Folder folder = ctx.store.getFolder(folderName); if (!folder.exists()) { folder.create(Folder.HOLDS_MESSAGES | Folder.READ_WRITE); } folder.close(false); return null; }; performWithContext(action); }