### Question:
Address implements Serializable { public static Address of(List<String> elements) { Validate.notNull(elements); Validate.noNullElements(elements); Validate.isTrue(!elements.isEmpty()); elements.stream().forEach( x -> x.chars().forEach( ch -> Validate.isTrue(ch >= 0x20 && ch < 0x7F, "Not printable ASCII") ) ); return new Address(new ArrayList<>(elements)); } private  Address(List<String> addressElements); static Address fromString(String textAddress); static Address of(List<String> elements); static Address of(String... elements); int size(); List<String> getElements(); String getElement(int idx); Address appendSuffix(String... elements); Address appendSuffix(Address child); boolean isPrefixOf(Address other); Address removePrefix(Address prefix); Address removeSuffix(int count); @Override int hashCode(); @Override boolean equals(Object obj); @Override String toString();  }### Answer:
@Test public void mustFailToConstructAnAddressWith0Elements() { exception.expect(IllegalArgumentException.class); Address.of(); }