KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > ristretto > message > AddressTest


1 /* ***** BEGIN LICENSE BLOCK *****
2  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
3  *
4  * The contents of this file are subject to the Mozilla Public License Version
5  * 1.1 (the "License"); you may not use this file except in compliance with
6  * the License. You may obtain a copy of the License at
7  * http://www.mozilla.org/MPL/
8  *
9  * Software distributed under the License is distributed on an "AS IS" basis,
10  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
11  * for the specific language governing rights and limitations under the
12  * License.
13  *
14  * The Original Code is Ristretto Mail API.
15  *
16  * The Initial Developers of the Original Code are
17  * Timo Stich and Frederik Dietz.
18  * Portions created by the Initial Developers are Copyright (C) 2004
19  * All Rights Reserved.
20  *
21  * Contributor(s):
22  *
23  * Alternatively, the contents of this file may be used under the terms of
24  * either the GNU General Public License Version 2 or later (the "GPL"), or
25  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
26  * in which case the provisions of the GPL or the LGPL are applicable instead
27  * of those above. If you wish to allow use of your version of this file only
28  * under the terms of either the GPL or the LGPL, and not to allow others to
29  * use your version of this file under the terms of the MPL, indicate your
30  * decision by deleting the provisions above and replace them with the notice
31  * and other provisions required by the GPL or the LGPL. If you do not delete
32  * the provisions above, a recipient may use your version of this file under
33  * the terms of any one of the MPL, the GPL or the LGPL.
34  *
35  * ***** END LICENSE BLOCK ***** */

36 package org.columba.ristretto.message;
37
38 import java.io.ByteArrayInputStream JavaDoc;
39 import java.io.ByteArrayOutputStream JavaDoc;
40 import java.io.IOException JavaDoc;
41 import java.io.ObjectInputStream JavaDoc;
42 import java.io.ObjectOutputStream JavaDoc;
43
44 import junit.framework.TestCase;
45
46
47 /**
48  * @author redsolo
49  */

50 public class AddressTest extends TestCase {
51
52     /**
53      * Test the get() methods.
54      */

55     public void testGet() {
56         Address addr = new Address("Emil", "email@lonneberga.se");
57         assertEquals("The display name isnt correct", "Emil", addr.getDisplayName());
58         assertEquals("The address isnt correct", "email@lonneberga.se", addr.getMailAddress());
59         assertEquals("The short name isnt correct", "Emil", addr.getShortAddress());
60         assertEquals("The cannonical mail isnt correct", "<email@lonneberga.se>", addr.getCanonicalMailAddress());
61     }
62
63     /**
64      * Test the set() methods.
65      */

66     public void testSet() {
67         Address addr = new Address("not@this.on");
68         assertNotNull("The display wasnt null", addr.getDisplayName());
69         addr.setDisplayName("a NAME");
70         assertEquals("The set display name failed", "a NAME", addr.getDisplayName());
71     }
72
73     /**
74      * Test that the Serializable implementation worked.
75      * @throws IOException thrown by the stream handling.
76      * @throws ClassNotFoundException thrown by the readObject() method.
77      */

78     public void testSerializing() throws IOException JavaDoc, ClassNotFoundException JavaDoc {
79         Address expected = new Address("Emil", "email@lonneberga.se");
80
81         ByteArrayOutputStream JavaDoc byteOutput = new ByteArrayOutputStream JavaDoc();
82         ObjectOutputStream JavaDoc output = new ObjectOutputStream JavaDoc(byteOutput);
83
84         output.writeObject(expected);
85         assertTrue("The stream is empty after writing", byteOutput.size() > 0);
86
87         ObjectInputStream JavaDoc input = new ObjectInputStream JavaDoc(new ByteArrayInputStream JavaDoc(byteOutput.toByteArray()));
88         Address actual = (Address) input.readObject();
89         assertEquals("The serializing didnt work", expected, actual);
90     }
91
92     /**
93      * Test that the Serializable implementation worked.
94      * @throws IOException thrown by the stream handling.
95      * @throws ClassNotFoundException thrown by the readObject() method.
96      */

97     public void testSerializing2() throws IOException JavaDoc, ClassNotFoundException JavaDoc {
98         Address expected = new Address("email@lonneberga.se");
99         expected.setDisplayName(null);
100
101         ByteArrayOutputStream JavaDoc byteOutput = new ByteArrayOutputStream JavaDoc();
102         ObjectOutputStream JavaDoc output = new ObjectOutputStream JavaDoc(byteOutput);
103
104         output.writeObject(expected);
105         assertTrue("The stream is empty after writing", byteOutput.size() > 0);
106
107         ObjectInputStream JavaDoc input = new ObjectInputStream JavaDoc(new ByteArrayInputStream JavaDoc(byteOutput.toByteArray()));
108         Address actual = (Address) input.readObject();
109         assertEquals("The serializing didnt work", expected, actual);
110     }
111
112     /**
113      * Test the equals() and hashCode() methods.
114      */

115     public void testEquals() {
116         Address addr1 = new Address("Emil", "email@lonneberga.se");
117         Address addr2 = new Address("Emil", "email@lonneberga.se");
118         Address addr3 = new Address("Emil", "email@lonneberga.de");
119         assertTrue("The objects arent equal", addr1.equals(addr2));
120         assertTrue("The objects arent equal", addr2.equals(addr1));
121         assertFalse("The objects are equal though they are different types", addr2.equals(new Integer JavaDoc(3)));
122         assertFalse("The objects are equal though one is null", addr2.equals(null));
123         assertFalse("The objects are equal", addr1.equals(addr3));
124         assertFalse("The objects are equal", addr3.equals(addr1));
125         assertEquals("Equal objects has different hashcodes", addr1.hashCode(), addr2.hashCode());
126         assertFalse("Unequal objects has same hashcodes", addr1.hashCode() == addr3.hashCode());
127     }
128
129     /**
130      * Tests the compareTo method.
131      */

132     public void testCompareTo() {
133         Address addr1 = new Address("Emil", "email@lonneberga.se");
134         Address addr2 = new Address("Emil", "email@lonneberga.se");
135         assertTrue("The compareTo method failed", addr1.compareTo(addr2) == 0);
136         assertTrue("The compareTo method failed", addr1.compareTo(new Address("bah@bahcity.net")) > 0);
137     }
138 }
139
Popular Tags