Subversion Repositories javautils

Rev

Rev 9 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
17 daniel-mar 1
package de.viathinksoft.utils.mail.address;
3 daniel-mar 2
 
3
import static org.junit.Assert.*;
4
 
5
import java.net.IDN;
6
 
7
import org.junit.Test;
8
 
17 daniel-mar 9
import de.viathinksoft.utils.mail.address.EMailAddress;
10
 
3 daniel-mar 11
public class EMailAddressTest {
12
 
13
        private static final String ExamplePunycode = "xn--zckzah"; // Japanese IDN Test TLD
14
        private static final String ExampleUnicode = IDN.toUnicode(ExamplePunycode);
15
 
16
        @Test
9 daniel-mar 17
        public void testAddressParsing() {
3 daniel-mar 18
                try {
19
                        new EMailAddress(null);
20
                        fail();
9 daniel-mar 21
                } catch (NullPointerException e) {
3 daniel-mar 22
                }
23
 
24
                EMailAddress a;
25
 
9 daniel-mar 26
                a = new EMailAddress("");
27
                assertEquals("", a.getLocalPart());
28
                // assertEquals("", a.getLocalPartASCII());
29
                assertEquals("", a.getDomainPartUnicode());
30
                assertEquals("", a.getDomainPartPunycode());
31
                assertEquals("", a.getTldUnicode());
32
                assertEquals("", a.getTldPunycode());
33
                assertEquals("", a.toString());
34
                assertEquals("", a.getMailAddressUnicode());
35
                assertEquals("", a.getMailAddressPunycodedDomain());
36
 
37
                a = new EMailAddress("bla");
38
                assertEquals("bla", a.getLocalPart());
39
                // assertEquals("", a.getLocalPartASCII());
40
                assertEquals("", a.getDomainPartUnicode());
41
                assertEquals("", a.getDomainPartPunycode());
42
                assertEquals("", a.getTldUnicode());
43
                assertEquals("", a.getTldPunycode());
44
                assertEquals("bla", a.toString());
45
                assertEquals("bla", a.getMailAddressUnicode());
46
                assertEquals("bla", a.getMailAddressPunycodedDomain());
3 daniel-mar 47
 
9 daniel-mar 48
                a = new EMailAddress(ExampleUnicode);
49
                assertEquals(ExampleUnicode, a.getLocalPart());
50
                // assertEquals("", a.getLocalPartASCII());
51
                assertEquals("", a.getDomainPartUnicode());
52
                assertEquals("", a.getDomainPartPunycode());
53
                assertEquals("", a.getTldUnicode());
54
                assertEquals("", a.getTldPunycode());
55
                assertEquals(ExampleUnicode, a.toString());
56
                assertEquals(ExampleUnicode, a.getMailAddressUnicode());
57
                assertEquals(ExampleUnicode, a.getMailAddressPunycodedDomain());
3 daniel-mar 58
 
9 daniel-mar 59
                a = new EMailAddress("@");
60
                assertEquals("", a.getLocalPart());
61
                // assertEquals("", a.getLocalPartASCII());
62
                assertEquals("", a.getDomainPartUnicode());
63
                assertEquals("", a.getDomainPartPunycode());
64
                assertEquals("", a.getTldUnicode());
65
                assertEquals("", a.getTldPunycode());
66
                assertEquals("", a.toString());
67
                assertEquals("", a.getMailAddressUnicode());
68
                assertEquals("", a.getMailAddressPunycodedDomain());
69
 
3 daniel-mar 70
                a = new EMailAddress("local@domain");
9 daniel-mar 71
                assertEquals("local", a.getLocalPart());
72
                // assertEquals("local", a.getLocalPartASCII());
73
                assertEquals("domain", a.getDomainPartUnicode());
74
                assertEquals("domain", a.getDomainPartPunycode());
75
                assertEquals("", a.getTldUnicode());
76
                assertEquals("", a.getTldPunycode());
77
                assertEquals("local@domain", a.toString());
78
                assertEquals("local@domain", a.getMailAddressUnicode());
79
                assertEquals("local@domain", a.getMailAddressPunycodedDomain());
3 daniel-mar 80
 
81
                a = new EMailAddress("local@domain.tld");
9 daniel-mar 82
                assertEquals("local", a.getLocalPart());
83
                // assertEquals("local", a.getlocalPartASCII());
84
                assertEquals("domain.tld", a.getDomainPartUnicode());
85
                assertEquals("domain.tld", a.getDomainPartPunycode());
86
                assertEquals("tld", a.getTldUnicode());
87
                assertEquals("tld", a.getTldPunycode());
88
                assertEquals("local@domain.tld", a.toString());
89
                assertEquals("local@domain.tld", a.getMailAddressUnicode());
90
                assertEquals("local@domain.tld", a.getMailAddressPunycodedDomain());
3 daniel-mar 91
 
92
                a = new EMailAddress("local@"+ExampleUnicode+".jp");
9 daniel-mar 93
                assertEquals("local", a.getLocalPart());
94
                // assertEquals("local", a.getlocalPartASCII());
95
                assertEquals(ExampleUnicode+".jp", a.getDomainPartUnicode());
96
                assertEquals(ExamplePunycode+".jp", a.getDomainPartPunycode());
97
                assertEquals("jp", a.getTldUnicode());
98
                assertEquals("jp", a.getTldPunycode());
99
                assertEquals("local@"+ExampleUnicode+".jp", a.getMailAddressUnicode());
100
                assertEquals("local@"+ExamplePunycode+".jp", a.getMailAddressPunycodedDomain());
3 daniel-mar 101
                EMailAddress.USE_UNICODE_AS_STANDARD = true;
9 daniel-mar 102
                assertEquals("local@"+ExampleUnicode+".jp", a.toString());
3 daniel-mar 103
                EMailAddress.USE_UNICODE_AS_STANDARD = false;
9 daniel-mar 104
                assertEquals("local@"+ExamplePunycode+".jp", a.toString());
3 daniel-mar 105
 
106
                a = new EMailAddress("local@example."+ExampleUnicode);
9 daniel-mar 107
                assertEquals("local", a.getLocalPart());
108
                // assertEquals("local", a.getlocalPartASCII());
109
                assertEquals("example."+ExampleUnicode, a.getDomainPartUnicode());
110
                assertEquals("example."+ExamplePunycode, a.getDomainPartPunycode());
111
                assertEquals(ExampleUnicode, a.getTldUnicode());
112
                assertEquals(ExamplePunycode, a.getTldPunycode());
113
                assertEquals("local@example."+ExampleUnicode, a.getMailAddressUnicode());
114
                assertEquals("local@example."+ExamplePunycode, a.getMailAddressPunycodedDomain());
3 daniel-mar 115
                EMailAddress.USE_UNICODE_AS_STANDARD = true;
9 daniel-mar 116
                assertEquals("local@example."+ExampleUnicode, a.toString());
3 daniel-mar 117
                EMailAddress.USE_UNICODE_AS_STANDARD = false;
9 daniel-mar 118
                assertEquals("local@example."+ExamplePunycode, a.toString());
3 daniel-mar 119
        }
120
 
121
        @Test
122
        public void testIsUnicode() {
123
                assertFalse(EMailAddress.isUnicode(null));
124
                assertFalse(EMailAddress.isUnicode(""));
125
                assertFalse(EMailAddress.isUnicode(ExamplePunycode));
126
                assertTrue(EMailAddress.isUnicode(ExampleUnicode));
127
        }
128
 
129
        @Test
130
        public void testIsPunycode() {
131
                assertFalse(EMailAddress.isPunycode(null));
132
                assertFalse(EMailAddress.isPunycode(""));
133
                assertTrue(EMailAddress.isPunycode(ExamplePunycode));
134
                assertFalse(EMailAddress.isPunycode(ExampleUnicode));
135
        }
136
 
137
        @Test
9 daniel-mar 138
        public void testClone() throws CloneNotSupportedException {
3 daniel-mar 139
                EMailAddress a = new EMailAddress("local@example."+ExampleUnicode);
140
                EMailAddress b = (EMailAddress) a.clone();
141
 
142
                assertFalse(a == b);
143
                assertTrue(a.equals(b));
144
                assertTrue(b.equals(a));
145
 
9 daniel-mar 146
                assertEquals(b.getDomainPartPunycode(), a.getDomainPartPunycode());
147
                assertEquals(b.getDomainPartUnicode(), a.getDomainPartUnicode());
148
                assertEquals(b.getLocalPart(), a.getLocalPart());
149
                assertEquals(b.getMailAddressPunycodedDomain(), a.getMailAddressPunycodedDomain());
150
                assertEquals(b.getMailAddressUnicode(), a.getMailAddressUnicode());
151
                assertEquals(b.getTldPunycode(), a.getTldPunycode());
152
                assertEquals(b.getTldUnicode(), a.getTldUnicode());
3 daniel-mar 153
                EMailAddress.USE_UNICODE_AS_STANDARD = true;
9 daniel-mar 154
                assertEquals(b.toString(), a.toString());
3 daniel-mar 155
                EMailAddress.USE_UNICODE_AS_STANDARD = false;
9 daniel-mar 156
                assertEquals(b.toString(), a.toString());
3 daniel-mar 157
        }
158
 
159
        @Test
9 daniel-mar 160
        public void testEquals() {
3 daniel-mar 161
                EMailAddress a = new EMailAddress("local@example."+ExampleUnicode);
162
                EMailAddress b = new EMailAddress("local@example."+ExampleUnicode);
163
 
164
                assertFalse(a == b);
165
                assertTrue(a.equals(b));
166
                assertTrue(b.equals(a));
167
        }
168
}