From acb7811202bb290d0e5982d3a4cc20e7f1ecdcdd Mon Sep 17 00:00:00 2001 From: Sushil Choudhary Date: Thu, 2 Sep 2021 18:52:01 +0100 Subject: [PATCH 1/7] Added gitignore files --- .gitignore | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index d81f12ed..9d5c76c2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,11 @@ -/target -/.idea +.classpath +.project +.settings +.idea +*.iws +*.iml +*.ipr +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ \ No newline at end of file From 4c96a9da28d870b840236d7a4fbd1693639e69d0 Mon Sep 17 00:00:00 2001 From: Sushil Choudhary Date: Thu, 2 Sep 2021 19:00:57 +0100 Subject: [PATCH 2/7] Initial code setup, spring libs, basic classes and Rest calls implementation --- pom.xml | 173 +++++++++++------- .../java/com.waracle.cakemgr/CakeEntity.java | 52 ------ .../java/com.waracle.cakemgr/CakeServlet.java | 106 ----------- .../com.waracle.cakemgr/HibernateUtil.java | 36 ---- .../java/com/waracle/cakemgr/Application.java | 13 ++ .../cakemgr/config/CakeManagerConfig.java | 30 +++ .../waracle/cakemgr/config/SwaggerConfig.java | 22 +++ .../cakemgr/controller/CakeController.java | 44 +++++ .../cakemgr/controller/WelcomeController.java | 27 +++ .../com/waracle/cakemgr/dao/CakeEntity.java | 39 ++++ .../waracle/cakemgr/dao/CakeRepository.java | 11 ++ .../waracle/cakemgr/dto/CakeRequestDto.java | 18 ++ .../waracle/cakemgr/dto/CakeResponseDto.java | 13 ++ .../waracle/cakemgr/mapper/CakeMapper.java | 33 ++++ .../waracle/cakemgr/service/CakeService.java | 45 +++++ src/main/resources/application.properties | 11 ++ src/main/resources/hibernate.cfg.xml | 17 -- src/main/resources/templates/index.html | 41 +++++ src/main/webapp/WEB-INF/web.xml | 8 - src/main/webapp/index.jsp | 5 - .../controller/CakeControllerTest.java | 82 +++++++++ .../cakemgr/mapper/CakeMapperTest.java | 46 +++++ .../cakemgr/service/CakeServiceTest.java | 74 ++++++++ src/test/resources/application.properties | 1 + 24 files changed, 656 insertions(+), 291 deletions(-) delete mode 100644 src/main/java/com.waracle.cakemgr/CakeEntity.java delete mode 100644 src/main/java/com.waracle.cakemgr/CakeServlet.java delete mode 100644 src/main/java/com.waracle.cakemgr/HibernateUtil.java create mode 100644 src/main/java/com/waracle/cakemgr/Application.java create mode 100644 src/main/java/com/waracle/cakemgr/config/CakeManagerConfig.java create mode 100644 src/main/java/com/waracle/cakemgr/config/SwaggerConfig.java create mode 100644 src/main/java/com/waracle/cakemgr/controller/CakeController.java create mode 100644 src/main/java/com/waracle/cakemgr/controller/WelcomeController.java create mode 100644 src/main/java/com/waracle/cakemgr/dao/CakeEntity.java create mode 100644 src/main/java/com/waracle/cakemgr/dao/CakeRepository.java create mode 100644 src/main/java/com/waracle/cakemgr/dto/CakeRequestDto.java create mode 100644 src/main/java/com/waracle/cakemgr/dto/CakeResponseDto.java create mode 100644 src/main/java/com/waracle/cakemgr/mapper/CakeMapper.java create mode 100644 src/main/java/com/waracle/cakemgr/service/CakeService.java create mode 100644 src/main/resources/application.properties delete mode 100644 src/main/resources/hibernate.cfg.xml create mode 100644 src/main/resources/templates/index.html delete mode 100644 src/main/webapp/WEB-INF/web.xml delete mode 100644 src/main/webapp/index.jsp create mode 100644 src/test/java/com/waracle/cakemgr/controller/CakeControllerTest.java create mode 100644 src/test/java/com/waracle/cakemgr/mapper/CakeMapperTest.java create mode 100644 src/test/java/com/waracle/cakemgr/service/CakeServiceTest.java create mode 100644 src/test/resources/application.properties diff --git a/pom.xml b/pom.xml index c8cbf9d5..17c428d3 100644 --- a/pom.xml +++ b/pom.xml @@ -1,77 +1,116 @@ - 4.0.0 - com.waracle - cake-manager - war - 1.0-SNAPSHOT - cake-manager Maven Webapp - http://maven.apache.org - + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + 4.0.0 + com.waracle + cake-manager + 1.0 + cakeEntity-manager Maven Webapp + http://maven.apache.org - - - javax.servlet - javax.servlet-api - 3.1.0 - + + org.springframework.boot + spring-boot-starter-parent + 2.4.0 + + - - - com.fasterxml.jackson.core - jackson-core - 2.8.0 - + + 11 + - - - org.hibernate - hibernate-entitymanager - 4.3.6.Final - + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-data-jpa + + + org.springframework.boot + spring-boot-starter-actuator + + + org.springframework.boot + spring-boot-starter-thymeleaf + - - - org.hsqldb - hsqldb - 2.3.4 - + + org.hsqldb + hsqldb + 2.5.1 + - - - junit - junit - 4.1 - test - + + io.springfox + springfox-boot-starter + 3.0.0 + - - - cake-manager - + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-test + test + + + junit + junit + 4.12 + test + - - maven-compiler-plugin - 2.3.2 - - 1.8 - 1.8 - - + + org.projectlombok + lombok + 1.18.20 + + + org.modelmapper + modelmapper + 2.3.7 + - - org.eclipse.jetty - jetty-maven-plugin - - 10 - STOP - 8005 - - 8282 - - - + - - - + + spring-boot:run + + + + maven-compiler-plugin + 3.8.0 + + + maven-surefire-plugin + 2.22.1 + + + maven-jar-plugin + 3.0.2 + + + maven-install-plugin + 2.5.2 + + + maven-deploy-plugin + 2.8.2 + + + maven-project-info-reports-plugin + 3.0.0 + + + org.springframework.boot + spring-boot-maven-plugin + + + + + + \ No newline at end of file diff --git a/src/main/java/com.waracle.cakemgr/CakeEntity.java b/src/main/java/com.waracle.cakemgr/CakeEntity.java deleted file mode 100644 index 7927bd5d..00000000 --- a/src/main/java/com.waracle.cakemgr/CakeEntity.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.waracle.cakemgr; - -import java.io.Serializable; - -import javax.persistence.*; - -@Entity -@org.hibernate.annotations.Entity(dynamicUpdate = true) -@Table(name = "Employee", uniqueConstraints = {@UniqueConstraint(columnNames = "ID"), @UniqueConstraint(columnNames = "EMAIL")}) -public class CakeEntity implements Serializable { - - private static final long serialVersionUID = -1798070786993154676L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "ID", unique = true, nullable = false) - private Integer employeeId; - - @Column(name = "EMAIL", unique = true, nullable = false, length = 100) - private String title; - - @Column(name = "FIRST_NAME", unique = false, nullable = false, length = 100) - private String description; - - @Column(name = "LAST_NAME", unique = false, nullable = false, length = 300) - private String image; - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getImage() { - return image; - } - - public void setImage(String image) { - this.image = image; - } - -} \ No newline at end of file diff --git a/src/main/java/com.waracle.cakemgr/CakeServlet.java b/src/main/java/com.waracle.cakemgr/CakeServlet.java deleted file mode 100644 index 9bd32f76..00000000 --- a/src/main/java/com.waracle.cakemgr/CakeServlet.java +++ /dev/null @@ -1,106 +0,0 @@ -package com.waracle.cakemgr; - -import com.fasterxml.jackson.core.JsonFactory; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonToken; -import org.hibernate.Session; -import org.hibernate.exception.ConstraintViolationException; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.*; -import java.net.URL; -import java.util.List; - -@WebServlet("/cakes") -public class CakeServlet extends HttpServlet { - - @Override - public void init() throws ServletException { - super.init(); - - System.out.println("init started"); - - - System.out.println("downloading cake json"); - try (InputStream inputStream = new URL("https://gist.githubusercontent.com/hart88/198f29ec5114a3ec3460/raw/8dd19a88f9b8d24c23d9960f3300d0c917a4f07c/cake.json").openStream()) { - BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); - - StringBuffer buffer = new StringBuffer(); - String line = reader.readLine(); - while (line != null) { - buffer.append(line); - line = reader.readLine(); - } - - System.out.println("parsing cake json"); - JsonParser parser = new JsonFactory().createParser(buffer.toString()); - if (JsonToken.START_ARRAY != parser.nextToken()) { - throw new Exception("bad token"); - } - - JsonToken nextToken = parser.nextToken(); - while(nextToken == JsonToken.START_OBJECT) { - System.out.println("creating cake entity"); - - CakeEntity cakeEntity = new CakeEntity(); - System.out.println(parser.nextFieldName()); - cakeEntity.setTitle(parser.nextTextValue()); - - System.out.println(parser.nextFieldName()); - cakeEntity.setDescription(parser.nextTextValue()); - - System.out.println(parser.nextFieldName()); - cakeEntity.setImage(parser.nextTextValue()); - - Session session = HibernateUtil.getSessionFactory().openSession(); - try { - session.beginTransaction(); - session.persist(cakeEntity); - System.out.println("adding cake entity"); - session.getTransaction().commit(); - } catch (ConstraintViolationException ex) { - - } - session.close(); - - nextToken = parser.nextToken(); - System.out.println(nextToken); - - nextToken = parser.nextToken(); - System.out.println(nextToken); - } - - } catch (Exception ex) { - throw new ServletException(ex); - } - - System.out.println("init finished"); - } - - @Override - protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { - - Session session = HibernateUtil.getSessionFactory().openSession(); - List list = session.createCriteria(CakeEntity.class).list(); - - resp.getWriter().println("["); - - for (CakeEntity entity : list) { - resp.getWriter().println("\t{"); - - resp.getWriter().println("\t\t\"title\" : " + entity.getTitle() + ", "); - resp.getWriter().println("\t\t\"desc\" : " + entity.getDescription() + ","); - resp.getWriter().println("\t\t\"image\" : " + entity.getImage()); - - resp.getWriter().println("\t}"); - } - - resp.getWriter().println("]"); - - } - -} diff --git a/src/main/java/com.waracle.cakemgr/HibernateUtil.java b/src/main/java/com.waracle.cakemgr/HibernateUtil.java deleted file mode 100644 index 41ef137b..00000000 --- a/src/main/java/com.waracle.cakemgr/HibernateUtil.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.waracle.cakemgr; - -import org.hibernate.SessionFactory; -import org.hibernate.boot.registry.StandardServiceRegistryBuilder; -import org.hibernate.cfg.Configuration; -import org.hibernate.service.ServiceRegistry; - -public class HibernateUtil { - - private static SessionFactory sessionFactory = buildSessionFactory(); - - private static SessionFactory buildSessionFactory() { - try { - if (sessionFactory == null) { - Configuration configuration = new Configuration().configure(HibernateUtil.class.getResource("/hibernate.cfg.xml")); - StandardServiceRegistryBuilder serviceRegistryBuilder = new StandardServiceRegistryBuilder(); - serviceRegistryBuilder.applySettings(configuration.getProperties()); - ServiceRegistry serviceRegistry = serviceRegistryBuilder.build(); - sessionFactory = configuration.buildSessionFactory(serviceRegistry); - } - return sessionFactory; - } catch (Throwable ex) { - System.err.println("Initial SessionFactory creation failed." + ex); - throw new ExceptionInInitializerError(ex); - } - } - - public static SessionFactory getSessionFactory() { - return sessionFactory; - } - - public static void shutdown() { - getSessionFactory().close(); - } - -} diff --git a/src/main/java/com/waracle/cakemgr/Application.java b/src/main/java/com/waracle/cakemgr/Application.java new file mode 100644 index 00000000..d2eb0732 --- /dev/null +++ b/src/main/java/com/waracle/cakemgr/Application.java @@ -0,0 +1,13 @@ +package com.waracle.cakemgr; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration; + +@SpringBootApplication(exclude = { SecurityAutoConfiguration.class }) +public class Application { + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } +} diff --git a/src/main/java/com/waracle/cakemgr/config/CakeManagerConfig.java b/src/main/java/com/waracle/cakemgr/config/CakeManagerConfig.java new file mode 100644 index 00000000..61749400 --- /dev/null +++ b/src/main/java/com/waracle/cakemgr/config/CakeManagerConfig.java @@ -0,0 +1,30 @@ +package com.waracle.cakemgr.config; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.jdbc.datasource.DriverManagerDataSource; + +import javax.sql.DataSource; + +@Configuration +public class CakeManagerConfig { + + @Value("${db.driver.class.name}") + private String dbDriverClassName; + + @Value("${db.url}") + private String dbUrl; + + @Bean + public DataSource dataSource() { + DriverManagerDataSource dataSource = new DriverManagerDataSource(); + + dataSource.setDriverClassName(dbDriverClassName); + dataSource.setUrl(dbUrl); + + return dataSource; + } + + +} diff --git a/src/main/java/com/waracle/cakemgr/config/SwaggerConfig.java b/src/main/java/com/waracle/cakemgr/config/SwaggerConfig.java new file mode 100644 index 00000000..022a353f --- /dev/null +++ b/src/main/java/com/waracle/cakemgr/config/SwaggerConfig.java @@ -0,0 +1,22 @@ +package com.waracle.cakemgr.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; + +@Configuration +public class SwaggerConfig { + + @Bean + public Docket api() { + return new Docket(DocumentationType.SWAGGER_2) + .select() + .apis(RequestHandlerSelectors.any()) + .paths(PathSelectors.ant("/**")) + .build(); + } + +} \ No newline at end of file diff --git a/src/main/java/com/waracle/cakemgr/controller/CakeController.java b/src/main/java/com/waracle/cakemgr/controller/CakeController.java new file mode 100644 index 00000000..0d32bf16 --- /dev/null +++ b/src/main/java/com/waracle/cakemgr/controller/CakeController.java @@ -0,0 +1,44 @@ +package com.waracle.cakemgr.controller; + +import com.waracle.cakemgr.dao.CakeEntity; +import com.waracle.cakemgr.dto.CakeRequestDto; +import com.waracle.cakemgr.dto.CakeResponseDto; +import com.waracle.cakemgr.mapper.CakeMapper; +import com.waracle.cakemgr.service.CakeService; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.validation.Valid; +import java.util.List; +import java.util.stream.Collectors; + +@RestController +@RequestMapping("/cakes") +public class CakeController { + + private final CakeService service; + + public CakeController(CakeService service) { + this.service = service; + } + + @GetMapping + public ResponseEntity> getCakes() { + List cakes = service.getCakes().stream() + .map(CakeMapper::fromEntityToResponseDto) + .collect(Collectors.toList()); + + return ResponseEntity.ok().body(cakes); + } + + @PostMapping + public ResponseEntity postCake(@Valid @RequestBody CakeRequestDto cake) { + CakeEntity cakeEntity = CakeMapper.fromRequestDtoToEntity(cake); + service.writeCake(cakeEntity); + return ResponseEntity.ok().build(); + } +} diff --git a/src/main/java/com/waracle/cakemgr/controller/WelcomeController.java b/src/main/java/com/waracle/cakemgr/controller/WelcomeController.java new file mode 100644 index 00000000..2a5567db --- /dev/null +++ b/src/main/java/com/waracle/cakemgr/controller/WelcomeController.java @@ -0,0 +1,27 @@ +package com.waracle.cakemgr.controller; + +import com.waracle.cakemgr.service.CakeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; + +@Controller +public class WelcomeController { + + private final CakeService service; + + @Autowired + public WelcomeController(CakeService service) { + this.service = service; + } + + @GetMapping("/") + public String displayCakeMainPage(Model model) { + model.addAttribute("cakes", service.getCakes()); + + return "index"; + } + + +} diff --git a/src/main/java/com/waracle/cakemgr/dao/CakeEntity.java b/src/main/java/com/waracle/cakemgr/dao/CakeEntity.java new file mode 100644 index 00000000..f2e66560 --- /dev/null +++ b/src/main/java/com/waracle/cakemgr/dao/CakeEntity.java @@ -0,0 +1,39 @@ +package com.waracle.cakemgr.dao; + + +import lombok.Data; +import org.hibernate.annotations.DynamicUpdate; +import org.hibernate.annotations.GenericGenerator; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.Table; +import javax.persistence.UniqueConstraint; +import java.io.Serializable; +import java.util.UUID; + +@Data +@Entity +@DynamicUpdate +@Table(name = "cake", uniqueConstraints = {@UniqueConstraint(columnNames = "title")}) +public class CakeEntity implements Serializable { + + private static final long serialVersionUID = -2417760290457013668L; + + @Id + @GeneratedValue(generator = "UUID") + @GenericGenerator(name = "UUID", strategy = "org.hibernate.id.UUIDGenerator") + @Column(name = "id", updatable = false, nullable = false) + private UUID id; + + @Column(name = "title", unique = true, nullable = false) + private String title; + + @Column(name = "desc", nullable = false) + private String desc; + + @Column(name = "image", nullable = false) + private String image; +} diff --git a/src/main/java/com/waracle/cakemgr/dao/CakeRepository.java b/src/main/java/com/waracle/cakemgr/dao/CakeRepository.java new file mode 100644 index 00000000..8d829e8b --- /dev/null +++ b/src/main/java/com/waracle/cakemgr/dao/CakeRepository.java @@ -0,0 +1,11 @@ +package com.waracle.cakemgr.dao; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +import java.util.UUID; + +@Repository +public interface CakeRepository extends JpaRepository { + +} diff --git a/src/main/java/com/waracle/cakemgr/dto/CakeRequestDto.java b/src/main/java/com/waracle/cakemgr/dto/CakeRequestDto.java new file mode 100644 index 00000000..1a08cfe0 --- /dev/null +++ b/src/main/java/com/waracle/cakemgr/dto/CakeRequestDto.java @@ -0,0 +1,18 @@ +package com.waracle.cakemgr.dto; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +@Data +public class CakeRequestDto { + + @NotBlank + private String name; + + @NotBlank + private String description; + + @NotBlank + private String imageUrl; +} diff --git a/src/main/java/com/waracle/cakemgr/dto/CakeResponseDto.java b/src/main/java/com/waracle/cakemgr/dto/CakeResponseDto.java new file mode 100644 index 00000000..b495335e --- /dev/null +++ b/src/main/java/com/waracle/cakemgr/dto/CakeResponseDto.java @@ -0,0 +1,13 @@ +package com.waracle.cakemgr.dto; + +import lombok.Data; +import lombok.NoArgsConstructor; + +@NoArgsConstructor +@Data +public class CakeResponseDto { + + private String name; + private String description; + private String imageUrl; +} diff --git a/src/main/java/com/waracle/cakemgr/mapper/CakeMapper.java b/src/main/java/com/waracle/cakemgr/mapper/CakeMapper.java new file mode 100644 index 00000000..6798c1b0 --- /dev/null +++ b/src/main/java/com/waracle/cakemgr/mapper/CakeMapper.java @@ -0,0 +1,33 @@ +package com.waracle.cakemgr.mapper; + +import com.waracle.cakemgr.dao.CakeEntity; +import com.waracle.cakemgr.dto.CakeRequestDto; +import com.waracle.cakemgr.dto.CakeResponseDto; +import org.modelmapper.ModelMapper; + +public class CakeMapper { + + private static final ModelMapper modelMapper = new ModelMapper(); + + private CakeMapper() { + } + + public static CakeResponseDto fromEntityToResponseDto(CakeEntity cakeEntity) { + modelMapper.typeMap(CakeEntity.class, CakeResponseDto.class) + .addMapping(CakeEntity::getTitle, CakeResponseDto::setName) + .addMapping(CakeEntity::getDesc, CakeResponseDto::setDescription) + .addMapping(CakeEntity::getImage, CakeResponseDto::setImageUrl); + + return modelMapper.map(cakeEntity, CakeResponseDto.class); + } + + public static CakeEntity fromRequestDtoToEntity(CakeRequestDto cakeDto) { + modelMapper.typeMap(CakeRequestDto.class, CakeEntity.class) + .addMapping(CakeRequestDto::getName, CakeEntity::setTitle) + .addMapping(CakeRequestDto::getDescription, CakeEntity::setDesc) + .addMapping(CakeRequestDto::getImageUrl, CakeEntity::setImage); + + return modelMapper.map(cakeDto, CakeEntity.class); + } + +} diff --git a/src/main/java/com/waracle/cakemgr/service/CakeService.java b/src/main/java/com/waracle/cakemgr/service/CakeService.java new file mode 100644 index 00000000..9f88e613 --- /dev/null +++ b/src/main/java/com/waracle/cakemgr/service/CakeService.java @@ -0,0 +1,45 @@ +package com.waracle.cakemgr.service; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.waracle.cakemgr.dao.CakeEntity; +import com.waracle.cakemgr.dao.CakeRepository; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import javax.annotation.PostConstruct; +import java.io.IOException; +import java.net.URL; +import java.util.List; +import java.util.Set; + +@Service +public class CakeService { + + @Value("${cake.url}") + private String cakeUrl; + + private final CakeRepository repository; + private final ObjectMapper objectMapper = new ObjectMapper(); + + public CakeService(CakeRepository repository) { + this.repository = repository; + } + + @PostConstruct + public void populateCakes() throws IOException { + Set cakeEntities = objectMapper + .readValue(new URL(cakeUrl), new TypeReference<>() { + }); + repository.saveAll(cakeEntities); + } + + public List getCakes() { + + return repository.findAll(); + } + + public void writeCake(CakeEntity cakeEntity) { + repository.save(cakeEntity); + } +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties new file mode 100644 index 00000000..a5bdeae8 --- /dev/null +++ b/src/main/resources/application.properties @@ -0,0 +1,11 @@ +db.url=jdbc:hsqldb:mem:db +db.driver.class.name=org.hsqldb.jdbcDriver + +server.port=8181 + +logging.level.org.hibernate=INFO +logging.level.org.hibernate.SQL=DEBUG +logging.level.org.hibernate.cache=DEBUG +logging.level.org.hibernate.stat=DEBUG + +cake.url=https://gist.githubusercontent.com/hart88/198f29ec5114a3ec3460/raw/8dd19a88f9b8d24c23d9960f3300d0c917a4f07c/cakeEntity.json \ No newline at end of file diff --git a/src/main/resources/hibernate.cfg.xml b/src/main/resources/hibernate.cfg.xml deleted file mode 100644 index 0ae06d63..00000000 --- a/src/main/resources/hibernate.cfg.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - class,hbm - org.hibernate.dialect.HSQLDialect - true - org.hsqldb.jdbcDriver - sa - - jdbc:hsqldb:mem:db - create - - - \ No newline at end of file diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html new file mode 100644 index 00000000..0ac70bba --- /dev/null +++ b/src/main/resources/templates/index.html @@ -0,0 +1,41 @@ + + + + + Cake Manager + + +
+
+

