}
}
@Test
public void testGetAttachements() {
final ImapGmailClient client = new ImapGmailClient();
final ImapGmailConnection connection = new ImapGmailConnection();
try {
connection.setLoginCredentials(conf.getGmailCredentials());
if (conf.useProxy()) {
connection.setProxy(conf.getProxyHost(), conf.getProxyPort());
connection.setProxyCredentials(conf.getProxyCredentials());
}
client.setConnection(connection);
// Send a message so we have one
GmailMessage msg = new JavaMailGmailMessage();
msg.setSubject(TEST_MAIL_WITH_ATTACHEMENTS_SUBJECT);
msg.setContentText(TEST_MAIL_WITH_ATTACHEMENT_CONTENT);
msg.addTo(new EmailAddress(conf.getTestRecipient()));
URL url = this.getClass().getClassLoader().getResource(ATTACHEMENT_1_FILENAME);
msg.addAttachement(new File(url.toURI()));
url = this.getClass().getClassLoader().getResource(ATTACHEMENT_2_FILENAME);
msg.addAttachement(new File(url.toURI()));
client.send(msg);
final List<GmailMessage> messages = client.getUnreadMessages();
for (GmailMessage message : messages) {
if (message.getSubject().equals(TEST_MAIL_WITH_ATTACHEMENTS_SUBJECT)) {
/* Try to get attachements. */
List<GmailAttachment> attachements = message.getAttachements();
assertTrue(attachements.size() > 0);
for (GmailAttachment gmailAttachment : attachements) {
log.debug(gmailAttachment.toString());
byte[] data1 = IOUtils.toByteArray(gmailAttachment.getData());
assertTrue(data1.length > 0);
byte[] data2 = IOUtils.toByteArray(message.getAttachment(gmailAttachment.getPartIndex()).getData());
assertTrue(data2.length > 0);
}
break;
}
}
} catch (final Exception e) {
log.error("Test Failed", e);
fail("Caught exception: " + e.getMessage());
} finally {
client.disconnect();
}
}