Пример #1
0
  @Test
  public void should_map_bean_with_passed_custom_mapper_subclass_instance()
      throws IllegalAccessException, InstantiationException, ClassNotFoundException {
    CustomMapperSupport mapper =
        Selma.getMapperWithCustom(
            CustomMapperSupport.class, new SubCustomMapper(MAPPED_BY_GIVEN_CUSTOM));

    PersonIn personIn = new PersonIn();
    personIn.setAddress(new AddressIn());
    personIn.getAddress().setCity(new CityIn());
    personIn.getAddress().getCity().setCapital(true);
    personIn.getAddress().getCity().setName("Paris");
    personIn.getAddress().getCity().setPopulation(3 * 1000 * 1000);

    personIn.getAddress().setPrincipal(true);
    personIn.getAddress().setNumber(55);
    personIn.getAddress().setStreet("rue de la truanderie");

    PersonOut res = mapper.mapWithCustom(personIn);

    Assert.assertNotNull(res);

    Assert.assertEquals(personIn.getAddress().getStreet(), res.getAddress().getStreet());
    Assert.assertEquals(personIn.getAddress().getNumber(), res.getAddress().getNumber());
    Assert.assertEquals(personIn.getAddress().getExtras(), res.getAddress().getExtras());

    Assert.assertEquals(
        personIn.getAddress().getCity().getName() + MAPPED_BY_GIVEN_CUSTOM,
        res.getAddress().getCity().getName());
    Assert.assertEquals(
        personIn.getAddress().getCity().getPopulation() + 10000,
        res.getAddress().getCity().getPopulation());
    Assert.assertEquals(
        personIn.getAddress().getCity().isCapital(), res.getAddress().getCity().isCapital());
  }