Skip to content

Commit f0947ae

Browse files
committed
added code for mapstruct tutorial
1 parent 55ea01d commit f0947ae

8 files changed

Lines changed: 108 additions & 76 deletions

File tree

mapstruct/src/main/java/org/baeldung/dto/EmployeeDTO.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ public class EmployeeDTO {
55
private int employeeId;
66
private String employeeName;
77
private DivisionDTO division;
8+
private String employeeStartDt;
89

910
public int getEmployeeId() {
1011
return employeeId;
@@ -30,4 +31,12 @@ public void setDivision(DivisionDTO division) {
3031
this.division = division;
3132
}
3233

34+
public String getEmployeeStartDt() {
35+
return employeeStartDt;
36+
}
37+
38+
public void setEmployeeStartDt(String employeeStartDt) {
39+
this.employeeStartDt = employeeStartDt;
40+
}
41+
3342
}

mapstruct/src/main/java/org/baeldung/entity/Employee.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
package org.baeldung.entity;
22

3+
import java.util.Date;
4+
35
public class Employee {
46

57
private int id;
68
private String name;
79
private Division division;
10+
private Date startDt;
811

912
public int getId() {
1013
return id;
@@ -30,4 +33,12 @@ public void setDivision(Division division) {
3033
this.division = division;
3134
}
3235

36+
public Date getStartDt() {
37+
return startDt;
38+
}
39+
40+
public void setStartDt(Date startDt) {
41+
this.startDt = startDt;
42+
}
43+
3344
}

mapstruct/src/main/java/org/baeldung/mapper/EmployeeMapper.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package org.baeldung.mapper;
22

3+
import java.util.List;
4+
35
import org.baeldung.dto.DivisionDTO;
46
import org.baeldung.dto.EmployeeDTO;
57
import org.baeldung.entity.Division;
@@ -11,14 +13,22 @@
1113
@Mapper
1214
public interface EmployeeMapper {
1315

14-
@Mappings({ @Mapping(target = "employeeId", source = "entity.id"), @Mapping(target = "employeeName", source = "entity.name") })
16+
@Mappings({ @Mapping(target = "employeeId", source = "entity.id"),
17+
@Mapping(target = "employeeName", source = "entity.name"),
18+
@Mapping(target = "employeeStartDt",source = "entity.startDt", dateFormat = "dd-MM-yyyy HH:mm:ss")})
1519
EmployeeDTO employeeToEmployeeDTO(Employee entity);
1620

17-
@Mappings({ @Mapping(target = "id", source = "dto.employeeId"), @Mapping(target = "name", source = "dto.employeeName") })
21+
@Mappings({ @Mapping(target = "id", source = "dto.employeeId"),
22+
@Mapping(target = "name", source = "dto.employeeName"),
23+
@Mapping(target = "startDt",source = "dto.employeeStartDt", dateFormat = "dd-MM-yyyy HH:mm:ss")})
1824
Employee employeeDTOtoEmployee(EmployeeDTO dto);
1925

2026
DivisionDTO divisionToDivisionDTO(Division entity);
2127

2228
Division divisionDTOtoDivision(DivisionDTO dto);
2329

30+
List<Employee> convertEmployeeDTOListToEmployeeList(List<EmployeeDTO> list);
31+
32+
List<EmployeeDTO> convertEmployeeListToEmployeeDTOList(List<Employee> list);
33+
2434
}

mapstruct/src/main/java/org/baeldung/mapper/SimpleSourceDestinationMapper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import org.baeldung.entity.SimpleDestination;
55
import org.mapstruct.Mapper;
66

7-
@Mapper
7+
@Mapper(componentModel = "spring")
88
public interface SimpleSourceDestinationMapper {
99

1010
SimpleDestination sourceToDestination(SimpleSource source);

mapstruct/src/main/java/org/baeldung/mapper/SimpleSourceDestinationSpringMapper.java

Lines changed: 0 additions & 14 deletions
This file was deleted.

mapstruct/src/test/java/org/baeldung/mapper/EmployeeMapperTest.java

Lines changed: 65 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22

33
import static org.junit.Assert.assertEquals;
44

5+
import java.text.ParseException;
6+
import java.text.SimpleDateFormat;
7+
import java.util.ArrayList;
8+
import java.util.Date;
9+
import java.util.List;
10+
511
import org.baeldung.dto.DivisionDTO;
612
import org.baeldung.dto.EmployeeDTO;
713
import org.baeldung.entity.Division;
@@ -11,10 +17,12 @@
1117

1218
public class EmployeeMapperTest {
1319

20+
EmployeeMapper mapper = Mappers.getMapper(EmployeeMapper.class);
21+
22+
private static final String DATE_FORMAT = "dd-MM-yyyy HH:mm:ss";
23+
1424
@Test
1525
public void givenEmployeeDTOwithDiffNametoEmployee_whenMaps_thenCorrect() {
16-
EmployeeMapper mapper = Mappers.getMapper(EmployeeMapper.class);
17-
1826
EmployeeDTO dto = new EmployeeDTO();
1927
dto.setEmployeeId(1);
2028
dto.setEmployeeName("John");
@@ -27,8 +35,6 @@ public void givenEmployeeDTOwithDiffNametoEmployee_whenMaps_thenCorrect() {
2735

2836
@Test
2937
public void givenEmployeewithDiffNametoEmployeeDTO_whenMaps_thenCorrect() {
30-
EmployeeMapper mapper = Mappers.getMapper(EmployeeMapper.class);
31-
3238
Employee entity = new Employee();
3339
entity.setId(1);
3440
entity.setName("John");
@@ -41,8 +47,6 @@ public void givenEmployeewithDiffNametoEmployeeDTO_whenMaps_thenCorrect() {
4147

4248
@Test
4349
public void givenEmployeeDTOwithNestedMappingToEmployee_whenMaps_thenCorrect() {
44-
EmployeeMapper mapper = Mappers.getMapper(EmployeeMapper.class);
45-
4650
EmployeeDTO dto = new EmployeeDTO();
4751
dto.setDivision(new DivisionDTO(1, "Division1"));
4852

@@ -54,8 +58,6 @@ public void givenEmployeeDTOwithNestedMappingToEmployee_whenMaps_thenCorrect() {
5458

5559
@Test
5660
public void givenEmployeeWithNestedMappingToEmployeeDTO_whenMaps_thenCorrect() {
57-
EmployeeMapper mapper = Mappers.getMapper(EmployeeMapper.class);
58-
5961
Employee entity = new Employee();
6062
entity.setDivision(new Division(1, "Division1"));
6163

@@ -65,4 +67,59 @@ public void givenEmployeeWithNestedMappingToEmployeeDTO_whenMaps_thenCorrect() {
6567
assertEquals(dto.getDivision().getName(), entity.getDivision().getName());
6668
}
6769

70+
@Test
71+
public void givenEmployeeListToEmployeeDTOList_whenMaps_thenCorrect() {
72+
List<Employee> employeeList = new ArrayList<>();
73+
Employee emp = new Employee();
74+
emp.setId(1);
75+
emp.setName("EmpName");
76+
emp.setDivision(new Division(1, "Division1"));
77+
employeeList.add(emp);
78+
79+
List<EmployeeDTO> employeeDtoList = mapper.convertEmployeeListToEmployeeDTOList(employeeList);
80+
EmployeeDTO employeeDTO = employeeDtoList.get(0);
81+
assertEquals(employeeDTO.getEmployeeId(), emp.getId());
82+
assertEquals(employeeDTO.getEmployeeName(), emp.getName());
83+
assertEquals(employeeDTO.getDivision().getId(), emp.getDivision().getId());
84+
assertEquals(employeeDTO.getDivision().getName(), emp.getDivision().getName());
85+
}
86+
87+
@Test
88+
public void givenEmployeeDTOListToEmployeeList_whenMaps_thenCorrect() {
89+
List<EmployeeDTO> employeeDTOList = new ArrayList<>();
90+
EmployeeDTO empDTO = new EmployeeDTO();
91+
empDTO.setEmployeeId(1);
92+
empDTO.setEmployeeName("EmpName");
93+
empDTO.setDivision(new DivisionDTO(1, "Division1"));
94+
employeeDTOList.add(empDTO);
95+
96+
List<Employee> employeeList = mapper.convertEmployeeDTOListToEmployeeList(employeeDTOList);
97+
Employee employee = employeeList.get(0);
98+
assertEquals(employee.getId(), empDTO.getEmployeeId());
99+
assertEquals(employee.getName(), empDTO.getEmployeeName());
100+
assertEquals(employee.getDivision().getId(), empDTO.getDivision().getId());
101+
assertEquals(employee.getDivision().getName(), empDTO.getDivision().getName());
102+
}
103+
104+
@Test
105+
public void givenEmployeeWithStartDateMappingToEmployeeDTO_whenMaps_thenCorrect() throws ParseException {
106+
Employee entity = new Employee();
107+
entity.setStartDt(new Date());
108+
109+
EmployeeDTO dto = mapper.employeeToEmployeeDTO(entity);
110+
SimpleDateFormat format = new SimpleDateFormat(DATE_FORMAT);
111+
assertEquals(format.parse(dto.getEmployeeStartDt()).toString(),
112+
entity.getStartDt().toString());
113+
}
114+
115+
@Test
116+
public void givenEmployeeDTOWithStartDateMappingToEmployee_whenMaps_thenCorrect() throws ParseException {
117+
EmployeeDTO dto = new EmployeeDTO();
118+
dto.setEmployeeStartDt("01-04-2016 01:00:00");
119+
120+
Employee entity = mapper.employeeDTOtoEmployee(dto);
121+
SimpleDateFormat format = new SimpleDateFormat(DATE_FORMAT);
122+
assertEquals(format.parse(dto.getEmployeeStartDt()).toString(),
123+
entity.getStartDt().toString());
124+
}
68125
}

mapstruct/src/test/java/org/baeldung/mapper/SimpleSourceDestinationMapperTest.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,24 @@
11
package org.baeldung.mapper;
22

3-
import static org.junit.Assert.*;
3+
import static org.junit.Assert.assertEquals;
44

55
import org.baeldung.dto.SimpleSource;
66
import org.baeldung.entity.SimpleDestination;
77
import org.junit.Test;
8-
import org.mapstruct.factory.Mappers;
8+
import org.junit.runner.RunWith;
9+
import org.springframework.beans.factory.annotation.Autowired;
10+
import org.springframework.test.context.ContextConfiguration;
11+
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
912

13+
@RunWith(SpringJUnit4ClassRunner.class)
14+
@ContextConfiguration("classpath:applicationContext.xml")
1015
public class SimpleSourceDestinationMapperTest {
1116

17+
@Autowired
18+
SimpleSourceDestinationMapper simpleSourceDestinationMapper;
19+
1220
@Test
1321
public void givenSimpleSourceToSimpleDestination_whenMaps_thenCorrect() {
14-
SimpleSourceDestinationMapper simpleSourceDestinationMapper = Mappers.getMapper(SimpleSourceDestinationMapper.class);
15-
1622
SimpleSource simpleSource = new SimpleSource();
1723
simpleSource.setName("SourceName");
1824
simpleSource.setDescription("SourceDescription");
@@ -25,8 +31,6 @@ public void givenSimpleSourceToSimpleDestination_whenMaps_thenCorrect() {
2531

2632
@Test
2733
public void givenSimpleDestinationToSourceDestination_whenMaps_thenCorrect() {
28-
SimpleSourceDestinationMapper simpleSourceDestinationMapper = Mappers.getMapper(SimpleSourceDestinationMapper.class);
29-
3034
SimpleDestination destination = new SimpleDestination();
3135
destination.setName("DestinationName");
3236
destination.setDescription("DestinationDescription");

mapstruct/src/test/java/org/baeldung/mapper/SimpleSourceDestinationSpringMapperTest.java

Lines changed: 0 additions & 45 deletions
This file was deleted.

0 commit comments

Comments
 (0)