diff --git a/pom.xml b/pom.xml index cd11cfffd..251f85ea5 100644 --- a/pom.xml +++ b/pom.xml @@ -1,118 +1,158 @@ - 4.0.0 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + 4.0.0 - guru.springfamework - spring5-mvc-rest - 0.0.1-SNAPSHOT - jar + guru.springfamework + spring5-mvc-rest + 0.0.1-SNAPSHOT + jar - spring5-mvc-rest - Demo project for Spring Boot + spring5-mvc-rest + Demo project for Spring Boot - - org.springframework.boot - spring-boot-starter-parent - 2.0.0.M4 - - + + org.springframework.boot + spring-boot-starter-parent + 2.1.0.RELEASE + + - - UTF-8 - UTF-8 - 1.8 - + + UTF-8 + UTF-8 + 1.8 + 1.2.0.CR2 + - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-devtools - runtime - - - com.h2database - h2 - runtime - - - org.projectlombok - lombok - true - - - org.springframework.boot - spring-boot-starter-test - test - - + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-data-jpa + + + org.springframework.boot + spring-boot-devtools + runtime + + + com.h2database + h2 + runtime + + + org.projectlombok + lombok + provided + + + org.mapstruct + mapstruct-jdk8 + ${org.mapstruct.version} + + + org.springframework.boot + spring-boot-starter-test + test + + - - - - org.springframework.boot - spring-boot-maven-plugin - - - org.codehaus.mojo - cobertura-maven-plugin - 2.7 - - - html - xml - - - - - - + + + + org.springframework.boot + spring-boot-maven-plugin + + + org.codehaus.mojo + cobertura-maven-plugin + 2.7 + + + html + xml + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.7.0 + + 1.8 + 1.8 + + + org.projectlombok + lombok + ${lombok.version} + + + org.mapstruct + mapstruct-processor + ${org.mapstruct.version} + + + + + -Amapstruct.defaultComponentModel=spring + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.22.1 + + false + + + + - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/snapshot - - true - - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - - + + + spring-snapshots + Spring Snapshots + https://repo.spring.io/snapshot + + true + + + + spring-milestones + Spring Milestones + https://repo.spring.io/milestone + + false + + + - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/snapshot - - true - - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - - + + + spring-snapshots + Spring Snapshots + https://repo.spring.io/snapshot + + true + + + + spring-milestones + Spring Milestones + https://repo.spring.io/milestone + + false + + + diff --git a/src/main/java/guru/springfamework/api/v1/mapper/CategoryMapper.java b/src/main/java/guru/springfamework/api/v1/mapper/CategoryMapper.java new file mode 100644 index 000000000..7d95449c7 --- /dev/null +++ b/src/main/java/guru/springfamework/api/v1/mapper/CategoryMapper.java @@ -0,0 +1,18 @@ +package guru.springfamework.api.v1.mapper; + +import guru.springfamework.api.v1.model.CategoryDTO; +import guru.springfamework.domain.Category; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +/** + * Created by jt on 9/25/17. + */ +@Mapper +public interface CategoryMapper { + + CategoryMapper INSTANCE = Mappers.getMapper(CategoryMapper.class); + + + CategoryDTO categoryToCategoryDTO(Category category); +} diff --git a/src/main/java/guru/springfamework/api/v1/model/CategoryDTO.java b/src/main/java/guru/springfamework/api/v1/model/CategoryDTO.java index 135ca3621..94c0ecb7b 100644 --- a/src/main/java/guru/springfamework/api/v1/model/CategoryDTO.java +++ b/src/main/java/guru/springfamework/api/v1/model/CategoryDTO.java @@ -1,8 +1,11 @@ package guru.springfamework.api.v1.model; +import lombok.Data; + /** * Created by jt on 9/24/17. */ +@Data public class CategoryDTO { private Long id; private String name; diff --git a/src/test/java/guru/springfamework/api/v1/mapper/CategoryMapperTest.java b/src/test/java/guru/springfamework/api/v1/mapper/CategoryMapperTest.java new file mode 100644 index 000000000..30cdd2314 --- /dev/null +++ b/src/test/java/guru/springfamework/api/v1/mapper/CategoryMapperTest.java @@ -0,0 +1,32 @@ +package guru.springfamework.api.v1.mapper; + +import guru.springfamework.api.v1.model.CategoryDTO; +import guru.springfamework.domain.Category; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + +public class CategoryMapperTest { + + public static final String NAME = "Joe"; + public static final long ID = 1L; + + CategoryMapper categoryMapper = CategoryMapper.INSTANCE; + + @Test + public void categoryToCategoryDTO() throws Exception { + + //given + Category category = new Category(); + category.setName(NAME); + category.setId(ID); + + //when + CategoryDTO categoryDTO = categoryMapper.categoryToCategoryDTO(category); + + //then + assertEquals(Long.valueOf(ID), categoryDTO.getId()); + assertEquals(NAME, categoryDTO.getName()); + } + +} \ No newline at end of file