added dozer tutorial maven project
This commit is contained in:
		
							parent
							
								
									12e8296e65
								
							
						
					
					
						commit
						24dba2108a
					
				
							
								
								
									
										59
									
								
								dozer-tutorial/pom.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								dozer-tutorial/pom.xml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,59 @@ | ||||
| <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||||
|   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> | ||||
| 	<modelVersion>4.0.0</modelVersion> | ||||
| 	<groupId>com.baeldung</groupId> | ||||
| 	<artifactId>dozer-tutorial</artifactId> | ||||
| 	<version>1.0</version> | ||||
| 	<name>Dozer</name> | ||||
|    <build> | ||||
|     <plugins> | ||||
|       <plugin> | ||||
|         <groupId>org.apache.maven.plugins</groupId> | ||||
|         <artifactId>maven-compiler-plugin</artifactId> | ||||
|         <version>3.3</version> | ||||
|         <configuration> | ||||
|           <source>7</source> | ||||
|           <target>7</target> | ||||
|         </configuration> | ||||
|       </plugin> | ||||
|     </plugins> | ||||
|   </build> | ||||
| 	<dependencies> | ||||
| <dependency> | ||||
|     <groupId>org.slf4j</groupId> | ||||
|     <artifactId>slf4j-api</artifactId> | ||||
|     <version>1.7.5</version> | ||||
| </dependency> | ||||
| 
 | ||||
| <dependency> | ||||
|     <groupId>org.slf4j</groupId> | ||||
|     <artifactId>jcl-over-slf4j</artifactId> | ||||
|     <version>1.7.5</version> | ||||
| </dependency> | ||||
| 
 | ||||
| <dependency> | ||||
|     <groupId>org.apache.commons</groupId> | ||||
|     <artifactId>commons-lang3</artifactId> | ||||
|     <version>3.2.1</version> | ||||
| </dependency> | ||||
| 
 | ||||
| <dependency> | ||||
|     <groupId>commons-beanutils</groupId> | ||||
|     <artifactId>commons-beanutils</artifactId> | ||||
|     <version>1.9.1</version> | ||||
| </dependency> | ||||
| 
 | ||||
| <dependency> | ||||
|     <groupId>net.sf.dozer</groupId> | ||||
|     <artifactId>dozer</artifactId> | ||||
|     <version>5.5.1</version> | ||||
| </dependency> | ||||
| 		<dependency> | ||||
| 			<groupId>junit</groupId> | ||||
| 			<artifactId>junit</artifactId> | ||||
| 			<version>4.3</version> | ||||
| 			<scope>test</scope> | ||||
| 		</dependency> | ||||
| 
 | ||||
| 	</dependencies> | ||||
| </project> | ||||
							
								
								
									
										33
									
								
								dozer-tutorial/src/main/java/com/baeldung/dozer/Dest.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								dozer-tutorial/src/main/java/com/baeldung/dozer/Dest.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,33 @@ | ||||
| package com.baeldung.dozer; | ||||
| 
 | ||||
