package org.sculptor.dddsample.location.domain;
import junit.framework.TestCase;
public class UnLocodeTest extends TestCase {
public void testNew() throws Exception {
assertValid("AA234");
assertValid("AAA9B");
assertValid("AAAAA");
assertInvalid("AAAA");
assertInvalid("AAAAAA");
assertInvalid("AAAA");
assertInvalid("AAAAAA");
assertInvalid("22AAA");
assertInvalid("AA111");
assertInvalid(null);
}
public void testIdString() throws Exception {
assertEquals("ABCDE", new UnLocode("AbcDe").getUnlocode());
}
public void testEquals() throws Exception {
UnLocode allCaps = new UnLocode("ABCDE");
UnLocode mixedCase = new UnLocode("aBcDe");
assertTrue(allCaps.equals(mixedCase));
assertTrue(mixedCase.equals(allCaps));
assertTrue(allCaps.equals(allCaps));
assertFalse(allCaps.equals(null));
assertFalse(allCaps.equals(new UnLocode("FGHIJ")));
}
public void testHashCode() throws Exception {
UnLocode allCaps = new UnLocode("ABCDE");
UnLocode mixedCase = new UnLocode("aBcDe");
assertEquals(allCaps.hashCode(), mixedCase.hashCode());
}
private void assertValid(String unlocode) {
new UnLocode(unlocode);
}
private void assertInvalid(String unlocode) {
try {
new UnLocode(unlocode);
fail("The combination [" + unlocode + "] is not a valid UnLocode");
} catch (IllegalArgumentException expected) {}
}
}