1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.james.jdkim;
21
22 import java.io.ByteArrayInputStream;
23 import java.io.ByteArrayOutputStream;
24 import java.io.IOException;
25 import java.io.InputStream;
26 import java.util.Iterator;
27 import java.util.LinkedList;
28 import java.util.List;
29
30 import junit.framework.TestCase;
31
32 import org.apache.james.jdkim.impl.Message;
33 import org.apache.james.mime4j.MimeException;
34
35 public class MessageTest extends TestCase {
36
37 public void testMessage() throws IOException, MimeException {
38 String m = "";
39 new Message(new ByteArrayInputStream(m.getBytes()));
40 }
41
42 public void testMessageInputStream() throws IOException, MimeException {
43 String m = "Subject: test\r\n\r\nbody";
44 new Message(new ByteArrayInputStream(m.getBytes()));
45 }
46
47 public void testGetBodyInputStream() throws IOException, MimeException {
48 String text = "Subject: test\r\n\r\nbody";
49 Message m = new Message(new ByteArrayInputStream(text.getBytes()));
50 InputStream is = m.getBodyInputStream();
51 ByteArrayOutputStream bos = new ByteArrayOutputStream();
52 byte[] buff = new byte[200];
53 int read;
54 while ((read = is.read(buff)) > 0) {
55 bos.write(buff, 0, read);
56 }
57 assertEquals("body", new String(bos.toByteArray()));
58 }
59
60 public void testAddField() throws MimeException {
61 Message m = new Message();
62 m.addField("Subject", "Subject: test\r\n");
63 m.addField("Subject", "Subject: test2\r\n");
64 List f = m.getFields("Subject");
65 assertEquals(2, f.size());
66 assertEquals("Subject: test\r\n", f.get(0));
67 assertEquals("Subject: test2\r\n", f.get(1));
68 }
69
70 public void testGetFields() throws MimeException {
71 Message m = new Message();
72 m.addField("Subject", "Subject: test\r\n");
73 m.addField("Subject", "Subject: test2\r\n");
74 m.addField("From", "From: test2\r\n");
75 List f = m.getFields();
76 List expects = new LinkedList();
77 expects.add("Subject: test\r\n");
78 expects.add("Subject: test2\r\n");
79 expects.add("From: test2\r\n");
80 for (Iterator i = f.iterator(); i.hasNext();) {
81 String field = (String) i.next();
82 assertTrue(expects.remove(field));
83 }
84 assertEquals(0, expects.size());
85 }
86
87
88
89
90
91
92
93
94 public void testGetFieldsString() throws MimeException {
95 Message m = new Message();
96 m.addField("Subject", "Subject: test\r\n");
97 m.addField("subject", "subject: test2\r\n");
98 m.addField("From", "From: test2\r\n");
99 List f = m.getFields("Subject");
100 List expects = new LinkedList();
101 expects.add("Subject: test\r\n");
102 expects.add("subject: test2\r\n");
103 for (Iterator i = f.iterator(); i.hasNext();) {
104 String field = (String) i.next();
105 assertTrue(expects.remove(field));
106 }
107 assertEquals(0, expects.size());
108 }
109
110 public void testToString() throws MimeException {
111 Message m = new Message();
112 m.addField("Subject", "Subject: test\r\n");
113 m.setBodyInputStream(new ByteArrayInputStream("body".getBytes()));
114 String expected = "Subject: test\r\n\r\nbody";
115 assertEquals(expected, m.toString());
116 }
117
118 }