Package org.dozer.functional_tests.builder

Source Code of org.dozer.functional_tests.builder.GenericsTest$ItemDTO

package org.dozer.functional_tests.builder;

import org.dozer.DozerBeanMapper;
import org.dozer.loader.api.BeanMappingBuilder;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

import java.util.ArrayList;
import java.util.List;

import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;

/**
* @author dmitry.buzdin
*/
public class GenericsTest extends Assert {

  private DozerBeanMapper mapper;

  @Before
  public void setUp() {
    mapper = new DozerBeanMapper();
  }


  @Test
  public void shouldDetermineCollectionTypeViaFieldGenericType() {
    mapper.addMapping(new BeanMappingBuilder() {
      @Override
      protected void configure() {
        mapping(Container.class, ContainerDTO.class)
                .fields(field("items").accessible(true), "items");
      }
    });

    Container container = prepareContainer();

    Container containerSpy = spy(container);
    when(containerSpy.getItems()).thenThrow(new IllegalStateException());

    ContainerDTO result = mapper.map(containerSpy, ContainerDTO.class);

    assertDto(result);
  }

  @Test
  public void shouldDetermineCollectionTypeViaGetter() {
    mapper.addMapping(new BeanMappingBuilder() {
      @Override
      protected void configure() {
        mapping(Container.class, ContainerDTO.class)
                .fields("items", "items");
      }
    });

    Container container = prepareContainer();

    ContainerDTO result = mapper.map(container, ContainerDTO.class);

    assertDto(result);
  }

  private void assertDto(ContainerDTO result) {
    assertNotNull(result);
    assertEquals(1, result.getItems().size());
    assertEquals("A", result.getItems().get(0).getId());
  }

  private Container prepareContainer() {
    Container container = new Container();
    ArrayList<Item> items = new ArrayList<Item>();
    Item item = new Item();
    item.setId("A");
    items.add(item);
    container.items = items;
    return container;
  }

  public static class Container {
    List<Item> items;

    public List<Item> getItems() {
      return items;
    }

  }

  public static class ContainerDTO {
    private List<ItemDTO> items;

    public List<ItemDTO> getItems() {
      return items;
    }

    public void setItems(List<ItemDTO> items) {
      this.items = items;
    }
  }

  public static class Item {
    private String id;

    public String getId() {
      return id;
    }

    public void setId(String id) {
      this.id = id;
    }
  }

  public static class ItemDTO {
    private String id;

    public String getId() {
      return id;
    }

    public void setId(String id) {
      this.id = id;
    }
  }


}
TOP

Related Classes of org.dozer.functional_tests.builder.GenericsTest$ItemDTO

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.