Package org.dozer.functional_tests.builder

Source Code of org.dozer.functional_tests.builder.PrimitiveTest$Source

package org.dozer.functional_tests.builder;

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

import java.io.File;
import java.math.BigDecimal;
import java.net.URL;

import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.sameInstance;

public class PrimitiveTest extends Assert {

  private DozerBeanMapper mapper;

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

  @Test
  public void shouldMapPrimitiveTypes() throws Exception {
    Source source = new Source();
    source.file = "a";
    source.url = "http://a";
    source.type = "java.lang.String";
    source.bigDecimal = new BigDecimal("1");
    source.myDouble = new Double("1");

    Destination result = mapper.map(source, Destination.class);

    assertThat(result.file, equalTo(new File("a")));
    assertThat(result.url, equalTo(new URL("http://a")));
    assertThat(result.type, sameInstance(String.class));
    assertThat(result.bigDecimal, equalTo(new Double("1")));
    assertThat(result.myDouble, equalTo(new BigDecimal("1.0")));
  }

  @Test
  public void shouldMapOneWayOnly() {
    mapper.addMapping(new BeanMappingBuilder() {
      @Override
      protected void configure() {
        mapping(type(Source.class),
                type(Destination.class)
                 , TypeMappingOptions.oneWay()
        );

        mapping(type(Destination.class),
                type(Source.class)
                 , TypeMappingOptions.oneWay(), TypeMappingOptions.wildcard(false)
        );

      }
    });

    {
      Source source = new Source();
      source.bigDecimal = new BigDecimal(1);
      Destination result = mapper.map(source, Destination.class);
      assertThat(result.bigDecimal, equalTo(new Double(1)));
    }

    {
      Destination destination = new Destination();
      destination.bigDecimal = new Double(1);
      Source result = mapper.map(destination, Source.class);
      assertThat(result.bigDecimal, equalTo(null));
    }
  }

  public static class Source {
    String url;
    String type;
    String file;
    BigDecimal bigDecimal;
    Double myDouble;

    public void setUrl(String url) {
      this.url = url;
    }

    public void setType(String type) {
      this.type = type;
    }

    public void setFile(String file) {
      this.file = file;
    }

    public void setBigDecimal(BigDecimal bigDecimal) {
      this.bigDecimal = bigDecimal;
    }

    public void setMyDouble(Double myDouble) {
      this.myDouble = myDouble;
    }

    public String getUrl() {
      return url;
    }

    public String getType() {
      return type;
    }

    public String getFile() {
      return file;
    }

    public BigDecimal getBigDecimal() {
      return bigDecimal;
    }

    public Double getMyDouble() {
      return myDouble;
    }
  }

  public static class Destination {
    URL url;
    Class<String> type;
    File file;
    Double bigDecimal;
    BigDecimal myDouble;

    public URL getUrl() {
      return url;
    }

    public Class<String> getType() {
      return type;
    }

    public File getFile() {
      return file;
    }

    public Double getBigDecimal() {
      return bigDecimal;
    }

    public BigDecimal getMyDouble() {
      return myDouble;
    }

    public void setUrl(URL url) {
      this.url = url;
    }

    public void setType(Class<String> type) {
      this.type = type;
    }

    public void setFile(File file) {
      this.file = file;
    }

    public void setBigDecimal(Double bigDecimal) {
      this.bigDecimal = bigDecimal;
    }

    public void setMyDouble(BigDecimal myDouble) {
      this.myDouble = myDouble;
    }
  }

}
TOP

Related Classes of org.dozer.functional_tests.builder.PrimitiveTest$Source

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.