Create a Java program with a class called Address. An address has the following instance variables:
- address
- address2
- city
- state
- postal code
All of these instance variables are strings.
Create the getters and setters.
Create a default, no-argument constructor.
Supply two non-default constructors that accept the following:
- all the address components
- all address components except address2
Accept the constructor parameters in the order above.
Supply a print method that returns a String representing the address on one line.
Clarification: All components of the Address should print - however, address2 should only print if one is provided. Your method should not print null if no address2 is provided.
The Address class needs to only accept two characters for the state. Also, only five digits can be entered for the postal code (no less than 5, no more than 5).
Modify both of your constructors in your Address class to throw an IllegalArgumentException if state or postal code is null.
In the AddressTester class, test that the exception works. Change your tester class back to working after you've tested the exception.
The program NEEDS to be complete and able to run with the tester code provided below.
class AddressTest {
Address home = new Address("163 Main Street", "Denver", "CO", "73521");
Address condo = new Address("5075 Turner Hill", "Apt 2B", "Nashville", "TN", "37115");
@Test
void testInstanceVariables() {
assertNull(home.getAddress2());
assertNotNull(condo.getAddress2());
assertEquals("CO", home.getState());
assertEquals("37115", condo.getPostalCode());
}
@Test
void testPrint() {
assertEquals("163 Main Street Denver, CO 73521", home.print());
assertEquals("5075 Turner Hill Apt 2B Nashville, TN 37115", condo.print());
}
}