Welcome to the Cake Manager application!

+
+ + Click here to add a Cake + +
+
+

Table of Cakes

+ + + + + + + + + + + + + + +
UUIDTitleDescriptionImage
+ + +
+
+
+
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml deleted file mode 100644 index d004447f..00000000 --- a/src/main/webapp/WEB-INF/web.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - Archetype Created Web Application - - diff --git a/src/main/webapp/index.jsp b/src/main/webapp/index.jsp deleted file mode 100644 index c38169bb..00000000 --- a/src/main/webapp/index.jsp +++ /dev/null @@ -1,5 +0,0 @@ - - -

Hello World!

- - diff --git a/src/test/java/com/waracle/cakemgr/controller/CakeControllerTest.java b/src/test/java/com/waracle/cakemgr/controller/CakeControllerTest.java new file mode 100644 index 00000000..26596cc7 --- /dev/null +++ b/src/test/java/com/waracle/cakemgr/controller/CakeControllerTest.java @@ -0,0 +1,82 @@ +package com.waracle.cakemgr.controller; + +import com.waracle.cakemgr.dao.CakeEntity; +import com.waracle.cakemgr.dto.CakeRequestDto; +import com.waracle.cakemgr.dto.CakeResponseDto; +import com.waracle.cakemgr.service.CakeService; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; +import org.springframework.http.ResponseEntity; + +import java.util.ArrayList; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +@ExtendWith(MockitoExtension.class) +class CakeControllerTest { + + @Mock + private CakeService cakeService; + + @InjectMocks + private CakeController cakeController; + + @Test + void testGetReturnsListOfCakes() { + CakeEntity cakeEntity1 = new CakeEntity(); + cakeEntity1.setTitle("entity1Title123"); + cakeEntity1.setDesc("entity1Description123"); + cakeEntity1.setImage("entity1ImageUrl123"); + + CakeResponseDto cakeResponse1 = new CakeResponseDto(); + cakeResponse1.setName("entity1Title123"); + cakeResponse1.setDescription("entity1Description123"); + cakeResponse1.setImageUrl("entity1ImageUrl123"); + + CakeEntity cakeEntity2 = new CakeEntity(); + cakeEntity2.setTitle("entity2Title123"); + cakeEntity2.setDesc("entity2Description123"); + cakeEntity2.setImage("entity2ImageUrl123"); + + CakeResponseDto cakeResponse2 = new CakeResponseDto(); + cakeResponse2.setName("entity2Title123"); + cakeResponse2.setDescription("entity2Description123"); + cakeResponse2.setImageUrl("entity2ImageUrl123"); + + List cakeEntityList = new ArrayList<>(); + cakeEntityList.add(cakeEntity1); + cakeEntityList.add(cakeEntity2); + + List expectedCakeResponse = new ArrayList<>(); + expectedCakeResponse.add(cakeResponse1); + expectedCakeResponse.add(cakeResponse2); + + when(cakeService.getCakes()).thenReturn(cakeEntityList); + + ResponseEntity> response = cakeController.getCakes(); + + assertThat(response.getStatusCodeValue()).isEqualTo(200); + assertThat(response.getBody()).isEqualTo(expectedCakeResponse); + } + + @Test + void testPostSucceedsWithOkResponse() { + CakeRequestDto cakeRequestDto = new CakeRequestDto(); + cakeRequestDto.setName("testTitle123"); + cakeRequestDto.setDescription("testDescription123"); + cakeRequestDto.setImageUrl("testImageUrl123"); + + ResponseEntity response = cakeController.postCake(cakeRequestDto); + + assertThat(response.getStatusCodeValue()).isEqualTo(200); + verify(cakeService, times(1)).writeCake(any(CakeEntity.class)); + } +} diff --git a/src/test/java/com/waracle/cakemgr/mapper/CakeMapperTest.java b/src/test/java/com/waracle/cakemgr/mapper/CakeMapperTest.java new file mode 100644 index 00000000..5203279c --- /dev/null +++ b/src/test/java/com/waracle/cakemgr/mapper/CakeMapperTest.java @@ -0,0 +1,46 @@ +package com.waracle.cakemgr.mapper; + +import com.waracle.cakemgr.dao.CakeEntity; +import com.waracle.cakemgr.dto.CakeRequestDto; +import com.waracle.cakemgr.dto.CakeResponseDto; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +class CakeMapperTest { + + @Test + void testMapFromEntityToResponseDto() { + CakeEntity cakeEntity = new CakeEntity(); + cakeEntity.setTitle("Cake Title"); + cakeEntity.setDesc("Cake Desc123"); + cakeEntity.setImage("Cake Img Url"); + + CakeResponseDto expectedResponseDto = new CakeResponseDto(); + expectedResponseDto.setName("Cake Title"); + expectedResponseDto.setDescription("Cake Desc123"); + expectedResponseDto.setImageUrl("Cake Img Url"); + + CakeResponseDto actualResponseDto = CakeMapper.fromEntityToResponseDto(cakeEntity); + + assertThat(actualResponseDto).isEqualTo(expectedResponseDto); + } + + @Test + void testMapFromRequestDtoToEntity() { + CakeRequestDto cakeRequestDto = new CakeRequestDto(); + cakeRequestDto.setName("Cake Title"); + cakeRequestDto.setDescription("Cake Desc123"); + cakeRequestDto.setImageUrl("Cake Img Url"); + + CakeEntity expectedCakeEntity = new CakeEntity(); + expectedCakeEntity.setTitle("Cake Title"); + expectedCakeEntity.setDesc("Cake Desc123"); + expectedCakeEntity.setImage("Cake Img Url"); + + CakeEntity actualEntity = CakeMapper.fromRequestDtoToEntity(cakeRequestDto); + + assertThat(actualEntity).isEqualTo(expectedCakeEntity); + } + +} diff --git a/src/test/java/com/waracle/cakemgr/service/CakeServiceTest.java b/src/test/java/com/waracle/cakemgr/service/CakeServiceTest.java new file mode 100644 index 00000000..d80089fd --- /dev/null +++ b/src/test/java/com/waracle/cakemgr/service/CakeServiceTest.java @@ -0,0 +1,74 @@ +package com.waracle.cakemgr.service; + +import com.waracle.cakemgr.dao.CakeEntity; +import com.waracle.cakemgr.dao.CakeRepository; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; +import org.springframework.test.util.ReflectionTestUtils; + +import java.io.IOException; +import java.util.List; +import java.util.Set; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +@RunWith(MockitoJUnitRunner.class) +public class CakeServiceTest { + + @Mock + private CakeRepository repository; + + @InjectMocks + private CakeService cakeService; + + @Test + public void testPopulateCakesIsCalled() throws IOException { + ReflectionTestUtils.setField(cakeService, "cakeUrl", + "https://gist.githubusercontent.com/hart88/198f29ec5114a3ec3460/raw/8dd19a88f9b8d24c23d9960f3300d0c917a4f07c/cake.json"); + + cakeService.populateCakes(); + + verify(repository).saveAll(any(Set.class)); + } + + @Test + public void testGetCakesReturnsListOfEntitiesFromRepository() { + CakeEntity cakeEntity1 = new CakeEntity(); + cakeEntity1.setTitle("entity1Title123"); + cakeEntity1.setDesc("entity1Description123"); + cakeEntity1.setImage("entity1ImageUrl123"); + + CakeEntity cakeEntity2 = new CakeEntity(); + cakeEntity2.setTitle("entity2Title123"); + cakeEntity2.setDesc("entity2Description123"); + cakeEntity2.setImage("entity2ImageUrl123"); + + when(repository.findAll()).thenReturn(List.of(cakeEntity1, cakeEntity2)); + + List cakeEntityEntities = cakeService.getCakes(); + + assertThat(cakeEntityEntities.size()).isEqualTo(2); + assertThat(cakeEntityEntities.get(0)).isEqualTo(cakeEntity1); + assertThat(cakeEntityEntities.get(1)).isEqualTo(cakeEntity2); + } + + @Test + public void testWriteCakeSavesToRepository() { + CakeEntity cakeEntity = new CakeEntity(); + cakeEntity.setTitle("entityTitle123"); + cakeEntity.setDesc("entityDescription123"); + cakeEntity.setImage("entityImageUrl123"); + + cakeService.writeCake(cakeEntity); + + verify(repository, times(1)).save(cakeEntity); + } + +} diff --git a/src/test/resources/application.properties b/src/test/resources/application.properties new file mode 100644 index 00000000..5325300f --- /dev/null +++ b/src/test/resources/application.properties @@ -0,0 +1 @@ +logging.level.org.springframework=ERROR \ No newline at end of file From 93dfa50a5bacfe320c9d3f7e9a4c8b38b3f35929 Mon Sep 17 00:00:00 2001 From: Sushil Choudhary Date: Thu, 2 Sep 2021 19:10:46 +0100 Subject: [PATCH 3/7] Cake Rest Api, pom changes, Html landing page, Welcome Controller and test cases build up --- pom.xml | 2 +- .../cakemgr/controller/CakeController.java | 6 +-- .../dao/{CakeEntity.java => Cake.java} | 2 +- .../waracle/cakemgr/dao/CakeRepository.java | 2 +- .../waracle/cakemgr/mapper/CakeMapper.java | 26 +++++----- .../waracle/cakemgr/service/CakeService.java | 10 ++-- src/main/resources/templates/index.html | 10 ++-- .../controller/CakeControllerTest.java | 50 +++++++++---------- .../cakemgr/mapper/CakeMapperTest.java | 24 ++++----- .../cakemgr/service/CakeServiceTest.java | 40 +++++++-------- 10 files changed, 86 insertions(+), 86 deletions(-) rename src/main/java/com/waracle/cakemgr/dao/{CakeEntity.java => Cake.java} (95%) diff --git a/pom.xml b/pom.xml index 17c428d3..aa207cac 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.waracle cake-manager 1.0 - cakeEntity-manager Maven Webapp + cake-manager http://maven.apache.org diff --git a/src/main/java/com/waracle/cakemgr/controller/CakeController.java b/src/main/java/com/waracle/cakemgr/controller/CakeController.java index 0d32bf16..71fed967 100644 --- a/src/main/java/com/waracle/cakemgr/controller/CakeController.java +++ b/src/main/java/com/waracle/cakemgr/controller/CakeController.java @@ -1,6 +1,6 @@ package com.waracle.cakemgr.controller; -import com.waracle.cakemgr.dao.CakeEntity; +import com.waracle.cakemgr.dao.Cake; import com.waracle.cakemgr.dto.CakeRequestDto; import com.waracle.cakemgr.dto.CakeResponseDto; import com.waracle.cakemgr.mapper.CakeMapper; @@ -37,8 +37,8 @@ public ResponseEntity> getCakes() { @PostMapping public ResponseEntity postCake(@Valid @RequestBody CakeRequestDto cake) { - CakeEntity cakeEntity = CakeMapper.fromRequestDtoToEntity(cake); - service.writeCake(cakeEntity); + Cake cakeObj = CakeMapper.fromRequestDtoToEntity(cake); + service.writeCake(cakeObj); return ResponseEntity.ok().build(); } } diff --git a/src/main/java/com/waracle/cakemgr/dao/CakeEntity.java b/src/main/java/com/waracle/cakemgr/dao/Cake.java similarity index 95% rename from src/main/java/com/waracle/cakemgr/dao/CakeEntity.java rename to src/main/java/com/waracle/cakemgr/dao/Cake.java index f2e66560..9284913c 100644 --- a/src/main/java/com/waracle/cakemgr/dao/CakeEntity.java +++ b/src/main/java/com/waracle/cakemgr/dao/Cake.java @@ -18,7 +18,7 @@ @Entity @DynamicUpdate @Table(name = "cake", uniqueConstraints = {@UniqueConstraint(columnNames = "title")}) -public class CakeEntity implements Serializable { +public class Cake implements Serializable { private static final long serialVersionUID = -2417760290457013668L; diff --git a/src/main/java/com/waracle/cakemgr/dao/CakeRepository.java b/src/main/java/com/waracle/cakemgr/dao/CakeRepository.java index 8d829e8b..ed237cba 100644 --- a/src/main/java/com/waracle/cakemgr/dao/CakeRepository.java +++ b/src/main/java/com/waracle/cakemgr/dao/CakeRepository.java @@ -6,6 +6,6 @@ import java.util.UUID; @Repository -public interface CakeRepository extends JpaRepository { +public interface CakeRepository extends JpaRepository { } diff --git a/src/main/java/com/waracle/cakemgr/mapper/CakeMapper.java b/src/main/java/com/waracle/cakemgr/mapper/CakeMapper.java index 6798c1b0..9f6b9581 100644 --- a/src/main/java/com/waracle/cakemgr/mapper/CakeMapper.java +++ b/src/main/java/com/waracle/cakemgr/mapper/CakeMapper.java @@ -1,6 +1,6 @@ package com.waracle.cakemgr.mapper; -import com.waracle.cakemgr.dao.CakeEntity; +import com.waracle.cakemgr.dao.Cake; import com.waracle.cakemgr.dto.CakeRequestDto; import com.waracle.cakemgr.dto.CakeResponseDto; import org.modelmapper.ModelMapper; @@ -12,22 +12,22 @@ public class CakeMapper { private CakeMapper() { } - public static CakeResponseDto fromEntityToResponseDto(CakeEntity cakeEntity) { - modelMapper.typeMap(CakeEntity.class, CakeResponseDto.class) - .addMapping(CakeEntity::getTitle, CakeResponseDto::setName) - .addMapping(CakeEntity::getDesc, CakeResponseDto::setDescription) - .addMapping(CakeEntity::getImage, CakeResponseDto::setImageUrl); + public static CakeResponseDto fromEntityToResponseDto(Cake cake) { + modelMapper.typeMap(Cake.class, CakeResponseDto.class) + .addMapping(Cake::getTitle, CakeResponseDto::setName) + .addMapping(Cake::getDesc, CakeResponseDto::setDescription) + .addMapping(Cake::getImage, CakeResponseDto::setImageUrl); - return modelMapper.map(cakeEntity, CakeResponseDto.class); + return modelMapper.map(cake, CakeResponseDto.class); } - public static CakeEntity fromRequestDtoToEntity(CakeRequestDto cakeDto) { - modelMapper.typeMap(CakeRequestDto.class, CakeEntity.class) - .addMapping(CakeRequestDto::getName, CakeEntity::setTitle) - .addMapping(CakeRequestDto::getDescription, CakeEntity::setDesc) - .addMapping(CakeRequestDto::getImageUrl, CakeEntity::setImage); + public static Cake fromRequestDtoToEntity(CakeRequestDto cakeDto) { + modelMapper.typeMap(CakeRequestDto.class, Cake.class) + .addMapping(CakeRequestDto::getName, Cake::setTitle) + .addMapping(CakeRequestDto::getDescription, Cake::setDesc) + .addMapping(CakeRequestDto::getImageUrl, Cake::setImage); - return modelMapper.map(cakeDto, CakeEntity.class); + return modelMapper.map(cakeDto, Cake.class); } } diff --git a/src/main/java/com/waracle/cakemgr/service/CakeService.java b/src/main/java/com/waracle/cakemgr/service/CakeService.java index 9f88e613..aa7b56a5 100644 --- a/src/main/java/com/waracle/cakemgr/service/CakeService.java +++ b/src/main/java/com/waracle/cakemgr/service/CakeService.java @@ -2,7 +2,7 @@ import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; -import com.waracle.cakemgr.dao.CakeEntity; +import com.waracle.cakemgr.dao.Cake; import com.waracle.cakemgr.dao.CakeRepository; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -28,18 +28,18 @@ public CakeService(CakeRepository repository) { @PostConstruct public void populateCakes() throws IOException { - Set cakeEntities = objectMapper + Set cakeEntities = objectMapper .readValue(new URL(cakeUrl), new TypeReference<>() { }); repository.saveAll(cakeEntities); } - public List getCakes() { + public List getCakes() { return repository.findAll(); } - public void writeCake(CakeEntity cakeEntity) { - repository.save(cakeEntity); + public void writeCake(Cake cake) { + repository.save(cake); } } diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html index 0ac70bba..9a100d8e 100644 --- a/src/main/resources/templates/index.html +++ b/src/main/resources/templates/index.html @@ -26,11 +26,11 @@

