davmail/src/test/davmail/exchange/TestExchangeSessionMessageF...

121 lines
5.3 KiB
Java

/*
* DavMail POP/IMAP/SMTP/CalDav/LDAP Exchange Gateway
* Copyright (C) 2010 Mickael Guessant
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
package davmail.exchange;
import davmail.Settings;
import org.apache.log4j.Level;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.UUID;
/**
* Created by IntelliJ IDEA.
* User: mguessan
* Date: 5 juil. 2010
* Time: 16:17:45
* To change this template use File | Settings | File Templates.
*/
public class TestExchangeSessionMessageFlags extends AbstractExchangeSessionTestCase {
@Override
public void setUp() throws IOException {
super.setUp();
// recreate empty folder
session.deleteFolder("testfolder");
session.createMessageFolder("testfolder");
}
public void testCreateDraftMessage() throws MessagingException, IOException {
MimeMessage mimeMessage = createMimeMessage();
String messageName = UUID.randomUUID().toString();
HashMap<String, String> properties = new HashMap<String, String>();
properties.put("draft", "9");
session.createMessage("testfolder", messageName, properties, getMimeBody(mimeMessage));
ExchangeSession.MessageList messageList = session.searchMessages("testfolder");
assertNotNull(messageList);
assertEquals(1, messageList.size());
assertTrue(messageList.get(0).draft);
}
public void testCreateDraftReadMessage() throws MessagingException, IOException {
MimeMessage mimeMessage = createMimeMessage();
String messageName = UUID.randomUUID().toString();
HashMap<String, String> properties = new HashMap<String, String>();
properties.put("draft", "9");
properties.put("read", "1");
session.createMessage("testfolder", messageName, properties, getMimeBody(mimeMessage));
ExchangeSession.MessageList messageList = session.searchMessages("testfolder");
assertNotNull(messageList);
assertEquals(1, messageList.size());
assertTrue(messageList.get(0).draft);
assertTrue(messageList.get(0).read);
}
public void testCreateReadMessage() throws MessagingException, IOException {
MimeMessage mimeMessage = createMimeMessage();
String messageName = UUID.randomUUID().toString();
HashMap<String, String> properties = new HashMap<String, String>();
properties.put("read", "1");
session.createMessage("testfolder", messageName, properties, getMimeBody(mimeMessage));
ExchangeSession.MessageList messageList = session.searchMessages("testfolder");
assertNotNull(messageList);
assertEquals(1, messageList.size());
assertFalse(messageList.get(0).draft);
assertTrue(messageList.get(0).read);
}
public void testCreateBccMessage() throws MessagingException, IOException {
Settings.setLoggingLevel("httpclient.wire", Level.DEBUG);
MimeMessage mimeMessage = createMimeMessage();
String messageName = UUID.randomUUID().toString();
HashMap<String, String> properties = new HashMap<String, String>();
properties.put("draft", "8");
properties.put("bcc", "testbcc@test.local");
session.createMessage("testfolder", messageName, properties, getMimeBody(mimeMessage));
ExchangeSession.MessageList messageList = session.searchMessages("testfolder");
assertNotNull(messageList);
assertEquals(1, messageList.size());
}
public void testCreateDateReceivedMessage() throws MessagingException, IOException {
MimeMessage mimeMessage = createMimeMessage();
String messageName = UUID.randomUUID().toString();
HashMap<String, String> properties = new HashMap<String, String>();
SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
dateFormatter.setTimeZone(ExchangeSession.GMT_TIMEZONE);
Calendar cal = Calendar.getInstance();
cal.add(Calendar.MONTH, -1);
properties.put("datereceived", dateFormatter.format(cal.getTime()));
session.createMessage("testfolder", messageName, properties, getMimeBody(mimeMessage));
ExchangeSession.MessageList messageList = session.searchMessages("testfolder");
assertNotNull(messageList);
assertEquals(1, messageList.size());
assertNotNull(messageList);
assertEquals(properties.get("datereceived"), messageList.get(0).date);
}
}