File tree Expand file tree Collapse file tree 5 files changed +89
-0
lines changed
src/test/java/dev/alexengrig/mapstruct/spring Expand file tree Collapse file tree 5 files changed +89
-0
lines changed Original file line number Diff line number Diff line change @@ -19,12 +19,20 @@ repositories {
19
19
ext {
20
20
set(' mapstructVersion' , ' 1.5.3.Final' )
21
21
set(' mapstructLombokVersion' , ' 0.2.0' )
22
+ set(' lombokVersion' , ' 1.18.24' )
23
+ set(' springBootVersion' , ' 3.0.1' )
22
24
}
23
25
24
26
dependencies {
25
27
api " org.mapstruct:mapstruct:${ mapstructVersion} "
26
28
api " org.mapstruct:mapstruct-processor:${ mapstructVersion} "
27
29
api " org.projectlombok:lombok-mapstruct-binding:${ mapstructLombokVersion} "
30
+
31
+ testAnnotationProcessor " org.mapstruct:mapstruct-processor:${ mapstructVersion} "
32
+ testAnnotationProcessor " org.projectlombok:lombok-mapstruct-binding:${ mapstructLombokVersion} "
33
+ testAnnotationProcessor " org.projectlombok:lombok:${ lombokVersion} "
34
+ testCompileOnly " org.projectlombok:lombok:${ lombokVersion} "
35
+ testImplementation " org.springframework.boot:spring-boot-starter-test:${ springBootVersion} "
28
36
}
29
37
30
38
test {
Original file line number Diff line number Diff line change
1
+ package dev .alexengrig .mapstruct .spring .domain ;
2
+
3
+ import lombok .AllArgsConstructor ;
4
+ import lombok .Builder ;
5
+ import lombok .Data ;
6
+ import lombok .NoArgsConstructor ;
7
+
8
+ @ Data
9
+ @ Builder
10
+ @ NoArgsConstructor
11
+ @ AllArgsConstructor
12
+ public class MyDomain {
13
+
14
+ private Long id ;
15
+ private String value ;
16
+ private long size ;
17
+ private boolean archived ;
18
+
19
+ }
Original file line number Diff line number Diff line change
1
+ package dev .alexengrig .mapstruct .spring .dto ;
2
+
3
+ import lombok .AllArgsConstructor ;
4
+ import lombok .Builder ;
5
+ import lombok .Data ;
6
+ import lombok .NoArgsConstructor ;
7
+
8
+ @ Data
9
+ @ Builder
10
+ @ NoArgsConstructor
11
+ @ AllArgsConstructor
12
+ public class MyDto {
13
+
14
+ private Long id ;
15
+ private String value ;
16
+
17
+ }
Original file line number Diff line number Diff line change
1
+ package dev .alexengrig .mapstruct .spring .mapper ;
2
+
3
+ import dev .alexengrig .mapstruct .spring .config .SpringMapStructConfig ;
4
+ import dev .alexengrig .mapstruct .spring .domain .MyDomain ;
5
+ import dev .alexengrig .mapstruct .spring .dto .MyDto ;
6
+ import org .mapstruct .Mapper ;
7
+ import org .mapstruct .Mapping ;
8
+
9
+ @ Mapper (config = SpringMapStructConfig .class )
10
+ interface MySimpleMapper extends SimpleMapper <MyDto , MyDomain > {
11
+
12
+ @ Mapping (target = "size" , expression = "java(myDto.getValue() != null ? myDto.getValue().length() : -1)" )
13
+ @ Mapping (target = "archived" , constant = "false" )
14
+ @ Override
15
+ MyDomain map (MyDto myDto );
16
+
17
+ }
Original file line number Diff line number Diff line change
1
+ package dev .alexengrig .mapstruct .spring .mapper ;
2
+
3
+ import dev .alexengrig .mapstruct .spring .domain .MyDomain ;
4
+ import dev .alexengrig .mapstruct .spring .dto .MyDto ;
5
+ import org .junit .jupiter .api .Test ;
6
+ import org .springframework .beans .factory .annotation .Autowired ;
7
+ import org .springframework .boot .test .context .SpringBootTest ;
8
+
9
+ import static org .junit .jupiter .api .Assertions .assertEquals ;
10
+ import static org .junit .jupiter .api .Assertions .assertFalse ;
11
+
12
+ @ SpringBootTest (classes = MapStructMySimpleMapper .class )
13
+ class MySimpleMapperTest {
14
+
15
+ @ Test
16
+ void should_map_dto_to_domain (@ Autowired MySimpleMapper mapper ) {
17
+ MyDto dto = MyDto .builder ()
18
+ .id (1L )
19
+ .value ("one" )
20
+ .build ();
21
+ MyDomain domain = mapper .map (dto );
22
+ assertEquals (1L , domain .getId ());
23
+ assertEquals ("one" , domain .getValue ());
24
+ assertEquals (3 , domain .getSize ());
25
+ assertFalse (domain .isArchived ());
26
+ }
27
+
28
+ }
You can’t perform that action at this time.
0 commit comments