public void testUpdate() {
    City city = newCity();

    IAddressService service = AddressServiceFactory.createAddressService();
    service.persist(city);

    final String novoNome = "cidade do sol";

    city.setName(novoNome);
    city.getState().setName(novoNome);

    service.merge(city);

    City saved = service.findCityById(city.getId());

    assertEquals("The streets are diferent!", novoNome, saved.getName());

    // the merge cannot occur in the related elements.
    CountryState cs = service.findCountryStateById(city.getState().getId());
    assertNotEquals("It cant be updated! ", novoNome, cs.getName());
  }