Skip to content

Commit e09cfce

Browse files
committed
Create tests
1 parent d94959f commit e09cfce

File tree

5 files changed

+89
-0
lines changed

5 files changed

+89
-0
lines changed

build.gradle

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,20 @@ repositories {
1919
ext {
2020
set('mapstructVersion', '1.5.3.Final')
2121
set('mapstructLombokVersion', '0.2.0')
22+
set('lombokVersion', '1.18.24')
23+
set('springBootVersion', '3.0.1')
2224
}
2325

2426
dependencies {
2527
api "org.mapstruct:mapstruct:${mapstructVersion}"
2628
api "org.mapstruct:mapstruct-processor:${mapstructVersion}"
2729
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}"
2836
}
2937

3038
test {
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
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+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
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+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
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+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
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+
}

0 commit comments

Comments
 (0)