| public class Dest { | ||||
| 	private String name; | ||||
| 	private int age; | ||||
| 
 | ||||
| 	public Dest() { | ||||
| 
 | ||||
| 	} | ||||
| 
 | ||||
| 	public Dest(String name, int age) { | ||||
| 		super(); | ||||
| 		this.name = name; | ||||
| 		this.age = age; | ||||
| 	} | ||||
| 
 | ||||
| 	public String getName() { | ||||
| 		return name; | ||||
| 	} | ||||
| 
 | ||||
| 	public void setName(String name) { | ||||
| 		this.name = name; | ||||
| 	} | ||||
| 
 | ||||
| 	public int getAge() { | ||||
| 		return age; | ||||
| 	} | ||||
| 
 | ||||
| 	public void setAge(int age) { | ||||
| 		this.age = age; | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
							
								
								
									
										38
									
								
								dozer-tutorial/src/main/java/com/baeldung/dozer/Dest2.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								dozer-tutorial/src/main/java/com/baeldung/dozer/Dest2.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,38 @@ | ||||
| package com.baeldung.dozer; | ||||
| 
 | ||||
| public class Dest2 { | ||||
| 	private int id; | ||||
| 	private int points; | ||||
| 
 | ||||
| 	public Dest2() { | ||||
| 
 | ||||
| 	} | ||||
| 
 | ||||
| 	public Dest2(int id, int points) { | ||||
| 		super(); | ||||
| 		this.id = id; | ||||
| 		this.points = points; | ||||
| 	} | ||||
| 
 | ||||
| 	public int getId() { | ||||
| 		return id; | ||||
| 	} | ||||
| 
 | ||||
| 	public void setId(int id) { | ||||
| 		this.id = id; | ||||
| 	} | ||||
| 
 | ||||
| 	public int getPoints() { | ||||
| 		return points; | ||||
| 	} | ||||
| 
 | ||||
| 	public void setPoints(int points) { | ||||
| 		this.points = points; | ||||
| 	} | ||||
| 
 | ||||
| 	@Override | ||||
| 	public String toString() { | ||||
| 		return "Dest2 [id=" + id + ", points=" + points + "]"; | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
| @ -0,0 +1,48 @@ | ||||
| package com.baeldung.dozer; | ||||
| 
 | ||||
| import java.text.DateFormat; | ||||
| import java.text.ParseException; | ||||
| import java.text.SimpleDateFormat; | ||||
| import java.util.Date; | ||||
| 
 | ||||
| import org.dozer.CustomConverter; | ||||
| import org.dozer.MappingException; | ||||
| 
 | ||||
| public class MyCustomConvertor implements CustomConverter { | ||||
| 
 | ||||
| 	@Override | ||||
| 	public Object convert(Object dest, Object source, Class<?> arg2, | ||||
| 			Class<?> arg3) { | ||||
| 		if (source == null) { | ||||
| 			return null; | ||||
| 		} | ||||
| 		if (source instanceof Personne3) { | ||||
| 			Personne3 person = (Personne3) source; | ||||
| 			Date date = new Date(person.getDtob()); | ||||
| 			DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); | ||||
| 			String isoDate = format.format(date); | ||||
| 			return new Person3(person.getName(), isoDate); | ||||
| 
 | ||||
| 		} else if (source instanceof Person3) { | ||||
| 			Person3 person = (Person3) source; | ||||
| 			DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); | ||||
| 			Date date = null; | ||||
| 			try { | ||||
| 				date = format.parse(person.getDtob()); | ||||
| 
 | ||||
| 			} catch (ParseException e) { | ||||
| 				throw new MappingException("Converter MyCustomConvertor " | ||||
| 						+ "used incorrectly:" + e.getMessage()); | ||||
| 			} | ||||
| 			long timestamp = date.getTime(); | ||||
| 			return new Personne3(person.getName(), timestamp); | ||||
| 
 | ||||
| 		} else { | ||||
| 			throw new MappingException("Converter MyCustomConvertor " | ||||
| 					+ "used incorrectly. Arguments passed in were:" + dest | ||||
| 					+ " and " + source); | ||||
| 
 | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
							
								
								
									
										43
									
								
								dozer-tutorial/src/main/java/com/baeldung/dozer/Person.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								dozer-tutorial/src/main/java/com/baeldung/dozer/Person.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,43 @@ | ||||
| package com.baeldung.dozer; | ||||
| 
 | ||||
| public class Person { | ||||
| 	private String name; | ||||
| 	private String nickname; | ||||
| 	private int age; | ||||
| 
 | ||||
| 	public Person() { | ||||
| 
 | ||||
| 	} | ||||
| 
 | ||||
| 	public Person(String name, String nickname, int age) { | ||||
| 		super(); | ||||
| 		this.name = name; | ||||
| 		this.nickname = nickname; | ||||
| 		this.age = age; | ||||
| 	} | ||||
| 
 | ||||
| 	public String getName() { | ||||
| 		return name; | ||||
| 	} | ||||
| 
 | ||||
| 	public void setName(String name) { | ||||
| 		this.name = name; | ||||
| 	} | ||||
| 
 | ||||
| 	public String getNickname() { | ||||
| 		return nickname; | ||||
| 	} | ||||
| 
 | ||||
| 	public void setNickname(String nickname) { | ||||
| 		this.nickname = nickname; | ||||
| 	} | ||||
| 
 | ||||
| 	public int getAge() { | ||||
| 		return age; | ||||
| 	} | ||||
| 
 | ||||
| 	public void setAge(int age) { | ||||
| 		this.age = age; | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
							
								
								
									
										43
									
								
								dozer-tutorial/src/main/java/com/baeldung/dozer/Person2.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								dozer-tutorial/src/main/java/com/baeldung/dozer/Person2.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,43 @@ | ||||
| package com.baeldung.dozer; | ||||
| 
 | ||||
| public class Person2 { | ||||
| 	private String name; | ||||
| 	private String nickname; | ||||
| 	private int age; | ||||
| 
 | ||||
| 	public Person2() { | ||||
| 
 | ||||
| 	} | ||||
| 
 | ||||
| 	public Person2(String name, String nickname, int age) { | ||||
| 		super(); | ||||
| 		this.name = name; | ||||
| 		this.nickname = nickname; | ||||
| 		this.age = age; | ||||
| 	} | ||||
| 
 | ||||
| 	public String getName() { | ||||
| 		return name; | ||||
| 	} | ||||
| 
 | ||||
| 	public void setName(String name) { | ||||
| 		this.name = name; | ||||
| 	} | ||||
| 
 | ||||
| 	public String getNickname() { | ||||
| 		return nickname; | ||||
| 	} | ||||
| 
 | ||||
| 	public void setNickname(String nickname) { | ||||
| 		this.nickname = nickname; | ||||
| 	} | ||||
| 
 | ||||
| 	public int getAge() { | ||||
| 		return age; | ||||
| 	} | ||||
| 
 | ||||
| 	public void setAge(int age) { | ||||
| 		this.age = age; | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
							
								
								
									
										39
									
								
								dozer-tutorial/src/main/java/com/baeldung/dozer/Person3.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								dozer-tutorial/src/main/java/com/baeldung/dozer/Person3.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,39 @@ | ||||
| package com.baeldung.dozer; | ||||
| 
 | ||||
| public class Person3 { | ||||
| 	private String name; | ||||
| 	private String dtob; | ||||
| 
 | ||||
| 	public Person3() { | ||||
| 
 | ||||
| 	} | ||||
| 
 | ||||
| 	public Person3(String name, String dtob) { | ||||
| 		super(); | ||||
| 		this.name = name; | ||||
| 		this.dtob = dtob; | ||||
| 	} | ||||
| 
 | ||||
| 	public String getName() { | ||||
| 		return name; | ||||
| 	} | ||||
| 
 | ||||
| 	public void setName(String name) { | ||||
| 		this.name = name; | ||||
| 	} | ||||
| 
 | ||||
| 	public String getDtob() { | ||||
| 		return dtob; | ||||
| 	} | ||||
| 
 | ||||
| 	public void setDtob(String dtob) { | ||||
| 		this.dtob = dtob; | ||||
| 	} | ||||
| 
 | ||||
| 	@Override | ||||
| 	public String toString() { | ||||
| 		return "Person3 [name=" + name + ", dtob=" + dtob + "]"; | ||||
| 	} | ||||
| 
 | ||||
| 
 | ||||
| } | ||||
| @ -0,0 +1,43 @@ | ||||
| package com.baeldung.dozer; | ||||
| 
 | ||||
| public class Personne { | ||||
| 	private String nom; | ||||
| 	private String surnom; | ||||
| 	private int age; | ||||
| 
 | ||||
| 	public Personne() { | ||||
| 
 | ||||
| 	} | ||||
| 
 | ||||
| 	public Personne(String nom, String surnom, int age) { | ||||
| 		super(); | ||||
| 		this.nom = nom; | ||||
| 		this.surnom = surnom; | ||||
| 		this.age = age; | ||||
| 	} | ||||
| 
 | ||||
| 	public String getNom() { | ||||
| 		return nom; | ||||
| 	} | ||||
| 
 | ||||
| 	public void setNom(String nom) { | ||||
| 		this.nom = nom; | ||||
| 	} | ||||
| 
 | ||||
| 	public String getSurnom() { | ||||
| 		return surnom; | ||||
| 	} | ||||
| 
 | ||||
| 	public void setSurnom(String surnom) { | ||||
| 		this.surnom = surnom; | ||||
| 	} | ||||
| 
 | ||||
| 	public int getAge() { | ||||
| 		return age; | ||||
| 	} | ||||
| 
 | ||||
| 	public void setAge(int age) { | ||||
| 		this.age = age; | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
| @ -0,0 +1,47 @@ | ||||
| package com.baeldung.dozer; | ||||
| 
 | ||||
| import org.dozer.Mapping; | ||||
| 
 | ||||
| public class Personne2 { | ||||
| 	private String nom; | ||||
| 	private String surnom; | ||||
| 	private int age; | ||||
| 
 | ||||
| 	public Personne2() { | ||||
| 
 | ||||
| 	} | ||||
| 
 | ||||
| 	public Personne2(String nom, String surnom, int age) { | ||||
| 		super(); | ||||
| 		this.nom = nom; | ||||
| 		this.surnom = surnom; | ||||
| 		this.age = age; | ||||
| 	} | ||||
| 
 | ||||
| 	@Mapping("name") | ||||
| 	public String getNom() { | ||||
| 		return nom; | ||||
| 	} | ||||
| 
 | ||||
| 	@Mapping("nickname") | ||||
| 	public String getSurnom() { | ||||
| 		return surnom; | ||||
| 	} | ||||
| 
 | ||||
| 	public void setNom(String nom) { | ||||
| 		this.nom = nom; | ||||
| 	} | ||||
| 
 | ||||
| 	public void setSurnom(String surnom) { | ||||
| 		this.surnom = surnom; | ||||
| 	} | ||||
| 
 | ||||
| 	public int getAge() { | ||||
| 		return age; | ||||
| 	} | ||||
| 
 | ||||
| 	public void setAge(int age) { | ||||
| 		this.age = age; | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
| @ -0,0 +1,38 @@ | ||||
| package com.baeldung.dozer; | ||||
| 
 | ||||
| public class Personne3 { | ||||
| 	private String name; | ||||
| 	private long dtob; | ||||
| 
 | ||||
| 	public Personne3() { | ||||
| 
 | ||||
| 	} | ||||
| 
 | ||||
| 	public Personne3(String name, long dtob) { | ||||
| 		super(); | ||||
| 		this.name = name; | ||||
| 		this.dtob = dtob; | ||||
| 	} | ||||
| 
 | ||||
| 	public String getName() { | ||||
| 		return name; | ||||
| 	} | ||||
| 
 | ||||
| 	public void setName(String name) { | ||||
| 		this.name = name; | ||||
| 	} | ||||
| 
 | ||||
| 	public long getDtob() { | ||||
| 		return dtob; | ||||
| 	} | ||||
| 
 | ||||
| 	public void setDtob(long dtob) { | ||||
| 		this.dtob = dtob; | ||||
| 	} | ||||
| 
 | ||||
| 	@Override | ||||
| 	public String toString() { | ||||
| 		return "Personne3 [name=" + name + ", dtob=" + dtob + "]"; | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
							
								
								
									
										32
									
								
								dozer-tutorial/src/main/java/com/baeldung/dozer/Source.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								dozer-tutorial/src/main/java/com/baeldung/dozer/Source.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,32 @@ | ||||
| package com.baeldung.dozer; | ||||
| 
 | ||||
| public class Source { | ||||
| 	private String name; | ||||
| 	private int age; | ||||
| 
 | ||||
| 	public Source() { | ||||
| 	} | ||||
| 
 | ||||
| 	public Source(String name, int age) { | ||||
| 		super(); | ||||
| 		this.name = name; | ||||
| 		this.age = age; | ||||
| 	} | ||||
| 
 | ||||
| 	public String getName() { | ||||
| 		return name; | ||||
| 	} | ||||
| 
 | ||||
| 	public void setName(String name) { | ||||
| 		this.name = name; | ||||
| 	} | ||||
| 
 | ||||
| 	public int getAge() { | ||||
| 		return age; | ||||
| 	} | ||||
| 
 | ||||
| 	public void setAge(int age) { | ||||
| 		this.age = age; | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
							
								
								
									
										38
									
								
								dozer-tutorial/src/main/java/com/baeldung/dozer/Source2.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								dozer-tutorial/src/main/java/com/baeldung/dozer/Source2.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,38 @@ | ||||
| package com.baeldung.dozer; | ||||
| 
 | ||||
| public class Source2 { | ||||
| 	private String id; | ||||
| 	private double points; | ||||
| 
 | ||||
| 	public Source2() { | ||||
| 
 | ||||
| 	} | ||||
| 
 | ||||
| 	public Source2(String id, double points) { | ||||
| 		super(); | ||||
| 		this.id = id; | ||||
| 		this.points = points; | ||||
| 	} | ||||
| 
 | ||||
| 	public String getId() { | ||||
| 		return id; | ||||
| 	} | ||||
| 
 | ||||
| 	public void setId(String id) { | ||||
| 		this.id = id; | ||||
| 	} | ||||
| 
 | ||||
| 	public double getPoints() { | ||||
| 		return points; | ||||
| 	} | ||||
| 
 | ||||
| 	public void setPoints(double points) { | ||||
| 		this.points = points; | ||||
| 	} | ||||
| 
 | ||||
| 	@Override | ||||
| 	public String toString() { | ||||
| 		return "Source2 [id=" + id + ", points=" + points + "]"; | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
							
								
								
									
										199
									
								
								dozer-tutorial/src/test/java/com/baeldung/dozer/DozerTest.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										199
									
								
								dozer-tutorial/src/test/java/com/baeldung/dozer/DozerTest.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,199 @@ | ||||
| package com.baeldung.dozer; | ||||
| 
 | ||||
| import static org.junit.Assert.assertEquals; | ||||
| 
 | ||||
| import java.util.ArrayList; | ||||
| import java.util.Arrays; | ||||
| import java.util.List; | ||||
| 
 | ||||
| import org.dozer.DozerBeanMapper; | ||||
| import org.dozer.loader.api.BeanMappingBuilder; | ||||
| import org.junit.Before; | ||||
| import org.junit.Test; | ||||
| 
 | ||||
| public class DozerTest { | ||||
| 	DozerBeanMapper mapper = new DozerBeanMapper(); | ||||
| 
 | ||||
| 	@Before | ||||
| 	public void before() throws Exception { | ||||
| 		mapper = new DozerBeanMapper(); | ||||
| 	} | ||||
| 
 | ||||
| 	BeanMappingBuilder builder = new BeanMappingBuilder() { | ||||
| 
 | ||||
| 		@Override | ||||
| 		protected void configure() { | ||||
| 			mapping(Person.class, Personne.class).fields("name", "nom").fields( | ||||
| 					"nickname", "surnom"); | ||||
| 
 | ||||
| 		} | ||||
| 	}; | ||||
| 	BeanMappingBuilder builderMinusAge = new BeanMappingBuilder() { | ||||
| 
 | ||||
| 		@Override | ||||
| 		protected void configure() { | ||||
| 			mapping(Person.class, Personne.class).fields("name", "nom") | ||||
| 					.fields("nickname", "surnom").exclude("age"); | ||||
| 
 | ||||
| 		} | ||||
| 	}; | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void givenApiMapper_whenMaps_thenCorrect() { | ||||
| 		Personne frenchAppPerson = new Personne("Sylvester Stallone", "Rambo", | ||||
| 				70); | ||||
| 		mapper.addMapping(builder); | ||||
| 		Person englishAppPerson = mapper.map(frenchAppPerson, Person.class); | ||||
| 		assertEquals(englishAppPerson.getName(), frenchAppPerson.getNom()); | ||||
| 		assertEquals(englishAppPerson.getNickname(), | ||||
| 				frenchAppPerson.getSurnom()); | ||||
| 		assertEquals(englishAppPerson.getAge(), frenchAppPerson.getAge()); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void givenApiMapper_whenMapsOnlySpecifiedFields_thenCorrect() { | ||||
| 		Person englishAppPerson = new Person("Sylvester Stallone", "Rambo", 70); | ||||
| 		mapper.addMapping(builderMinusAge); | ||||
| 		Personne frenchAppPerson = mapper.map(englishAppPerson, Personne.class); | ||||
| 		assertEquals(frenchAppPerson.getNom(), englishAppPerson.getName()); | ||||
| 		assertEquals(frenchAppPerson.getSurnom(), | ||||
| 				englishAppPerson.getNickname()); | ||||
| 		assertEquals(frenchAppPerson.getAge(), 0); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void givenApiMapper_whenMapsBidirectionally_thenCorrect() { | ||||
| 		Person englishAppPerson = new Person("Sylvester Stallone", "Rambo", 70); | ||||
| 		mapper.addMapping(builder); | ||||
| 		Personne frenchAppPerson = mapper.map(englishAppPerson, Personne.class); | ||||
| 		assertEquals(frenchAppPerson.getNom(), englishAppPerson.getName()); | ||||
| 		assertEquals(frenchAppPerson.getSurnom(), | ||||
| 				englishAppPerson.getNickname()); | ||||
| 		assertEquals(frenchAppPerson.getAge(), englishAppPerson.getAge()); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void givenSourceObjectAndDestClass_whenMapsSameNameFieldsCorrectly_thenCorrect() { | ||||
| 		Source source = new Source("Baeldung", 10); | ||||
| 		Dest dest = mapper.map(source, Dest.class); | ||||
| 		assertEquals(dest.getName(), "Baeldung"); | ||||
| 		assertEquals(dest.getAge(), 10); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void givenSourceObjectAndDestObject_whenMapsSameNameFieldsCorrectly_thenCorrect() { | ||||
| 		Source source = new Source("Baeldung", 10); | ||||
| 		Dest dest = new Dest(); | ||||
| 		mapper.map(source, dest); | ||||
| 		assertEquals(dest.getName(), "Baeldung"); | ||||
| 		assertEquals(dest.getAge(), 10); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void givenSourceAndDestWithDifferentFieldTypes_whenMapsAndAutoConverts_thenCorrect() { | ||||
| 		Source2 source = new Source2("320", 15.2); | ||||
| 		Dest2 dest = mapper.map(source, Dest2.class); | ||||
| 		assertEquals(dest.getId(), 320); | ||||
| 		assertEquals(dest.getPoints(), 15); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void givenSrcAndDestWithDifferentFieldNamesWithCustomMapper_whenMaps_thenCorrect() { | ||||
| 		List<String> mappingFiles = new ArrayList<>(); | ||||
| 		mappingFiles.add("dozer_mapping.xml"); | ||||
| 		Personne frenchAppPerson = new Personne("Sylvester Stallone", "Rambo", | ||||
| 				70); | ||||
| 		mapper.setMappingFiles(mappingFiles); | ||||
| 		Person englishAppPerson = mapper.map(frenchAppPerson, Person.class); | ||||
| 		assertEquals(englishAppPerson.getName(), frenchAppPerson.getNom()); | ||||
| 		assertEquals(englishAppPerson.getNickname(), | ||||
| 				frenchAppPerson.getSurnom()); | ||||
| 		assertEquals(englishAppPerson.getAge(), frenchAppPerson.getAge()); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void givenSrcAndDestWithDifferentFieldNamesWithCustomMapper_whenMapsBidirectionally_thenCorrect() { | ||||
| 		List<String> mappingFiles = new ArrayList<>(); | ||||
| 		mappingFiles.add("dozer_mapping.xml"); | ||||
| 		Person englishAppPerson = new Person("Dwayne Johnson", "The Rock", 44); | ||||
| 		mapper.setMappingFiles(mappingFiles); | ||||
| 		Personne frenchAppPerson = mapper.map(englishAppPerson, Personne.class); | ||||
| 		assertEquals(frenchAppPerson.getNom(), englishAppPerson.getName()); | ||||
| 		assertEquals(frenchAppPerson.getSurnom(), | ||||
| 				englishAppPerson.getNickname()); | ||||
| 		assertEquals(frenchAppPerson.getAge(), englishAppPerson.getAge()); | ||||
| 	} | ||||
| 
 | ||||
| //	@Test | ||||
| //	public void givenMappingFileOutsideClasspath_whenMaps_thenCorrect() { | ||||
| //		List<String> mappingFiles = new ArrayList<>(); | ||||
| //		mappingFiles.add("file:E:\\dozer_mapping.xml"); | ||||
| //		Person englishAppPerson = new Person("Marshall Bruce Mathers III", | ||||
| //				"Eminem", 43); | ||||
| //		mapper.setMappingFiles(mappingFiles); | ||||
| //		Personne frenchAppPerson = mapper.map(englishAppPerson, Personne.class); | ||||
| //		assertEquals(frenchAppPerson.getNom(), englishAppPerson.getName()); | ||||
| //		assertEquals(frenchAppPerson.getSurnom(), | ||||
| //				englishAppPerson.getNickname()); | ||||
| //		assertEquals(frenchAppPerson.getAge(), englishAppPerson.getAge()); | ||||
| //	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void givenSrcAndDest_whenMapsOnlySpecifiedFields_thenCorrect() { | ||||
| 		List<String> mappingFiles = new ArrayList<>(); | ||||
| 		mappingFiles.add("dozer_mapping2.xml"); | ||||
| 		Person englishAppPerson = new Person("Shawn Corey Carter", "Jay Z", 46); | ||||
| 		mapper.setMappingFiles(mappingFiles); | ||||
| 		Personne frenchAppPerson = mapper.map(englishAppPerson, Personne.class); | ||||
| 		assertEquals(frenchAppPerson.getNom(), englishAppPerson.getName()); | ||||
| 		assertEquals(frenchAppPerson.getSurnom(), | ||||
| 				englishAppPerson.getNickname()); | ||||
| 		assertEquals(frenchAppPerson.getAge(), 0); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void givenAnnotatedSrcFields_whenMapsToRightDestField_thenCorrect() { | ||||
| 		Person2 englishAppPerson = new Person2("Jean-Claude Van Damme", "JCVD", | ||||
| 				55); | ||||
| 		Personne2 frenchAppPerson = mapper.map(englishAppPerson, | ||||
| 				Personne2.class); | ||||
| 		assertEquals(frenchAppPerson.getNom(), englishAppPerson.getName()); | ||||
| 		assertEquals(frenchAppPerson.getSurnom(), | ||||
| 				englishAppPerson.getNickname()); | ||||
| 		assertEquals(frenchAppPerson.getAge(), englishAppPerson.getAge()); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void givenAnnotatedSrcFields_whenMapsToRightDestFieldBidirectionally_thenCorrect() { | ||||
| 		Personne2 frenchAppPerson = new Personne2("Jason Statham", | ||||
| 				"transporter", 49); | ||||
| 		Person2 englishAppPerson = mapper.map(frenchAppPerson, Person2.class); | ||||
| 		assertEquals(englishAppPerson.getName(), frenchAppPerson.getNom()); | ||||
| 		assertEquals(englishAppPerson.getNickname(), | ||||
| 				frenchAppPerson.getSurnom()); | ||||
| 		assertEquals(englishAppPerson.getAge(), frenchAppPerson.getAge()); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void givenSrcAndDestWithDifferentFieldTypes_whenAbleToCustomConvert_thenCorrect() { | ||||
| 		String dateTime = "2007-06-26T21:22:39Z"; | ||||
| 		long timestamp = new Long("1182882159000"); | ||||
| 		Person3 person = new Person3("Rich", dateTime); | ||||
| 		mapper.setMappingFiles(Arrays | ||||
| 				.asList(new String[] { "dozer_custom_convertor.xml" })); | ||||
| 		Personne3 person0 = mapper.map(person, Personne3.class); | ||||
| 		assertEquals(timestamp, person0.getDtob()); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void givenSrcAndDestWithDifferentFieldTypes_whenAbleToCustomConvertBidirectionally_thenCorrect() { | ||||
| 		String dateTime = "2007-06-26T21:22:39Z"; | ||||
| 		long timestamp = new Long("1182882159000"); | ||||
| 		Personne3 person = new Personne3("Rich", timestamp); | ||||
| 		mapper.setMappingFiles(Arrays | ||||
| 				.asList(new String[] { "dozer_custom_convertor.xml" })); | ||||
| 		Person3 person0 = mapper.map(person, Person3.class); | ||||
| 		assertEquals(dateTime, person0.getDtob()); | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
							
								
								
									
										14
									
								
								dozer-tutorial/src/test/resources/dozer_custom_convertor.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								dozer-tutorial/src/test/resources/dozer_custom_convertor.xml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,14 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <mappings xmlns="http://dozer.sourceforge.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||||
| 	xsi:schemaLocation="http://dozer.sourceforge.net | ||||
|           http://dozer.sourceforge.net/schema/beanmapping.xsd"> | ||||
| 	<configuration> | ||||
| 		<custom-converters> | ||||
| 			<converter type="com.baeldung.dozer.MyCustomConvertor"> | ||||
| 				<class-a>com.baeldung.dozer.Personne3</class-a> | ||||
| 				<class-b>com.baeldung.dozer.Person3</class-b> | ||||
| 			</converter> | ||||
| 		</custom-converters> | ||||
| 	</configuration> | ||||
| 
 | ||||
| </mappings> | ||||
							
								
								
									
										17
									
								
								dozer-tutorial/src/test/resources/dozer_mapping.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								dozer-tutorial/src/test/resources/dozer_mapping.xml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,17 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <mappings xmlns="http://dozer.sourceforge.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||||
| 	xsi:schemaLocation="http://dozer.sourceforge.net | ||||
|           http://dozer.sourceforge.net/schema/beanmapping.xsd"> | ||||
| 	<mapping> | ||||
| 		<class-a>com.baeldung.dozer.Personne</class-a> | ||||
| 		<class-b>com.baeldung.dozer.Person</class-b> | ||||
| 		<field> | ||||
| 			<a>nom</a> | ||||
| 			<b>name</b> | ||||
| 		</field> | ||||
| 		<field> | ||||
| 			<a>surnom</a> | ||||
| 			<b>nickname</b> | ||||
| 		</field> | ||||
| 	</mapping> | ||||
| </mappings>  | ||||
							
								
								
									
										17
									
								
								dozer-tutorial/src/test/resources/dozer_mapping2.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								dozer-tutorial/src/test/resources/dozer_mapping2.xml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,17 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <mappings xmlns="http://dozer.sourceforge.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||||
| 	xsi:schemaLocation="http://dozer.sourceforge.net | ||||
|           http://dozer.sourceforge.net/schema/beanmapping.xsd"> | ||||
| 	<mapping wildcard="false"> | ||||
| 		<class-a>com.baeldung.dozer.Personne</class-a> | ||||
| 		<class-b>com.baeldung.dozer.Person</class-b> | ||||
| 		<field> | ||||
| 			<a>nom</a> | ||||
| 			<b>name</b> | ||||
| 		</field> | ||||
| 		<field> | ||||
| 			<a>surnom</a> | ||||
| 			<b>nickname</b> | ||||
| 		</field> | ||||
| 	</mapping> | ||||
| </mappings>  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user