Tweak the attribute getter names on Attachments, and add MAPI+TNEF Attribute unit tests
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1076685 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
efe5a63429
commit
bbfa85f807
@ -53,7 +53,7 @@ public final class Attachment {
|
|||||||
* Return the attachment attribute with the given ID,
|
* Return the attachment attribute with the given ID,
|
||||||
* or null if there isn't one.
|
* or null if there isn't one.
|
||||||
*/
|
*/
|
||||||
public TNEFAttribute getMessageAttribute(TNEFProperty id) {
|
public TNEFAttribute getAttribute(TNEFProperty id) {
|
||||||
for(TNEFAttribute attr : attributes) {
|
for(TNEFAttribute attr : attributes) {
|
||||||
if(attr.getProperty() == id) {
|
if(attr.getProperty() == id) {
|
||||||
return attr;
|
return attr;
|
||||||
@ -66,7 +66,7 @@ public final class Attachment {
|
|||||||
* Return the attachment MAPI Attribute with the given ID,
|
* Return the attachment MAPI Attribute with the given ID,
|
||||||
* or null if there isn't one.
|
* or null if there isn't one.
|
||||||
*/
|
*/
|
||||||
public MAPIAttribute getMessageMAPIAttribute(MAPIProperty id) {
|
public MAPIAttribute getMAPIAttribute(MAPIProperty id) {
|
||||||
for(MAPIAttribute attr : mapiAttributes) {
|
for(MAPIAttribute attr : mapiAttributes) {
|
||||||
if(attr.getProperty() == id) {
|
if(attr.getProperty() == id) {
|
||||||
return attr;
|
return attr;
|
||||||
@ -97,14 +97,14 @@ public final class Attachment {
|
|||||||
* if it isn't set
|
* if it isn't set
|
||||||
*/
|
*/
|
||||||
private String getString(MAPIProperty id) {
|
private String getString(MAPIProperty id) {
|
||||||
return MAPIStringAttribute.getAsString( getMessageMAPIAttribute(id) );
|
return MAPIStringAttribute.getAsString( getMAPIAttribute(id) );
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Returns the string value of the TNEF property, or
|
* Returns the string value of the TNEF property, or
|
||||||
* null if it isn't set
|
* null if it isn't set
|
||||||
*/
|
*/
|
||||||
private String getString(TNEFProperty id) {
|
private String getString(TNEFProperty id) {
|
||||||
return TNEFStringAttribute.getAsString( getMessageAttribute(id) );
|
return TNEFStringAttribute.getAsString( getAttribute(id) );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -131,7 +131,7 @@ public final class Attachment {
|
|||||||
*/
|
*/
|
||||||
public Date getModifiedDate() {
|
public Date getModifiedDate() {
|
||||||
return TNEFDateAttribute.getAsDate(
|
return TNEFDateAttribute.getAsDate(
|
||||||
getMessageAttribute(TNEFProperty.ID_ATTACHMODIFYDATE)
|
getAttribute(TNEFProperty.ID_ATTACHMODIFYDATE)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -139,7 +139,7 @@ public final class Attachment {
|
|||||||
* Returns the contents of the attachment.
|
* Returns the contents of the attachment.
|
||||||
*/
|
*/
|
||||||
public byte[] getContents() {
|
public byte[] getContents() {
|
||||||
TNEFAttribute contents = getMessageAttribute(TNEFProperty.ID_ATTACHDATA);
|
TNEFAttribute contents = getAttribute(TNEFProperty.ID_ATTACHDATA);
|
||||||
if(contents == null) {
|
if(contents == null) {
|
||||||
throw new IllegalArgumentException("Attachment corrupt - no Data section");
|
throw new IllegalArgumentException("Attachment corrupt - no Data section");
|
||||||
}
|
}
|
||||||
@ -151,7 +151,7 @@ public final class Attachment {
|
|||||||
* of the attachment, or null if not set.
|
* of the attachment, or null if not set.
|
||||||
*/
|
*/
|
||||||
public byte[] getRenderedMetaFile() {
|
public byte[] getRenderedMetaFile() {
|
||||||
TNEFAttribute meta = getMessageAttribute(TNEFProperty.ID_ATTACHMETAFILE);
|
TNEFAttribute meta = getAttribute(TNEFProperty.ID_ATTACHMETAFILE);
|
||||||
if(meta == null) return null;
|
if(meta == null) return null;
|
||||||
return meta.getData();
|
return meta.getData();
|
||||||
}
|
}
|
||||||
|
@ -23,7 +23,6 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.apache.poi.hmef.attribute.MAPIAttribute;
|
import org.apache.poi.hmef.attribute.MAPIAttribute;
|
||||||
import org.apache.poi.hmef.attribute.MAPIRtfAttribute;
|
|
||||||
import org.apache.poi.hmef.attribute.MAPIStringAttribute;
|
import org.apache.poi.hmef.attribute.MAPIStringAttribute;
|
||||||
import org.apache.poi.hmef.attribute.TNEFAttribute;
|
import org.apache.poi.hmef.attribute.TNEFAttribute;
|
||||||
import org.apache.poi.hmef.attribute.TNEFMAPIAttribute;
|
import org.apache.poi.hmef.attribute.TNEFMAPIAttribute;
|
||||||
|
@ -87,6 +87,8 @@ public final class TestAttachments extends TestCase {
|
|||||||
public void testAttachmentDetails() throws Exception {
|
public void testAttachmentDetails() throws Exception {
|
||||||
List<Attachment> attachments = quick.getAttachments();
|
List<Attachment> attachments = quick.getAttachments();
|
||||||
|
|
||||||
|
// Pick a predictable date format
|
||||||
|
// Note that the 28th April is in summer time in the UK
|
||||||
DateFormat fmt = DateFormat.getDateTimeInstance(
|
DateFormat fmt = DateFormat.getDateTimeInstance(
|
||||||
DateFormat.MEDIUM, DateFormat.MEDIUM, Locale.UK
|
DateFormat.MEDIUM, DateFormat.MEDIUM, Locale.UK
|
||||||
);
|
);
|
||||||
|
@ -17,26 +17,159 @@
|
|||||||
|
|
||||||
package org.apache.poi.hmef.attribute;
|
package org.apache.poi.hmef.attribute;
|
||||||
|
|
||||||
|
import java.io.ByteArrayInputStream;
|
||||||
|
import java.text.DateFormat;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import junit.framework.TestCase;
|
import junit.framework.TestCase;
|
||||||
|
|
||||||
import org.apache.poi.POIDataSamples;
|
import org.apache.poi.POIDataSamples;
|
||||||
import org.apache.poi.hmef.HMEFMessage;
|
import org.apache.poi.hmef.HMEFMessage;
|
||||||
|
import org.apache.poi.hsmf.datatypes.MAPIProperty;
|
||||||
|
import org.apache.poi.util.LittleEndian;
|
||||||
|
|
||||||
public final class TestMAPIAttributes extends TestCase {
|
public final class TestMAPIAttributes extends TestCase {
|
||||||
private static final POIDataSamples _samples = POIDataSamples.getHMEFInstance();
|
private static final POIDataSamples _samples = POIDataSamples.getHMEFInstance();
|
||||||
|
private HMEFMessage quick;
|
||||||
public void testOpen() throws Exception {
|
|
||||||
HMEFMessage msg = new HMEFMessage(
|
@Override
|
||||||
_samples.openResourceAsStream("quick-winmail.dat")
|
protected void setUp() throws Exception {
|
||||||
);
|
super.setUp();
|
||||||
|
|
||||||
assertNotNull(msg);
|
quick = new HMEFMessage(
|
||||||
}
|
_samples.openResourceAsStream("quick-winmail.dat")
|
||||||
|
);
|
||||||
// Test basics
|
}
|
||||||
// Test counts
|
|
||||||
|
/**
|
||||||
|
* Test counts
|
||||||
|
*/
|
||||||
|
public void testCounts() throws Exception {
|
||||||
|
// Message should have 54
|
||||||
|
assertEquals(54, quick.getMessageMAPIAttributes().size());
|
||||||
|
|
||||||
|
// First attachment should have 22
|
||||||
|
assertEquals(22, quick.getAttachments().get(0).getMAPIAttributes().size());
|
||||||
|
}
|
||||||
|
|
||||||
// Check untyped
|
/**
|
||||||
// Check typed
|
* Test various general ones
|
||||||
// Check common
|
*/
|
||||||
|
public void testBasics() throws Exception {
|
||||||
|
// Try constructing two attributes
|
||||||
|
byte[] data = new byte[] {
|
||||||
|
// Level one, id 36867, type 6
|
||||||
|
0x01, 0x03, (byte)0x90, 0x06, 0x00,
|
||||||
|
// Length 24
|
||||||
|
0x24, 0x00, 0x00, 0x00,
|
||||||
|
|
||||||
|
// Three attributes
|
||||||
|
0x03, 0x00, 0x00, 0x00,
|
||||||
|
// AlternateRecipientAllowed = 01 00
|
||||||
|
0x0B, 0x00, 0x02, 0x00,
|
||||||
|
0x01, 0x00, 0x00, 0x00,
|
||||||
|
// Priority = 00 00 00 00
|
||||||
|
0x03, 0x00, 0x26, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00,
|
||||||
|
// ConversationTopic = Test
|
||||||
|
0x1E, 0x00, 0x70, 0x00,
|
||||||
|
0x01, 0x00, 0x00, 0x00,
|
||||||
|
0x04, 0x00, 0x00, 0x00,
|
||||||
|
(byte)'T', (byte)'e',
|
||||||
|
(byte)'s', (byte)'t',
|
||||||
|
// Checksum (may be wrong...)
|
||||||
|
0x01, 0x00
|
||||||
|
};
|
||||||
|
ByteArrayInputStream bais = new ByteArrayInputStream(data);
|
||||||
|
|
||||||
|
// Create it
|
||||||
|
int level = bais.read();
|
||||||
|
assertEquals(1, level);
|
||||||
|
TNEFAttribute attr = TNEFAttribute.create(bais);
|
||||||
|
|
||||||
|
// Check it
|
||||||
|
assertNotNull(attr);
|
||||||
|
assertEquals(TNEFMAPIAttribute.class, attr.getClass());
|
||||||
|
|
||||||
|
TNEFMAPIAttribute mapi = (TNEFMAPIAttribute)attr;
|
||||||
|
assertEquals(3, mapi.getMAPIAttributes().size());
|
||||||
|
|
||||||
|
assertEquals(
|
||||||
|
MAPIProperty.ALTERNATE_RECIPIENT_ALLOWED,
|
||||||
|
mapi.getMAPIAttributes().get(0).getProperty()
|
||||||
|
);
|
||||||
|
assertEquals(1, LittleEndian.getUShort(
|
||||||
|
mapi.getMAPIAttributes().get(0).getData()
|
||||||
|
));
|
||||||
|
|
||||||
|
assertEquals(
|
||||||
|
MAPIProperty.PRIORITY,
|
||||||
|
mapi.getMAPIAttributes().get(1).getProperty()
|
||||||
|
);
|
||||||
|
assertEquals(0, LittleEndian.getUShort(
|
||||||
|
mapi.getMAPIAttributes().get(1).getData()
|
||||||
|
));
|
||||||
|
|
||||||
|
assertEquals(
|
||||||
|
MAPIProperty.CONVERSATION_TOPIC,
|
||||||
|
mapi.getMAPIAttributes().get(2).getProperty()
|
||||||
|
);
|
||||||
|
assertEquals(
|
||||||
|
"Test",
|
||||||
|
((MAPIStringAttribute)mapi.getMAPIAttributes().get(2)).getDataString()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test String, Date and RTF ones
|
||||||
|
*/
|
||||||
|
public void testTyped() throws Exception {
|
||||||
|
MAPIAttribute attr;
|
||||||
|
|
||||||
|
// String
|
||||||
|
// ConversationTopic -> This is a test message
|
||||||
|
attr = quick.getMessageMAPIAttribute(MAPIProperty.CONVERSATION_TOPIC);
|
||||||
|
assertNotNull(attr);
|
||||||
|
assertEquals(MAPIStringAttribute.class, attr.getClass());
|
||||||
|
|
||||||
|
MAPIStringAttribute str = (MAPIStringAttribute)attr;
|
||||||
|
assertEquals("This is a test message", str.getDataString());
|
||||||
|
|
||||||
|
// Date
|
||||||
|
// (Unknown/Custom) 32955 -> Wed Dec 15 2010 @ 14:46:31 UTC
|
||||||
|
attr = null;
|
||||||
|
for(MAPIAttribute a : quick.getMessageMAPIAttributes()) {
|
||||||
|
if(a.getProperty().id == 32955) {
|
||||||
|
attr = a;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
assertNotNull(attr);
|
||||||
|
assertEquals(MAPIDateAttribute.class, attr.getClass());
|
||||||
|
|
||||||
|
MAPIDateAttribute date = (MAPIDateAttribute)attr;
|
||||||
|
DateFormat fmt = DateFormat.getDateTimeInstance(
|
||||||
|
DateFormat.MEDIUM, DateFormat.MEDIUM, Locale.UK
|
||||||
|
);
|
||||||
|
assertEquals("15-Dec-2010 14:46:31", fmt.format(date.getDate()));
|
||||||
|
|
||||||
|
// RTF
|
||||||
|
// RtfCompressed -> {\rtf1...
|
||||||
|
attr = quick.getMessageMAPIAttribute(MAPIProperty.RTF_COMPRESSED);
|
||||||
|
assertNotNull(attr);
|
||||||
|
assertEquals(MAPIRtfAttribute.class, attr.getClass());
|
||||||
|
|
||||||
|
MAPIRtfAttribute rtf = (MAPIRtfAttribute)attr;
|
||||||
|
assertEquals("{\\rtf1", rtf.getDataString().substring(0, 6));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check common ones via helper accessors
|
||||||
|
*/
|
||||||
|
public void testCommon() throws Exception {
|
||||||
|
assertEquals("This is a test message", quick.getSubject());
|
||||||
|
|
||||||
|
assertEquals("quick.doc", quick.getAttachments().get(0).getLongFilename());
|
||||||
|
assertEquals(".doc", quick.getAttachments().get(0).getExtension());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,27 +17,192 @@
|
|||||||
|
|
||||||
package org.apache.poi.hmef.attribute;
|
package org.apache.poi.hmef.attribute;
|
||||||
|
|
||||||
|
import java.io.ByteArrayInputStream;
|
||||||
|
import java.text.DateFormat;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import junit.framework.TestCase;
|
import junit.framework.TestCase;
|
||||||
|
|
||||||
import org.apache.poi.POIDataSamples;
|
import org.apache.poi.POIDataSamples;
|
||||||
|
import org.apache.poi.hmef.Attachment;
|
||||||
import org.apache.poi.hmef.HMEFMessage;
|
import org.apache.poi.hmef.HMEFMessage;
|
||||||
|
import org.apache.poi.hsmf.datatypes.MAPIProperty;
|
||||||
|
import org.apache.poi.util.LittleEndian;
|
||||||
|
|
||||||
public final class TestTNEFAttributes extends TestCase {
|
public final class TestTNEFAttributes extends TestCase {
|
||||||
private static final POIDataSamples _samples = POIDataSamples.getHMEFInstance();
|
private static final POIDataSamples _samples = POIDataSamples.getHMEFInstance();
|
||||||
|
private HMEFMessage quick;
|
||||||
public void testOpen() throws Exception {
|
|
||||||
HMEFMessage msg = new HMEFMessage(
|
@Override
|
||||||
_samples.openResourceAsStream("quick-winmail.dat")
|
protected void setUp() throws Exception {
|
||||||
);
|
super.setUp();
|
||||||
|
|
||||||
assertNotNull(msg);
|
quick = new HMEFMessage(
|
||||||
|
_samples.openResourceAsStream("quick-winmail.dat")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test counts
|
||||||
|
*/
|
||||||
|
public void testCounts() throws Exception {
|
||||||
|
// The message should have 4 attributes
|
||||||
|
assertEquals(4, quick.getMessageAttributes().size());
|
||||||
|
|
||||||
|
// Each attachment should have 6 attributes
|
||||||
|
for(Attachment attach : quick.getAttachments()) {
|
||||||
|
assertEquals(6, attach.getAttributes().size());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Test counts
|
/**
|
||||||
|
* Test the basics
|
||||||
|
*/
|
||||||
|
public void testBasics() throws Exception {
|
||||||
|
// An int one
|
||||||
|
assertEquals(
|
||||||
|
0x010000,
|
||||||
|
LittleEndian.getInt( quick.getMessageAttribute(TNEFProperty.ID_TNEFVERSION).getData() )
|
||||||
|
);
|
||||||
|
|
||||||
|
// Claims not to be text, but really is
|
||||||
|
assertEquals(
|
||||||
|
"IPM.Microsoft Mail.Note\0",
|
||||||
|
new String(quick.getMessageAttribute(TNEFProperty.ID_MESSAGECLASS).getData(), "ASCII")
|
||||||
|
);
|
||||||
|
|
||||||
|
// Try constructing two attributes
|
||||||
|
byte[] data = new byte[] {
|
||||||
|
// Level one, id 36870, type 8
|
||||||
|
0x01, 0x06, (byte)0x90, 0x08, 0x00,
|
||||||
|
// Length 4
|
||||||
|
0x04, 0x00, 0x00, 0x00,
|
||||||
|
// Data
|
||||||
|
0x00, 0x00, 0x01, 0x00,
|
||||||
|
// Checksum
|
||||||
|
0x01, 0x00,
|
||||||
|
|
||||||
|
// level one, id 36871, type 6
|
||||||
|
0x01, 0x07, (byte)0x90, 0x06, 0x00,
|
||||||
|
// Length 8
|
||||||
|
0x08, 0x00, 0x00, 0x00,
|
||||||
|
// Data
|
||||||
|
(byte)0xe4, 0x04, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00,
|
||||||
|
// Checksum
|
||||||
|
(byte)0xe8, 0x00
|
||||||
|
};
|
||||||
|
ByteArrayInputStream bais = new ByteArrayInputStream(data);
|
||||||
|
|
||||||
|
// Create them
|
||||||
|
int level = bais.read();
|
||||||
|
assertEquals(1, level);
|
||||||
|
TNEFAttribute attr1 = TNEFAttribute.create(bais);
|
||||||
|
|
||||||
|
level = bais.read();
|
||||||
|
assertEquals(1, level);
|
||||||
|
TNEFAttribute attr2 = TNEFAttribute.create(bais);
|
||||||
|
|
||||||
|
assertEquals(-1, bais.read());
|
||||||
|
|
||||||
|
// Check them
|
||||||
|
assertEquals(TNEFProperty.ID_TNEFVERSION, attr1.getProperty());
|
||||||
|
assertEquals(8, attr1.getType());
|
||||||
|
assertEquals(4, attr1.getData().length);
|
||||||
|
assertEquals(0x010000, LittleEndian.getInt( attr1.getData() ));
|
||||||
|
|
||||||
|
assertEquals(TNEFProperty.ID_OEMCODEPAGE, attr2.getProperty());
|
||||||
|
assertEquals(6, attr2.getType());
|
||||||
|
assertEquals(8, attr2.getData().length);
|
||||||
|
assertEquals(0x04e4, LittleEndian.getInt( attr2.getData() ));
|
||||||
|
}
|
||||||
|
|
||||||
// Test basics
|
/**
|
||||||
|
* Test string based ones
|
||||||
|
*/
|
||||||
|
public void testString() throws Exception {
|
||||||
|
TNEFAttribute attr = quick.getAttachments().get(0).getAttribute(
|
||||||
|
TNEFProperty.ID_ATTACHTITLE
|
||||||
|
);
|
||||||
|
assertNotNull(attr);
|
||||||
|
assertEquals(TNEFStringAttribute.class, attr.getClass());
|
||||||
|
|
||||||
|
// It is a null terminated string
|
||||||
|
assertEquals("quick.doc\u0000", new String(attr.getData(), "ASCII"));
|
||||||
|
|
||||||
|
// But when we ask for the string, that is sorted for us
|
||||||
|
TNEFStringAttribute str = (TNEFStringAttribute)attr;
|
||||||
|
assertEquals("quick.doc", str.getString());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test date based ones
|
||||||
|
*/
|
||||||
|
public void testDate() throws Exception {
|
||||||
|
TNEFAttribute attr = quick.getAttachments().get(0).getAttribute(
|
||||||
|
TNEFProperty.ID_ATTACHMODIFYDATE
|
||||||
|
);
|
||||||
|
assertNotNull(attr);
|
||||||
|
assertEquals(TNEFDateAttribute.class, attr.getClass());
|
||||||
|
|
||||||
|
// It is a series of date parts
|
||||||
|
// Weds 28th April 2010 @ 12:40:56 UTC
|
||||||
|
assertEquals(2010, LittleEndian.getUShort(attr.getData(), 0));
|
||||||
|
assertEquals(04, LittleEndian.getUShort(attr.getData(), 2));
|
||||||
|
assertEquals(28, LittleEndian.getUShort(attr.getData(), 4));
|
||||||
|
assertEquals(12, LittleEndian.getUShort(attr.getData(), 6));
|
||||||
|
assertEquals(40, LittleEndian.getUShort(attr.getData(), 8));
|
||||||
|
assertEquals(56, LittleEndian.getUShort(attr.getData(), 10));
|
||||||
|
assertEquals(3, LittleEndian.getUShort(attr.getData(), 12)); // Weds
|
||||||
|
|
||||||
|
// Ask for it as a Java date, and have it converted
|
||||||
|
// Pick a predictable format + location. Note location is in summer time!
|
||||||
|
TNEFDateAttribute date = (TNEFDateAttribute)attr;
|
||||||
|
DateFormat fmt = DateFormat.getDateTimeInstance(
|
||||||
|
DateFormat.MEDIUM, DateFormat.MEDIUM, Locale.UK
|
||||||
|
);
|
||||||
|
assertEquals("28-Apr-2010 13:40:56", fmt.format(date.getDate()));
|
||||||
|
}
|
||||||
|
|
||||||
// Test string
|
/**
|
||||||
|
* Test a bit of mapi
|
||||||
|
*/
|
||||||
|
public void testMAPI() throws Exception {
|
||||||
|
// Message MAPI
|
||||||
|
TNEFAttribute attr = quick.getMessageAttribute(
|
||||||
|
TNEFProperty.ID_MAPIPROPERTIES
|
||||||
|
);
|
||||||
|
assertNotNull(attr);
|
||||||
|
assertEquals(TNEFMAPIAttribute.class, attr.getClass());
|
||||||
|
|
||||||
|
TNEFMAPIAttribute mapi = (TNEFMAPIAttribute)attr;
|
||||||
|
assertEquals(54, mapi.getMAPIAttributes().size());
|
||||||
|
assertEquals(
|
||||||
|
MAPIProperty.ALTERNATE_RECIPIENT_ALLOWED,
|
||||||
|
mapi.getMAPIAttributes().get(0).getProperty()
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
// Attribute MAPI
|
||||||
|
attr = quick.getAttachments().get(0).getAttribute(
|
||||||
|
TNEFProperty.ID_ATTACHMENT
|
||||||
|
);
|
||||||
|
assertNotNull(attr);
|
||||||
|
assertEquals(TNEFMAPIAttribute.class, attr.getClass());
|
||||||
|
|
||||||
|
mapi = (TNEFMAPIAttribute)attr;
|
||||||
|
assertEquals(22, mapi.getMAPIAttributes().size());
|
||||||
|
assertEquals(
|
||||||
|
MAPIProperty.ATTACH_SIZE,
|
||||||
|
mapi.getMAPIAttributes().get(0).getProperty()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// Test a bit of mapi
|
/**
|
||||||
|
* Test common ones via helpers
|
||||||
|
*/
|
||||||
|
public void testCommon() throws Exception {
|
||||||
|
assertEquals("This is a test message", quick.getSubject());
|
||||||
|
assertEquals("quick.doc", quick.getAttachments().get(0).getFilename());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user