Table of Cakes

- - - - - + + + + + diff --git a/src/test/java/com/waracle/cakemgr/controller/CakeControllerTest.java b/src/test/java/com/waracle/cakemgr/controller/CakeControllerTest.java index 26596cc7..781abed8 100644 --- a/src/test/java/com/waracle/cakemgr/controller/CakeControllerTest.java +++ b/src/test/java/com/waracle/cakemgr/controller/CakeControllerTest.java @@ -1,6 +1,6 @@ package com.waracle.cakemgr.controller; -import com.waracle.cakemgr.dao.CakeEntity; +import com.waracle.cakemgr.dao.Cake; import com.waracle.cakemgr.dto.CakeRequestDto; import com.waracle.cakemgr.dto.CakeResponseDto; import com.waracle.cakemgr.service.CakeService; @@ -30,36 +30,36 @@ class CakeControllerTest { private CakeController cakeController; @Test - void testGetReturnsListOfCakes() { - CakeEntity cakeEntity1 = new CakeEntity(); - cakeEntity1.setTitle("entity1Title123"); - cakeEntity1.setDesc("entity1Description123"); - cakeEntity1.setImage("entity1ImageUrl123"); + void testListOfCakes() { + Cake cake1 = new Cake(); + cake1.setTitle("Cake Title 123"); + cake1.setDesc("Cake desc 123"); + cake1.setImage("Cake Img Url "); CakeResponseDto cakeResponse1 = new CakeResponseDto(); - cakeResponse1.setName("entity1Title123"); - cakeResponse1.setDescription("entity1Description123"); - cakeResponse1.setImageUrl("entity1ImageUrl123"); + cakeResponse1.setName("Cake Title 123"); + cakeResponse1.setDescription("Cake desc 123"); + cakeResponse1.setImageUrl("Cake Img Url "); - CakeEntity cakeEntity2 = new CakeEntity(); - cakeEntity2.setTitle("entity2Title123"); - cakeEntity2.setDesc("entity2Description123"); - cakeEntity2.setImage("entity2ImageUrl123"); + Cake cake2 = new Cake(); + cake2.setTitle("Cake title 909"); + cake2.setDesc("Cake desc 909"); + cake2.setImage("Cake Img Url 9090"); CakeResponseDto cakeResponse2 = new CakeResponseDto(); - cakeResponse2.setName("entity2Title123"); - cakeResponse2.setDescription("entity2Description123"); - cakeResponse2.setImageUrl("entity2ImageUrl123"); + cakeResponse2.setName("Cake title 909"); + cakeResponse2.setDescription("Cake desc 909"); + cakeResponse2.setImageUrl("Cake Img Url 9090"); - List cakeEntityList = new ArrayList<>(); - cakeEntityList.add(cakeEntity1); - cakeEntityList.add(cakeEntity2); + List cakeList = new ArrayList<>(); + cakeList.add(cake1); + cakeList.add(cake2); List expectedCakeResponse = new ArrayList<>(); expectedCakeResponse.add(cakeResponse1); expectedCakeResponse.add(cakeResponse2); - when(cakeService.getCakes()).thenReturn(cakeEntityList); + when(cakeService.getCakes()).thenReturn(cakeList); ResponseEntity> response = cakeController.getCakes(); @@ -68,15 +68,15 @@ void testGetReturnsListOfCakes() { } @Test - void testPostSucceedsWithOkResponse() { + void testPostMethod() { CakeRequestDto cakeRequestDto = new CakeRequestDto(); - cakeRequestDto.setName("testTitle123"); - cakeRequestDto.setDescription("testDescription123"); - cakeRequestDto.setImageUrl("testImageUrl123"); + cakeRequestDto.setName("Title_123"); + cakeRequestDto.setDescription("Description_123"); + cakeRequestDto.setImageUrl("ImageUrl_123"); ResponseEntity response = cakeController.postCake(cakeRequestDto); assertThat(response.getStatusCodeValue()).isEqualTo(200); - verify(cakeService, times(1)).writeCake(any(CakeEntity.class)); + verify(cakeService, times(1)).writeCake(any(Cake.class)); } } diff --git a/src/test/java/com/waracle/cakemgr/mapper/CakeMapperTest.java b/src/test/java/com/waracle/cakemgr/mapper/CakeMapperTest.java index 5203279c..dcaf888f 100644 --- a/src/test/java/com/waracle/cakemgr/mapper/CakeMapperTest.java +++ b/src/test/java/com/waracle/cakemgr/mapper/CakeMapperTest.java @@ -1,6 +1,6 @@ package com.waracle.cakemgr.mapper; -import com.waracle.cakemgr.dao.CakeEntity; +import com.waracle.cakemgr.dao.Cake; import com.waracle.cakemgr.dto.CakeRequestDto; import com.waracle.cakemgr.dto.CakeResponseDto; import org.junit.jupiter.api.Test; @@ -11,17 +11,17 @@ class CakeMapperTest { @Test void testMapFromEntityToResponseDto() { - CakeEntity cakeEntity = new CakeEntity(); - cakeEntity.setTitle("Cake Title"); - cakeEntity.setDesc("Cake Desc123"); - cakeEntity.setImage("Cake Img Url"); + Cake cake = new Cake(); + cake.setTitle("Cake Title"); + cake.setDesc("Cake Desc123"); + cake.setImage("Cake Img Url"); CakeResponseDto expectedResponseDto = new CakeResponseDto(); expectedResponseDto.setName("Cake Title"); expectedResponseDto.setDescription("Cake Desc123"); expectedResponseDto.setImageUrl("Cake Img Url"); - CakeResponseDto actualResponseDto = CakeMapper.fromEntityToResponseDto(cakeEntity); + CakeResponseDto actualResponseDto = CakeMapper.fromEntityToResponseDto(cake); assertThat(actualResponseDto).isEqualTo(expectedResponseDto); } @@ -33,14 +33,14 @@ void testMapFromRequestDtoToEntity() { cakeRequestDto.setDescription("Cake Desc123"); cakeRequestDto.setImageUrl("Cake Img Url"); - CakeEntity expectedCakeEntity = new CakeEntity(); - expectedCakeEntity.setTitle("Cake Title"); - expectedCakeEntity.setDesc("Cake Desc123"); - expectedCakeEntity.setImage("Cake Img Url"); + Cake expectedCake = new Cake(); + expectedCake.setTitle("Cake Title"); + expectedCake.setDesc("Cake Desc123"); + expectedCake.setImage("Cake Img Url"); - CakeEntity actualEntity = CakeMapper.fromRequestDtoToEntity(cakeRequestDto); + Cake actualEntity = CakeMapper.fromRequestDtoToEntity(cakeRequestDto); - assertThat(actualEntity).isEqualTo(expectedCakeEntity); + assertThat(actualEntity).isEqualTo(expectedCake); } } diff --git a/src/test/java/com/waracle/cakemgr/service/CakeServiceTest.java b/src/test/java/com/waracle/cakemgr/service/CakeServiceTest.java index d80089fd..11731315 100644 --- a/src/test/java/com/waracle/cakemgr/service/CakeServiceTest.java +++ b/src/test/java/com/waracle/cakemgr/service/CakeServiceTest.java @@ -1,6 +1,6 @@ package com.waracle.cakemgr.service; -import com.waracle.cakemgr.dao.CakeEntity; +import com.waracle.cakemgr.dao.Cake; import com.waracle.cakemgr.dao.CakeRepository; import org.junit.Test; import org.junit.runner.RunWith; @@ -40,35 +40,35 @@ public void testPopulateCakesIsCalled() throws IOException { @Test public void testGetCakesReturnsListOfEntitiesFromRepository() { - CakeEntity cakeEntity1 = new CakeEntity(); - cakeEntity1.setTitle("entity1Title123"); - cakeEntity1.setDesc("entity1Description123"); - cakeEntity1.setImage("entity1ImageUrl123"); + Cake cake1 = new Cake(); + cake1.setTitle("Cake Title"); + cake1.setDesc("Cake desc"); + cake1.setImage("Cake Img. Url"); - CakeEntity cakeEntity2 = new CakeEntity(); - cakeEntity2.setTitle("entity2Title123"); - cakeEntity2.setDesc("entity2Description123"); - cakeEntity2.setImage("entity2ImageUrl123"); + Cake cake2 = new Cake(); + cake2.setTitle("Cake Title 123"); + cake2.setDesc("Cake desc 123"); + cake2.setImage("Cake Img. Url 123"); - when(repository.findAll()).thenReturn(List.of(cakeEntity1, cakeEntity2)); + when(repository.findAll()).thenReturn(List.of(cake1, cake2)); - List cakeEntityEntities = cakeService.getCakes(); + List cakeEntities = cakeService.getCakes(); - assertThat(cakeEntityEntities.size()).isEqualTo(2); - assertThat(cakeEntityEntities.get(0)).isEqualTo(cakeEntity1); - assertThat(cakeEntityEntities.get(1)).isEqualTo(cakeEntity2); + assertThat(cakeEntities.size()).isEqualTo(2); + assertThat(cakeEntities.get(0)).isEqualTo(cake1); + assertThat(cakeEntities.get(1)).isEqualTo(cake2); } @Test public void testWriteCakeSavesToRepository() { - CakeEntity cakeEntity = new CakeEntity(); - cakeEntity.setTitle("entityTitle123"); - cakeEntity.setDesc("entityDescription123"); - cakeEntity.setImage("entityImageUrl123"); + Cake cake = new Cake(); + cake.setTitle("Cake Title 9090"); + cake.setDesc("Cake desc 9090"); + cake.setImage("Cake Img Url 9090"); - cakeService.writeCake(cakeEntity); + cakeService.writeCake(cake); - verify(repository, times(1)).save(cakeEntity); + verify(repository, times(1)).save(cake); } } From 98d207cebf9dda3d9b851c097fadf2da9c05984f Mon Sep 17 00:00:00 2001 From: Sushil Choudhary Date: Thu, 2 Sep 2021 19:35:30 +0100 Subject: [PATCH 4/7] Cake Rest Apiupgrades and html lookups --- .../cakemgr/controller/CakeController.java | 3 +- .../cakemgr/controller/WelcomeController.java | 2 +- .../java/com/waracle/cakemgr/dao/Cake.java | 2 ++ src/main/resources/templates/index.html | 34 +++++++++++++------ .../controller/CakeControllerTest.java | 2 +- .../cakemgr/mapper/CakeMapperTest.java | 4 +-- 6 files changed, 31 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/waracle/cakemgr/controller/CakeController.java b/src/main/java/com/waracle/cakemgr/controller/CakeController.java index 71fed967..3c3610da 100644 --- a/src/main/java/com/waracle/cakemgr/controller/CakeController.java +++ b/src/main/java/com/waracle/cakemgr/controller/CakeController.java @@ -36,9 +36,10 @@ public ResponseEntity> getCakes() { } @PostMapping - public ResponseEntity postCake(@Valid @RequestBody CakeRequestDto cake) { + public ResponseEntity addCake(@Valid @RequestBody CakeRequestDto cake) { Cake cakeObj = CakeMapper.fromRequestDtoToEntity(cake); service.writeCake(cakeObj); return ResponseEntity.ok().build(); } + } diff --git a/src/main/java/com/waracle/cakemgr/controller/WelcomeController.java b/src/main/java/com/waracle/cakemgr/controller/WelcomeController.java index 2a5567db..8f64969a 100644 --- a/src/main/java/com/waracle/cakemgr/controller/WelcomeController.java +++ b/src/main/java/com/waracle/cakemgr/controller/WelcomeController.java @@ -17,7 +17,7 @@ public WelcomeController(CakeService service) { } @GetMapping("/") - public String displayCakeMainPage(Model model) { + public String welcomePage(Model model) { model.addAttribute("cakes", service.getCakes()); return "index"; diff --git a/src/main/java/com/waracle/cakemgr/dao/Cake.java b/src/main/java/com/waracle/cakemgr/dao/Cake.java index 9284913c..755ecba5 100644 --- a/src/main/java/com/waracle/cakemgr/dao/Cake.java +++ b/src/main/java/com/waracle/cakemgr/dao/Cake.java @@ -11,6 +11,7 @@ import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.UniqueConstraint; +import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.UUID; @@ -28,6 +29,7 @@ public class Cake implements Serializable { @Column(name = "id", updatable = false, nullable = false) private UUID id; + @NotNull @Column(name = "title", unique = true, nullable = false) private String title; diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html index 9a100d8e..c749e305 100644 --- a/src/main/resources/templates/index.html +++ b/src/main/resources/templates/index.html @@ -6,23 +6,35 @@ Cake Manager -
-
-

Welcome to the Cake Manager application!

+
+
+

Welcome to the Cake Manager

- Click here to add a Cake + + +
+

+
+ +
+ Click Here to add Cakes Using Swagger UI +
(html page Not Implemented but can be enhanced later. Pls use Swagger UI to add cakes)
+
-
-
-

Table of Cakes

+
+
+

List of Initial Cakes

- - - - + + + + diff --git a/src/test/java/com/waracle/cakemgr/controller/CakeControllerTest.java b/src/test/java/com/waracle/cakemgr/controller/CakeControllerTest.java index 781abed8..f43fd6c4 100644 --- a/src/test/java/com/waracle/cakemgr/controller/CakeControllerTest.java +++ b/src/test/java/com/waracle/cakemgr/controller/CakeControllerTest.java @@ -74,7 +74,7 @@ void testPostMethod() { cakeRequestDto.setDescription("Description_123"); cakeRequestDto.setImageUrl("ImageUrl_123"); - ResponseEntity response = cakeController.postCake(cakeRequestDto); + ResponseEntity response = cakeController.addCake(cakeRequestDto); assertThat(response.getStatusCodeValue()).isEqualTo(200); verify(cakeService, times(1)).writeCake(any(Cake.class)); diff --git a/src/test/java/com/waracle/cakemgr/mapper/CakeMapperTest.java b/src/test/java/com/waracle/cakemgr/mapper/CakeMapperTest.java index dcaf888f..e5746e1a 100644 --- a/src/test/java/com/waracle/cakemgr/mapper/CakeMapperTest.java +++ b/src/test/java/com/waracle/cakemgr/mapper/CakeMapperTest.java @@ -10,7 +10,7 @@ class CakeMapperTest { @Test - void testMapFromEntityToResponseDto() { + void testEntityToResponseDto() { Cake cake = new Cake(); cake.setTitle("Cake Title"); cake.setDesc("Cake Desc123"); @@ -27,7 +27,7 @@ void testMapFromEntityToResponseDto() { } @Test - void testMapFromRequestDtoToEntity() { + void testRequestDtoToEntity() { CakeRequestDto cakeRequestDto = new CakeRequestDto(); cakeRequestDto.setName("Cake Title"); cakeRequestDto.setDescription("Cake Desc123"); From 0f043486988a31da8546d46a5b21e37e7e4cae00 Mon Sep 17 00:00:00 2001 From: Sushil Choudhary Date: Thu, 2 Sep 2021 22:50:26 +0100 Subject: [PATCH 5/7] Added HTML for adding cakes form and validation - api changes and testing --- README.md | 40 ++++++++++++ README.txt | 57 ------------------ images/addCakeForm.jpg | Bin 0 -> 28348 bytes images/homePage.jpg | Bin 0 -> 109628 bytes images/swaggerHomePage.jpg | Bin 0 -> 110157 bytes .../cakemgr/controller/CakeController.java | 1 + .../cakemgr/controller/WelcomeController.java | 19 ++++++ .../java/com/waracle/cakemgr/dao/Cake.java | 2 +- .../waracle/cakemgr/dto/CakeRequestDto.java | 24 ++++++++ src/main/resources/templates/addCake.html | 37 ++++++++++++ src/main/resources/templates/index.html | 5 +- 11 files changed, 125 insertions(+), 60 deletions(-) create mode 100644 README.md delete mode 100644 README.txt create mode 100644 images/addCakeForm.jpg create mode 100644 images/homePage.jpg create mode 100644 images/swaggerHomePage.jpg create mode 100644 src/main/resources/templates/addCake.html diff --git a/README.md b/README.md new file mode 100644 index 00000000..9122f97a --- /dev/null +++ b/README.md @@ -0,0 +1,40 @@ +Cake Manager Micro Service (fictitious) +======================================= + +Cake Manager App is a Java SpringBoot application. + +mvn clean install
+mvn spring-boot:run + + +### How to Test +``` +git clone https://github.com/s4sushil/cake-manager.git +cd cake-manager +mvn spring-boot:run +``` + +## Access URL +http://localhost:8181/ + + +### REST End points +To get the cakes - +``` +* GET http://localhost:8181/ +``` +To post the cakes - +``` +curl -X POST "http://localhost:8181/cakes" -H "accept: */*" -H "Content-Type: application/json" -d "{ \"description\": \"ME\", \"imageUrl\": \"URL\", \"name\": \"Sushil\"}" +``` + +### Welcome Page +![Flow](images/homePage.jpg) + + +### Add Cake By Normal User Page +![Flow](images/homePage.jpg) + + +### Swagger Api docs and Rest endpoints - Adding Cakes by rest Json format +![Flow](images/swaggerHomePage.jpg) \ No newline at end of file diff --git a/README.txt b/README.txt deleted file mode 100644 index 3a66e0de..00000000 --- a/README.txt +++ /dev/null @@ -1,57 +0,0 @@ -Cake Manager Micro Service (fictitious) -======================================= - -A summer intern started on this project but never managed to get it finished. -The developer assured us that some of the above is complete, but at the moment accessing the /cakes endpoint -returns a 404, so getting this working should be the first priority. - -Requirements: -* By accessing the root of the server (/) it should be possible to list the cakes currently in the system. This must be presented in an acceptable format for a human to read. - -* It must be possible for a human to add a new cake to the server. - -* By accessing an alternative endpoint (/cakes) with an appropriate client it must be possible to download a list of -the cakes currently in the system as JSON data. - -* The /cakes endpoint must also allow new cakes to be created. - -Comments: -* We feel like the software stack used by the original developer is quite outdated, it would be good to migrate the entire application to something more modern. -* Would be good to change the application to implement proper client-server separation via REST API. - -Bonus points: -* Tests -* Authentication via OAuth2 -* Continuous Integration via any cloud CI system -* Containerisation - - -Original Project Info -===================== - -To run a server locally execute the following command: - -`mvn jetty:run` - -and access the following URL: - -`http://localhost:8282/` - -Feel free to change how the project is run, but clear instructions must be given in README -You can use any IDE you like, so long as the project can build and run with Maven or Gradle. - -The project loads some pre-defined data in to an in-memory database, which is acceptable for this exercise. There is -no need to create persistent storage. - - -Submission -========== - -Please provide your version of this project as a git repository (e.g. Github, BitBucket, etc). - -Alternatively, you can submit the project as a zip or gzip. Use Google Drive or some other file sharing service to -share it with us. - -Please also keep a log of the changes you make as a text file and provide this to us with your submission. - -Good luck! diff --git a/images/addCakeForm.jpg b/images/addCakeForm.jpg new file mode 100644 index 0000000000000000000000000000000000000000..80934c2c2cb4051bf0b96d9682542d19a376c11d GIT binary patch literal 28348 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

`9s^Z4B*1cD}^|BGZF8K<)B)=k!~9wf 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 z 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 F{{yCJAbbD- literal 0 HcmV?d00001 diff --git a/images/swaggerHomePage.jpg b/images/swaggerHomePage.jpg new file mode 100644 index 0000000000000000000000000000000000000000..84d580266bb9ca9730dca0b6472d58c435128afa GIT binary patch literal 110157 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

UUIDTitleDescriptionImageUUIDTitleDescriptionImage
T@K4Y+3VR5?s1TLm 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%0A3QI04{Q1 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 HeDD7k$AaJb literal 0 HcmV?d00001 diff --git a/src/main/java/com/waracle/cakemgr/controller/CakeController.java b/src/main/java/com/waracle/cakemgr/controller/CakeController.java index 3c3610da..e9deac83 100644 --- a/src/main/java/com/waracle/cakemgr/controller/CakeController.java +++ b/src/main/java/com/waracle/cakemgr/controller/CakeController.java @@ -5,6 +5,7 @@ import com.waracle.cakemgr.dto.CakeResponseDto; import com.waracle.cakemgr.mapper.CakeMapper; import com.waracle.cakemgr.service.CakeService; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; diff --git a/src/main/java/com/waracle/cakemgr/controller/WelcomeController.java b/src/main/java/com/waracle/cakemgr/controller/WelcomeController.java index 8f64969a..05eb4cb7 100644 --- a/src/main/java/com/waracle/cakemgr/controller/WelcomeController.java +++ b/src/main/java/com/waracle/cakemgr/controller/WelcomeController.java @@ -1,10 +1,14 @@ package com.waracle.cakemgr.controller; +import com.waracle.cakemgr.dao.Cake; +import com.waracle.cakemgr.dto.CakeRequestDto; +import com.waracle.cakemgr.mapper.CakeMapper; import com.waracle.cakemgr.service.CakeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; @Controller public class WelcomeController { @@ -23,5 +27,20 @@ public String welcomePage(Model model) { return "index"; } + @GetMapping("/cake") + public String viewAddCakeHtml(Model model) { + CakeRequestDto cake = new CakeRequestDto(); + model.addAttribute("cake", cake); + return "addCake"; + } + + @PostMapping(path = "/cake") + public String addCake( CakeRequestDto cake, Model model) { + model.addAttribute("cake", cake); + Cake cakeObj = CakeMapper.fromRequestDtoToEntity(cake); + service.writeCake(cakeObj); + + return welcomePage(model); + } } diff --git a/src/main/java/com/waracle/cakemgr/dao/Cake.java b/src/main/java/com/waracle/cakemgr/dao/Cake.java index 755ecba5..cb9d1654 100644 --- a/src/main/java/com/waracle/cakemgr/dao/Cake.java +++ b/src/main/java/com/waracle/cakemgr/dao/Cake.java @@ -36,6 +36,6 @@ public class Cake implements Serializable { @Column(name = "desc", nullable = false) private String desc; - @Column(name = "image", nullable = false) + @Column(name = "image", nullable = true) private String image; } diff --git a/src/main/java/com/waracle/cakemgr/dto/CakeRequestDto.java b/src/main/java/com/waracle/cakemgr/dto/CakeRequestDto.java index 1a08cfe0..9c6eef8f 100644 --- a/src/main/java/com/waracle/cakemgr/dto/CakeRequestDto.java +++ b/src/main/java/com/waracle/cakemgr/dto/CakeRequestDto.java @@ -15,4 +15,28 @@ public class CakeRequestDto { @NotBlank private String imageUrl; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getImageUrl() { + return imageUrl; + } + + public void setImageUrl(String imageUrl) { + this.imageUrl = imageUrl; + } } diff --git a/src/main/resources/templates/addCake.html b/src/main/resources/templates/addCake.html new file mode 100644 index 00000000..47da0234 --- /dev/null +++ b/src/main/resources/templates/addCake.html @@ -0,0 +1,37 @@ + + + + + Cake Manager App - Add Cake + + +
+
+

Welcome to the Cake Manager

+
+ +
+

+
+ +
+

Add Cake

+ +
+ +
+
+

+
+ +
+
+

+
+ +
+
+
+ + \ No newline at end of file diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html index c749e305..036a9a40 100644 --- a/src/main/resources/templates/index.html +++ b/src/main/resources/templates/index.html @@ -21,8 +21,9 @@

- Click Here to add Cakes Using Swagger UI -
(html page Not Implemented but can be enhanced later. Pls use Swagger UI to add cakes)
+

Add Cake (Manual User)

+ +
Click Here to add Cakes Using Swagger UI
From cfe33b0829ab6c8dc41986dbff2dd49b5444b230 Mon Sep 17 00:00:00 2001 From: Sushil Choudhary Date: Thu, 2 Sep 2021 22:53:26 +0100 Subject: [PATCH 6/7] Updated ReadMe and documentation --- src/main/resources/templates/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html index 036a9a40..3c0fa490 100644 --- a/src/main/resources/templates/index.html +++ b/src/main/resources/templates/index.html @@ -23,7 +23,7 @@

From eb39e73f0a3133a853abfbf6fccccb3f4b153b2d Mon Sep 17 00:00:00 2001 From: Sushil Choudhary Date: Thu, 2 Sep 2021 22:54:37 +0100 Subject: [PATCH 7/7] Updated ReadMe and documentation - Final touch --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9122f97a..4229483c 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ curl -X POST "http://localhost:8181/cakes" -H "accept: */*" -H "Content-Type: ap ### Add Cake By Normal User Page -![Flow](images/homePage.jpg) +![Flow](images/addCakeForm.jpg) ### Swagger Api docs and Rest endpoints - Adding Cakes by rest Json format