Package ma.glasnost.orika.test.property

Source Code of ma.glasnost.orika.test.property.IntrospectorResolverTestCase$Line

/*
* Orika - simpler, better and faster Java bean mapping
*
* Copyright (C) 2011 Orika authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package ma.glasnost.orika.test.property;

import java.math.BigDecimal;
import java.util.Map;

import junit.framework.Assert;
import ma.glasnost.orika.MapperFacade;
import ma.glasnost.orika.metadata.NestedProperty;
import ma.glasnost.orika.metadata.Property;
import ma.glasnost.orika.property.IntrospectorPropertyResolver;
import ma.glasnost.orika.property.PropertyResolverStrategy;
import ma.glasnost.orika.test.MappingUtil;

import org.junit.Test;

public class IntrospectorResolverTestCase {

    private PropertyResolverStrategy propertyResolver = new IntrospectorPropertyResolver();
   
  @Test
  public void testNestedProperty() {
    String np = "start.x";

    NestedProperty p = (NestedProperty) propertyResolver.getProperty(Line.class, np);

    Assert.assertEquals(Integer.TYPE, p.getRawType());
  }
 
  @Test
    public void testGetInvalidNestedProperty() {
        String np = "bogus.x";

        try {
            propertyResolver.getProperty(Line.class, np);
        } catch (RuntimeException e) {
            Assert.assertTrue(e.getMessage().contains("could not resolve nested property [" + np + "]"));
        }
    }

  @Test
  public void testBooleanMapping() {
    SpecialCase sc = new SpecialCase();
    sc.setChecked(true);
    sc.totalCost = new BigDecimal("42.50");
   
    MapperFacade mapper = MappingUtil.getMapperFactory().getMapperFacade();
    SpecialCaseDto dto = mapper.map(sc, SpecialCaseDto.class);
   
    Assert.assertEquals(sc.isChecked(), Boolean.valueOf(dto.isChecked()));
    //Assert.assertEquals(sc.totalCost.doubleValue(), dto.getTotalCost(), 0.01d);
  }
 
  @Test
  public void testOverridePropertyDefinition() {
     
      Map<String, Property> properties = propertyResolver.getProperties(PostalAddress.class);
      Property city = properties.get("city");
     
      Assert.assertNotNull(city.getSetter());
  }
 
  public static class Point {
    private int x, y;

    public int getX() {
      return x;
    }

    public void setX(int x) {
      this.x = x;
    }

    public int getY() {
      return y;
    }

    public void setY(int y) {
      this.y = y;
    }
  }

  public static class Line {
    private Point start;
    private Point end;

    public Point getStart() {
      return start;
    }

    public void setStart(Point start) {
      this.start = start;
    }

    public Point getEnd() {
      return end;
    }

    public void setEnd(Point end) {
      this.end = end;
    }
  }

  public static class LineDTO {
    private int x0, y0, x1, y1;

    public int getX0() {
      return x0;
    }

    public void setX0(int x0) {
      this.x0 = x0;
    }

    public int getY0() {
      return y0;
    }

    public void setY0(int y0) {
      this.y0 = y0;
    }

    public int getX1() {
      return x1;
    }

    public void setX1(int x1) {
      this.x1 = x1;
    }

    public int getY1() {
      return y1;
    }

    public void setY1(int y1) {
      this.y1 = y1;
    }

  }
 
  public static class SpecialCase {
   
    private Boolean checked;
    public BigDecimal totalCost;
   
   
    public Boolean isChecked() {
          return checked;
        }

    public void setChecked(Boolean checked) {
          this.checked = checked;
        }
  }
 
  public static class SpecialCaseDto {
   
    private boolean checked;
    private double totalCost;
   
    public boolean isChecked() {
          return checked;
        }
    public void setChecked(boolean checked) {
          this.checked = checked;
        }
    public double getTotalCost() {
          return totalCost;
        }
    public void setTotalCost(double totalCost) {
          this.totalCost = totalCost;
        }
  }
 
  public static interface Address {
        public String getStreet();
        public String getCity();
        public String getSubnational();
        public String getPostalCode();
        public String getCountry();
    }
 
  public static class PostalAddress implements Address {
     
      private String street;
      private String city;
      private String subnational;
      private String postalCode;
      private String country;
        public String getStreet() {
            return street;
        }
        public void setStreet(String street) {
            this.street = street;
        }
        public String getCity() {
            return city;
        }
        public void setCity(String city) {
            this.city = city;
        }
        public String getSubnational() {
            return subnational;
        }
        public void setSubnational(String subnational) {
            this.subnational = subnational;
        }
        public String getPostalCode() {
            return postalCode;
        }
        public void setPostalCode(String postalCode) {
            this.postalCode = postalCode;
        }
        public String getCountry() {
            return country;
        }
        public void setCountry(String country) {
            this.country = country;
        }
  }
 

}
TOP

Related Classes of ma.glasnost.orika.test.property.IntrospectorResolverTestCase$Line

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.