package fr.umlv.examir2;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertTrue;

import java.util.Set;

import org.junit.Test;

@SuppressWarnings("static-method")
public class AddressTest {
  @Test
  public void testAddress() {
    Address address = new Address("13 bond street");
    assertEquals("13 bond street", address.getStreet());
  }

  @Test(expected = NullPointerException.class)
  public void testAddressNull() {
    new Address(null);
  }

  @Test
  public void testEqualsObject() {
    Address address1 = new Address("7 bond street");
    Address address2 = new Address("14 park avenue");
    Address address3 = new Address(new String("14 park avenue"));
    
    assertNotEquals(address1, address2);
    assertNotEquals(address1, address3);
    assertEquals(address2, address3);
  }
  
  @Test
  public void testCollection() {
    Set<Address> set = Set.of(
        new Address("1 piazza renata"),
        new Address("3 piazza renata"));
    
    assertTrue(set.contains(new Address("1 piazza renata")));
    assertFalse(set.contains(new Address("2 piazza renata")));
  }

  @Test
  public void testDisplay() {
    Address address = new Address("7 east broadway");
    assertEquals("7 east broadway", "" + address);
  }
}
