From 45d75a259cc44d41ab21a60d2ec01a9109a9e67a Mon Sep 17 00:00:00 2001 From: Shmonderr Date: Tue, 6 Feb 2018 22:34:01 +0300 Subject: [PATCH 1/8] 05.02.2018 20.27 --- src/main/java/io/khasang/eshop/dao/impl/BasicDaoImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/io/khasang/eshop/dao/impl/BasicDaoImpl.java b/src/main/java/io/khasang/eshop/dao/impl/BasicDaoImpl.java index b9c86bf..8bc3cbe 100644 --- a/src/main/java/io/khasang/eshop/dao/impl/BasicDaoImpl.java +++ b/src/main/java/io/khasang/eshop/dao/impl/BasicDaoImpl.java @@ -45,6 +45,7 @@ public T getById(long id) { @Override public T add(T entity) { getSession().save(entity); + System.out.println("dasd"); return entity; } From 717c28b8819256c1a183216d0136bd4dfe2cbe44 Mon Sep 17 00:00:00 2001 From: Shmonderr Date: Mon, 12 Feb 2018 20:53:28 +0300 Subject: [PATCH 2/8] 05.02.2018 20.27 --- .../io/khasang/eshop/config/AppConfig.java | 16 ++ .../eshop/controller/AnonymousController.java | 55 +++++++ .../eshop/controller/UserController.java | 58 ++++++++ .../io/khasang/eshop/dao/AnonymousDao.java | 6 + .../java/io/khasang/eshop/dao/UserDao.java | 7 + .../eshop/dao/impl/AnonymousDaoImpl.java | 10 ++ .../khasang/eshop/dao/impl/BasicDaoImpl.java | 1 - .../khasang/eshop/dao/impl/UserDaoImpl.java | 10 ++ .../io/khasang/eshop/entity/Anonymous.java | 43 ++++++ .../java/io/khasang/eshop/entity/Cat.java | 1 - .../java/io/khasang/eshop/entity/User.java | 39 +++++ .../eshop/service/AnonymousService.java | 50 +++++++ .../io/khasang/eshop/service/UserService.java | 51 +++++++ .../service/impl/AnonymousServiceImpl.java | 45 ++++++ .../eshop/service/impl/UserServiceImpl.java | 45 ++++++ .../AnonymousControllerIntegrationTest.java | 139 ++++++++++++++++++ .../UserControllerIntegrationTest.java | 139 ++++++++++++++++++ 17 files changed, 713 insertions(+), 2 deletions(-) create mode 100644 src/main/java/io/khasang/eshop/controller/AnonymousController.java create mode 100644 src/main/java/io/khasang/eshop/controller/UserController.java create mode 100644 src/main/java/io/khasang/eshop/dao/AnonymousDao.java create mode 100644 src/main/java/io/khasang/eshop/dao/UserDao.java create mode 100644 src/main/java/io/khasang/eshop/dao/impl/AnonymousDaoImpl.java create mode 100644 src/main/java/io/khasang/eshop/dao/impl/UserDaoImpl.java create mode 100644 src/main/java/io/khasang/eshop/entity/Anonymous.java create mode 100644 src/main/java/io/khasang/eshop/entity/User.java create mode 100644 src/main/java/io/khasang/eshop/service/AnonymousService.java create mode 100644 src/main/java/io/khasang/eshop/service/UserService.java create mode 100644 src/main/java/io/khasang/eshop/service/impl/AnonymousServiceImpl.java create mode 100644 src/main/java/io/khasang/eshop/service/impl/UserServiceImpl.java create mode 100644 src/test/java/io/khasang/eshop/controller/AnonymousControllerIntegrationTest.java create mode 100644 src/test/java/io/khasang/eshop/controller/UserControllerIntegrationTest.java diff --git a/src/main/java/io/khasang/eshop/config/AppConfig.java b/src/main/java/io/khasang/eshop/config/AppConfig.java index 11ff411..ae172eb 100644 --- a/src/main/java/io/khasang/eshop/config/AppConfig.java +++ b/src/main/java/io/khasang/eshop/config/AppConfig.java @@ -1,8 +1,14 @@ package io.khasang.eshop.config; +import io.khasang.eshop.dao.AnonymousDao; import io.khasang.eshop.dao.CatDao; +import io.khasang.eshop.dao.UserDao; +import io.khasang.eshop.dao.impl.AnonymousDaoImpl; import io.khasang.eshop.dao.impl.CatDaoImpl; +import io.khasang.eshop.dao.impl.UserDaoImpl; +import io.khasang.eshop.entity.Anonymous; import io.khasang.eshop.entity.Cat; +import io.khasang.eshop.entity.User; import io.khasang.eshop.model.CreateTable; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; @@ -52,6 +58,16 @@ public CatDao catDao(){ return new CatDaoImpl(Cat.class); } + @Bean + public UserDao userDao(){ + return new UserDaoImpl((User.class)); + } + + @Bean + public AnonymousDao anonymousDao() { + return new AnonymousDaoImpl(Anonymous.class); + } + @Bean public CreateTable createTable(){ return new CreateTable(jdbcTemplate()); diff --git a/src/main/java/io/khasang/eshop/controller/AnonymousController.java b/src/main/java/io/khasang/eshop/controller/AnonymousController.java new file mode 100644 index 0000000..b0f40ac --- /dev/null +++ b/src/main/java/io/khasang/eshop/controller/AnonymousController.java @@ -0,0 +1,55 @@ +package io.khasang.eshop.controller; + + +import io.khasang.eshop.entity.Anonymous; +import io.khasang.eshop.service.AnonymousService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@Controller() +@RequestMapping("/anonymous") +public class AnonymousController { + private final AnonymousService anonymousService; + @Autowired + public AnonymousController(AnonymousService anonymousService){ + this.anonymousService = anonymousService; + } + @RequestMapping(value = "/all", method = RequestMethod.GET) + @ResponseBody + public List getAllAnonymous() { + return anonymousService.getAllAnonymous(); + } + + @RequestMapping(value = "/add", method = RequestMethod.POST, produces = "application/json;charset=utf-8") + @ResponseBody + public Anonymous addAnonymous(@RequestBody Anonymous anonymous){ + return anonymousService.addAnonymous(anonymous); + } + + @RequestMapping(value = "/update", method = RequestMethod.PUT, produces = "application/json;charset=utf-8") + @ResponseBody + public Anonymous updateAnonymous(@RequestBody Anonymous anonymous){ + return anonymousService.updateAnonymous(anonymous); + } + + @RequestMapping(value = "/patch", method = RequestMethod.PATCH, produces = "application/json;charset=utf-8") + @ResponseBody + public Anonymous patchAnonymous(@RequestBody Anonymous anonymous){ + return anonymousService.patchAnonymous(anonymous); + } + + @RequestMapping(value = "/delete", method = RequestMethod.DELETE, produces = "application/json;charset=utf-8") + @ResponseBody + public Anonymous deleteAnonymous(@RequestParam(value = "id") String id) { + return anonymousService.delete(Long.parseLong(id)); + } + + @RequestMapping(value = "/get/{id}", method = RequestMethod.GET) + @ResponseBody + public Anonymous getAnonymousById(@PathVariable(value = "id") String id) { + return anonymousService.getById(Long.parseLong(id)); + } +} diff --git a/src/main/java/io/khasang/eshop/controller/UserController.java b/src/main/java/io/khasang/eshop/controller/UserController.java new file mode 100644 index 0000000..ced7e57 --- /dev/null +++ b/src/main/java/io/khasang/eshop/controller/UserController.java @@ -0,0 +1,58 @@ +package io.khasang.eshop.controller; + + +import io.khasang.eshop.entity.User; +import io.khasang.eshop.service.UserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@Controller +@RequestMapping("/user") +public class UserController { + private final UserService userService; + @Autowired + public UserController(UserService userService){ + this.userService = userService; + } + @RequestMapping(value = "/all", method = RequestMethod.GET) + @ResponseBody + public List getAllUsers() { + return userService.getAllUsers(); + } + + @RequestMapping(value = "/add", method = RequestMethod.POST, produces = "application/json;charset=utf-8") + @ResponseBody + public User addUser(@RequestBody User user){ + return userService.addUser(user); + } + + @RequestMapping(value = "/update", method = RequestMethod.PUT, produces = "application/json;charset=utf-8") + @ResponseBody + public User updateUser(@RequestBody User user){ + return userService.updateUser(user); + } + + @RequestMapping(value = "/patch", method = RequestMethod.PATCH, produces = "application/json;charset=utf-8") + @ResponseBody + public User patchUser(@RequestBody User user){ + return userService.patchUser(user); + } + + @RequestMapping(value = "/delete", method = RequestMethod.DELETE, produces = "application/json;charset=utf-8") + @ResponseBody + public User deleteUser(@RequestParam(value = "id") String id) { + return userService.delete(Long.parseLong(id)); + } + + @RequestMapping(value = "/get/{id}", method = RequestMethod.GET) + @ResponseBody + public User getUserById(@PathVariable(value = "id") String id) { + return userService.getById(Long.parseLong(id)); + } +} + + + diff --git a/src/main/java/io/khasang/eshop/dao/AnonymousDao.java b/src/main/java/io/khasang/eshop/dao/AnonymousDao.java new file mode 100644 index 0000000..67f1c8a --- /dev/null +++ b/src/main/java/io/khasang/eshop/dao/AnonymousDao.java @@ -0,0 +1,6 @@ +package io.khasang.eshop.dao; + +import io.khasang.eshop.entity.Anonymous; + +public interface AnonymousDao extends BasicDao { +} diff --git a/src/main/java/io/khasang/eshop/dao/UserDao.java b/src/main/java/io/khasang/eshop/dao/UserDao.java new file mode 100644 index 0000000..b9a4161 --- /dev/null +++ b/src/main/java/io/khasang/eshop/dao/UserDao.java @@ -0,0 +1,7 @@ +package io.khasang.eshop.dao; + + +import io.khasang.eshop.entity.User; + +public interface UserDao extends BasicDao { +} diff --git a/src/main/java/io/khasang/eshop/dao/impl/AnonymousDaoImpl.java b/src/main/java/io/khasang/eshop/dao/impl/AnonymousDaoImpl.java new file mode 100644 index 0000000..3692169 --- /dev/null +++ b/src/main/java/io/khasang/eshop/dao/impl/AnonymousDaoImpl.java @@ -0,0 +1,10 @@ +package io.khasang.eshop.dao.impl; + +import io.khasang.eshop.dao.AnonymousDao; +import io.khasang.eshop.entity.Anonymous; + +public class AnonymousDaoImpl extends BasicDaoImpl implements AnonymousDao { + public AnonymousDaoImpl(Class entityClass) { + super(entityClass); + } +} diff --git a/src/main/java/io/khasang/eshop/dao/impl/BasicDaoImpl.java b/src/main/java/io/khasang/eshop/dao/impl/BasicDaoImpl.java index 8bc3cbe..b9c86bf 100644 --- a/src/main/java/io/khasang/eshop/dao/impl/BasicDaoImpl.java +++ b/src/main/java/io/khasang/eshop/dao/impl/BasicDaoImpl.java @@ -45,7 +45,6 @@ public T getById(long id) { @Override public T add(T entity) { getSession().save(entity); - System.out.println("dasd"); return entity; } diff --git a/src/main/java/io/khasang/eshop/dao/impl/UserDaoImpl.java b/src/main/java/io/khasang/eshop/dao/impl/UserDaoImpl.java new file mode 100644 index 0000000..ab46c69 --- /dev/null +++ b/src/main/java/io/khasang/eshop/dao/impl/UserDaoImpl.java @@ -0,0 +1,10 @@ +package io.khasang.eshop.dao.impl; + +import io.khasang.eshop.dao.UserDao; +import io.khasang.eshop.entity.User; + +public class UserDaoImpl extends BasicDaoImpl implements UserDao { + public UserDaoImpl(Class entityClass) { + super(entityClass); + } +} diff --git a/src/main/java/io/khasang/eshop/entity/Anonymous.java b/src/main/java/io/khasang/eshop/entity/Anonymous.java new file mode 100644 index 0000000..1e6ad28 --- /dev/null +++ b/src/main/java/io/khasang/eshop/entity/Anonymous.java @@ -0,0 +1,43 @@ +package io.khasang.eshop.entity; + +import javax.persistence.*; + + +@Entity +@Table(name = "anonymous") +public class Anonymous { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "anonymous_id") + private long id; + private String name; + private String description; + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getName() { + + return name; + } + + public void setName(String name) { + this.name = name; + } + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + +} + + diff --git a/src/main/java/io/khasang/eshop/entity/Cat.java b/src/main/java/io/khasang/eshop/entity/Cat.java index 58f9018..0fad95b 100644 --- a/src/main/java/io/khasang/eshop/entity/Cat.java +++ b/src/main/java/io/khasang/eshop/entity/Cat.java @@ -9,7 +9,6 @@ public class Cat { @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "cat_id") private long id; - private String name; private String description; diff --git a/src/main/java/io/khasang/eshop/entity/User.java b/src/main/java/io/khasang/eshop/entity/User.java new file mode 100644 index 0000000..8ca14f6 --- /dev/null +++ b/src/main/java/io/khasang/eshop/entity/User.java @@ -0,0 +1,39 @@ +package io.khasang.eshop.entity; + +import javax.persistence.*; + +@Entity +@Table(name = "users") +public class User { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "user_id") + private long id; + private String name; + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + private String description; + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/src/main/java/io/khasang/eshop/service/AnonymousService.java b/src/main/java/io/khasang/eshop/service/AnonymousService.java new file mode 100644 index 0000000..90ec175 --- /dev/null +++ b/src/main/java/io/khasang/eshop/service/AnonymousService.java @@ -0,0 +1,50 @@ +package io.khasang.eshop.service; + +import io.khasang.eshop.entity.Anonymous; + +import java.util.List; + +public interface AnonymousService { + + /** + * method for receiving all anonymous from DB + * @return List of all anonymous + */ + List getAllAnonymous(); + + /** + * method for receiving specify anonymous by id + * @param id = anonymous id + * @return anonymous by id + */ + Anonymous addAnonymous(Anonymous anonymous); + + /** + * method for update anonymous + * @param anonymous = updated anonymous + * @return updated anonymous + */ + Anonymous updateAnonymous(Anonymous anonymous); + + /** + * method for update anonymous + * @param anonymous = updated anonymous + * @return updated anonymous + */ + Anonymous patchAnonymous(Anonymous anonymous); + + /** + * method for delete specify anonymous by id + * + * @param id = anonymous id + * @return anonymous by id + */ + Anonymous delete(long id); + + /** + * method for getbyid for anonymous + * @param id = anonymous + * @return anonymous + */ + Anonymous getById(long id); +} diff --git a/src/main/java/io/khasang/eshop/service/UserService.java b/src/main/java/io/khasang/eshop/service/UserService.java new file mode 100644 index 0000000..71b4655 --- /dev/null +++ b/src/main/java/io/khasang/eshop/service/UserService.java @@ -0,0 +1,51 @@ +package io.khasang.eshop.service; + +import io.khasang.eshop.entity.Cat; +import io.khasang.eshop.entity.User; + +import java.util.List; + +public interface UserService { + + /** + * method for receiving all user from DB + * @return List of all user + */ + List getAllUsers(); + + /** + * method for receiving specify user by id + * @param id = user's id + * @return user by id + */ + User addUser(User user); + + /** + * method for update user + * @param user = updated user + * @return updated user + */ + User updateUser(User user); + + /** + * method for update user + * @param user = updated user + * @return updated user + */ + User patchUser(User user); + + /** + * method for delete specify user by id + * + * @param id = user's id + * @return user by id + */ + User delete(long id); + + /** + * method for getbyid for user + * @param id = user + * @return user + */ + User getById(long id); +} diff --git a/src/main/java/io/khasang/eshop/service/impl/AnonymousServiceImpl.java b/src/main/java/io/khasang/eshop/service/impl/AnonymousServiceImpl.java new file mode 100644 index 0000000..f78c3d1 --- /dev/null +++ b/src/main/java/io/khasang/eshop/service/impl/AnonymousServiceImpl.java @@ -0,0 +1,45 @@ +package io.khasang.eshop.service.impl; + +import io.khasang.eshop.dao.AnonymousDao; +import io.khasang.eshop.entity.Anonymous; +import io.khasang.eshop.service.AnonymousService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service("anonymousService") +public class AnonymousServiceImpl implements AnonymousService { + @Autowired + private AnonymousDao anonymousDao; + + @Override + public List getAllAnonymous() { + return anonymousDao.getList(); + } + + @Override + public Anonymous addAnonymous(Anonymous anonymous) { + return anonymousDao.add(anonymous); + } + + @Override + public Anonymous updateAnonymous(Anonymous anonymous) { + return anonymousDao.update(anonymous); + } + + @Override + public Anonymous patchAnonymous(Anonymous anonymous) { + return anonymousDao.update(anonymous); + } + + @Override + public Anonymous delete(long id) { + return anonymousDao.delete(getById(id)); + } + + @Override + public Anonymous getById(long id) { + return anonymousDao.getById(id); + } +} diff --git a/src/main/java/io/khasang/eshop/service/impl/UserServiceImpl.java b/src/main/java/io/khasang/eshop/service/impl/UserServiceImpl.java new file mode 100644 index 0000000..6f75767 --- /dev/null +++ b/src/main/java/io/khasang/eshop/service/impl/UserServiceImpl.java @@ -0,0 +1,45 @@ +package io.khasang.eshop.service.impl; + +import io.khasang.eshop.dao.UserDao; +import io.khasang.eshop.entity.User; +import io.khasang.eshop.service.UserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service("userService") +public class UserServiceImpl implements UserService { + @Autowired + private UserDao userDao; + + @Override + public List getAllUsers() { + return userDao.getList(); + } + + @Override + public User addUser(User user) { + return userDao.add(user); + } + + @Override + public User updateUser(User user) { + return userDao.update(user); + } + + @Override + public User patchUser(User user) { + return userDao.update(user); + } + + @Override + public User delete(long id) { + return userDao.delete(getById(id)); + } + + @Override + public User getById(long id) { + return userDao.getById(id); + } +} diff --git a/src/test/java/io/khasang/eshop/controller/AnonymousControllerIntegrationTest.java b/src/test/java/io/khasang/eshop/controller/AnonymousControllerIntegrationTest.java new file mode 100644 index 0000000..1ea2c4d --- /dev/null +++ b/src/test/java/io/khasang/eshop/controller/AnonymousControllerIntegrationTest.java @@ -0,0 +1,139 @@ +package io.khasang.eshop.controller; + +import io.khasang.eshop.entity.Anonymous; +import org.junit.*; +import org.springframework.core.ParameterizedTypeReference; +import org.springframework.http.*; +import org.springframework.web.client.RestTemplate; + +import java.util.List; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; + +public class AnonymousControllerIntegrationTest { + + private static final String ROOT = "http://localhost:8080/anonymous"; + private static final String ADD = "/add"; + private static final String GET = "/get"; + private static final String ALL = "/all"; + private static final String DELETE = "/delete"; + + @BeforeClass + public static void globalInit() { + System.out.println("Global init"); + } + + @AfterClass + public static void globalClean() { + System.out.println("Global Clean"); + } + + @Before + public void init() { + System.out.println("Init"); + } + + @After + public void clean() { + System.out.println("Clean"); + } + + @Test + public void addAnonymous() { + Anonymous anonymous = createdAnonymous(); + + RestTemplate template = new RestTemplate(); + + ResponseEntity responseEntity = template.exchange( + ROOT + GET + "/{id}", + HttpMethod.GET, + null, + Anonymous.class, + anonymous.getId() + ); + + assertEquals("OK", responseEntity.getStatusCode().getReasonPhrase()); + Anonymous receivedAnonymous = responseEntity.getBody(); + assertNotNull(receivedAnonymous); + assertEquals(anonymous.getId(), receivedAnonymous.getId()); + assertNotNull(receivedAnonymous.getDescription()); + } + + @Test + public void getAllAnonymous() { + createdAnonymous(); + createdAnonymous(); + + RestTemplate template = new RestTemplate(); + ResponseEntity> responseEntity = template.exchange( + ROOT + ALL, + HttpMethod.GET, + null, + new ParameterizedTypeReference>() { + } + ); + + List anonymousList = responseEntity.getBody(); + assertNotNull(anonymousList.get(0)); + assertNotNull(anonymousList.get(1)); + } + + @Test + public void deleteAnonymous() { + Anonymous anonymous = createdAnonymous(); + + RestTemplate template = new RestTemplate(); + ResponseEntity responseEntity = template.exchange( + ROOT + DELETE + "/?id={id}", + HttpMethod.DELETE, + null, + Anonymous.class, + anonymous.getId() + ); + + assertEquals("OK", responseEntity.getStatusCode().getReasonPhrase()); + + Anonymous deletedAnonymous = responseEntity.getBody(); + assertNotNull(deletedAnonymous.getName()); + + ResponseEntity responseForDeleteAnonymous = template.exchange( + ROOT + GET + "/{id}", + HttpMethod.GET, + null, + Anonymous.class, + deletedAnonymous.getId() + ); + + assertEquals("OK", responseForDeleteAnonymous.getStatusCode().getReasonPhrase()); + assertNull(responseForDeleteAnonymous.getBody()); + } + + private Anonymous createdAnonymous() { + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON_UTF8); + + Anonymous anonymous = prefillAnonymous("Anonym"); + + HttpEntity httpEntity = new HttpEntity<>(anonymous, headers); + RestTemplate template = new RestTemplate(); + + Anonymous createdAnonymous = template.exchange( + ROOT + ADD, + HttpMethod.POST, + httpEntity, + Anonymous.class + ).getBody(); + + assertNotNull(createdAnonymous); + assertEquals(anonymous.getName(), createdAnonymous.getName()); + return createdAnonymous; + } + + private Anonymous prefillAnonymous(String anonym) { + Anonymous anonymous = new Anonymous(); + anonymous.setName(anonym); + return anonymous; + } +} diff --git a/src/test/java/io/khasang/eshop/controller/UserControllerIntegrationTest.java b/src/test/java/io/khasang/eshop/controller/UserControllerIntegrationTest.java new file mode 100644 index 0000000..f8b7e30 --- /dev/null +++ b/src/test/java/io/khasang/eshop/controller/UserControllerIntegrationTest.java @@ -0,0 +1,139 @@ +package io.khasang.eshop.controller; +import io.khasang.eshop.entity.User; +import org.junit.*; +import org.springframework.core.ParameterizedTypeReference; +import org.springframework.http.*; +import org.springframework.web.client.RestTemplate; + +import java.util.List; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; + +public class UserControllerIntegrationTest { + + private static final String ROOT = "http://localhost:8080/user"; + private static final String ADD = "/add"; + private static final String GET = "/get"; + private static final String ALL = "/all"; + private static final String DELETE = "/delete"; + +@BeforeClass +public static void globalInit() { + System.out.println("Global init"); + } + +@AfterClass +public static void globalClean() { + System.out.println("Global Clean"); + } + +@Before +public void init() { + System.out.println("Init"); + } + + @After + public void clean() { + System.out.println("Clean"); + } + +@Test +public void addUser() { + User user = createdUser(); + + RestTemplate template = new RestTemplate(); + + ResponseEntity responseEntity = template.exchange( + ROOT + GET + "/{id}", + HttpMethod.GET, + null, + User.class, + user.getId() + ); + + assertEquals("OK", responseEntity.getStatusCode().getReasonPhrase()); + User receivedUser = responseEntity.getBody(); + assertNotNull(receivedUser); + assertEquals(user.getId(), receivedUser.getId()); + assertNotNull(receivedUser.getDescription()); + } + +@Test +public void getAllUser() { + createdUser(); + createdUser(); + + RestTemplate template = new RestTemplate(); + ResponseEntity> responseEntity = template.exchange( + ROOT + ALL, + HttpMethod.GET, + null, + new ParameterizedTypeReference>() { + } + ); + + List userList = responseEntity.getBody(); + assertNotNull(userList.get(0)); + assertNotNull(userList.get(1)); + } + +@Test +public void deleteUser() { + User user = createdUser(); + + RestTemplate template = new RestTemplate(); + ResponseEntity responseEntity = template.exchange( + ROOT + DELETE + "/?id={id}", + HttpMethod.DELETE, + null, + User.class, + user.getId() + ); + + assertEquals("OK", responseEntity.getStatusCode().getReasonPhrase()); + + User deletedUser = responseEntity.getBody(); + assertNotNull(deletedUser.getName()); + + ResponseEntity responseForDeleteUser = template.exchange( + ROOT + GET + "/{id}", + HttpMethod.GET, + null, + User.class, + deletedUser.getId() + ); + + assertEquals("OK", responseForDeleteUser.getStatusCode().getReasonPhrase()); + assertNull(responseForDeleteUser.getBody()); + } + +private User createdUser() { + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON_UTF8); + + User user = prefillUser("userName"); + + HttpEntity httpEntity = new HttpEntity<>(user, headers); + RestTemplate template = new RestTemplate(); + + User createdUser = template.exchange( + ROOT + ADD, + HttpMethod.POST, + httpEntity, + User.class + ).getBody(); + + assertNotNull(createdUser); + assertEquals(user.getName(), createdUser.getName()); + return createdUser; + } + +private User prefillUser(String userName) { + User user = new User(); + user.setName(userName); + user.setDescription("Ivan"); + return user; + } +} From e2365767823a408b0bd20339dc2cc583dda674d0 Mon Sep 17 00:00:00 2001 From: Shmonderr Date: Sat, 17 Feb 2018 16:16:34 +0300 Subject: [PATCH 3/8] 05.02.2018 20.27 --- .../khasang/eshop/config/SecurityConfig.java | 2 +- .../io/khasang/eshop/entity/CatWoman.java | 28 +++++ .../AnonymousControllerIntegrationTest.java | 2 +- .../UserControllerIntegrationTest.java | 103 +++++++++--------- 4 files changed, 82 insertions(+), 53 deletions(-) create mode 100644 src/main/java/io/khasang/eshop/entity/CatWoman.java diff --git a/src/main/java/io/khasang/eshop/config/SecurityConfig.java b/src/main/java/io/khasang/eshop/config/SecurityConfig.java index 60401de..53afbbd 100644 --- a/src/main/java/io/khasang/eshop/config/SecurityConfig.java +++ b/src/main/java/io/khasang/eshop/config/SecurityConfig.java @@ -21,7 +21,7 @@ public void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers("/").permitAll() .antMatchers("/admin/**").access("hasRole('ADMIN')") - .antMatchers("/user/**").access("hasRole('USER')") +// .antMatchers("/user/**").access("hasRole('USER')") .and().csrf().disable().formLogin().defaultSuccessUrl("/", false); } diff --git a/src/main/java/io/khasang/eshop/entity/CatWoman.java b/src/main/java/io/khasang/eshop/entity/CatWoman.java new file mode 100644 index 0000000..4d20b64 --- /dev/null +++ b/src/main/java/io/khasang/eshop/entity/CatWoman.java @@ -0,0 +1,28 @@ +package io.khasang.eshop.entity; + + +import javax.persistence.*; + +@Entity +public class CatWoman { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private long id; + private String name; + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/src/test/java/io/khasang/eshop/controller/AnonymousControllerIntegrationTest.java b/src/test/java/io/khasang/eshop/controller/AnonymousControllerIntegrationTest.java index 1ea2c4d..bbf5049 100644 --- a/src/test/java/io/khasang/eshop/controller/AnonymousControllerIntegrationTest.java +++ b/src/test/java/io/khasang/eshop/controller/AnonymousControllerIntegrationTest.java @@ -114,7 +114,7 @@ private Anonymous createdAnonymous() { HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON_UTF8); - Anonymous anonymous = prefillAnonymous("Anonym"); + Anonymous anonymous = prefillAnonymous("anonym"); HttpEntity httpEntity = new HttpEntity<>(anonymous, headers); RestTemplate template = new RestTemplate(); diff --git a/src/test/java/io/khasang/eshop/controller/UserControllerIntegrationTest.java b/src/test/java/io/khasang/eshop/controller/UserControllerIntegrationTest.java index f8b7e30..c3909e7 100644 --- a/src/test/java/io/khasang/eshop/controller/UserControllerIntegrationTest.java +++ b/src/test/java/io/khasang/eshop/controller/UserControllerIntegrationTest.java @@ -1,4 +1,5 @@ package io.khasang.eshop.controller; + import io.khasang.eshop.entity.User; import org.junit.*; import org.springframework.core.ParameterizedTypeReference; @@ -19,121 +20,121 @@ public class UserControllerIntegrationTest { private static final String ALL = "/all"; private static final String DELETE = "/delete"; -@BeforeClass -public static void globalInit() { + @BeforeClass + public static void globalInit() { System.out.println("Global init"); - } + } -@AfterClass -public static void globalClean() { + @AfterClass + public static void globalClean() { System.out.println("Global Clean"); - } + } -@Before -public void init() { + @Before + public void init() { System.out.println("Init"); - } + } @After public void clean() { System.out.println("Clean"); } -@Test -public void addUser() { + @Test + public void addUser() { User user = createdUser(); RestTemplate template = new RestTemplate(); ResponseEntity responseEntity = template.exchange( - ROOT + GET + "/{id}", - HttpMethod.GET, - null, + ROOT + GET + "/{id}", + HttpMethod.GET, + null, User.class, - user.getId() + user.getId() ); assertEquals("OK", responseEntity.getStatusCode().getReasonPhrase()); - User receivedUser = responseEntity.getBody(); + User receivedUser = responseEntity.getBody(); assertNotNull(receivedUser); assertEquals(user.getId(), receivedUser.getId()); assertNotNull(receivedUser.getDescription()); - } + } -@Test -public void getAllUser() { + @Test + public void getAllUser() { createdUser(); createdUser(); RestTemplate template = new RestTemplate(); ResponseEntity> responseEntity = template.exchange( - ROOT + ALL, - HttpMethod.GET, - null, - new ParameterizedTypeReference>() { - } + ROOT + ALL, + HttpMethod.GET, + null, + new ParameterizedTypeReference>() { + } ); List userList = responseEntity.getBody(); assertNotNull(userList.get(0)); assertNotNull(userList.get(1)); - } + } -@Test -public void deleteUser() { - User user = createdUser(); + @Test + public void deleteUser() { + User user = createdUser(); RestTemplate template = new RestTemplate(); ResponseEntity responseEntity = template.exchange( - ROOT + DELETE + "/?id={id}", - HttpMethod.DELETE, - null, + ROOT + DELETE + "/?id={id}", + HttpMethod.DELETE, + null, User.class, - user.getId() + user.getId() ); assertEquals("OK", responseEntity.getStatusCode().getReasonPhrase()); - User deletedUser = responseEntity.getBody(); + User deletedUser = responseEntity.getBody(); assertNotNull(deletedUser.getName()); ResponseEntity responseForDeleteUser = template.exchange( - ROOT + GET + "/{id}", - HttpMethod.GET, - null, + ROOT + GET + "/{id}", + HttpMethod.GET, + null, User.class, - deletedUser.getId() + deletedUser.getId() ); assertEquals("OK", responseForDeleteUser.getStatusCode().getReasonPhrase()); assertNull(responseForDeleteUser.getBody()); - } + } -private User createdUser() { + private User createdUser() { HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON_UTF8); - User user = prefillUser("userName"); + User user = prefillUser("userName"); HttpEntity httpEntity = new HttpEntity<>(user, headers); RestTemplate template = new RestTemplate(); - User createdUser = template.exchange( - ROOT + ADD, - HttpMethod.POST, - httpEntity, - User.class + User createdUser = template.exchange( + ROOT + ADD, + HttpMethod.POST, + httpEntity, + User.class ).getBody(); - assertNotNull(createdUser); - assertEquals(user.getName(), createdUser.getName()); - return createdUser; - } + assertNotNull(createdUser); + assertEquals(user.getName(), createdUser.getName()); + return createdUser; + } -private User prefillUser(String userName) { + private User prefillUser(String userName) { User user = new User(); user.setName(userName); user.setDescription("Ivan"); return user; - } + } } From efdab446f0009888eb7cbc322a4cb7e195bd5fec Mon Sep 17 00:00:00 2001 From: Shmonderr Date: Sat, 17 Feb 2018 16:22:45 +0300 Subject: [PATCH 4/8] 05.02.2018 20.27 --- .../java/io/khasang/eshop/entity/Cat.java | 14 ++++++++- .../CatControllerIntegrationTest.java | 29 ++++++++++++++----- 2 files changed, 35 insertions(+), 8 deletions(-) diff --git a/src/main/java/io/khasang/eshop/entity/Cat.java b/src/main/java/io/khasang/eshop/entity/Cat.java index 0fad95b..352ceda 100644 --- a/src/main/java/io/khasang/eshop/entity/Cat.java +++ b/src/main/java/io/khasang/eshop/entity/Cat.java @@ -1,6 +1,8 @@ package io.khasang.eshop.entity; import javax.persistence.*; +import java.util.ArrayList; +import java.util.List; @Entity @Table(name = "cats") @@ -12,6 +14,9 @@ public class Cat { private String name; private String description; + @OneToMany(cascade = CascadeType.ALL,orphanRemoval = true, fetch = FetchType.EAGER) + private List catWomanList = new ArrayList<>(); + public String getDescription() { return description; } @@ -20,8 +25,15 @@ public void setDescription(String description) { this.description = description; } - public String getName() { + public List getCatWomanList() { + return catWomanList; + } + public void setCatWomanList(List catWomanList) { + this.catWomanList = catWomanList; + } + + public String getName() { return name; } diff --git a/src/test/java/io/khasang/eshop/controller/CatControllerIntegrationTest.java b/src/test/java/io/khasang/eshop/controller/CatControllerIntegrationTest.java index 2302595..952f803 100644 --- a/src/test/java/io/khasang/eshop/controller/CatControllerIntegrationTest.java +++ b/src/test/java/io/khasang/eshop/controller/CatControllerIntegrationTest.java @@ -1,11 +1,13 @@ package io.khasang.eshop.controller; import io.khasang.eshop.entity.Cat; +import io.khasang.eshop.entity.CatWoman; import org.junit.*; import org.springframework.core.ParameterizedTypeReference; import org.springframework.http.*; import org.springframework.web.client.RestTemplate; +import java.util.ArrayList; import java.util.List; import static org.junit.Assert.assertEquals; @@ -35,6 +37,11 @@ public void init() { System.out.println("Init"); } + @After + public void clean() { + System.out.println("Clean"); + } + @Test public void addCat() { Cat cat = createdCat(); @@ -123,18 +130,26 @@ private Cat createdCat() { assertNotNull(createdCat); assertEquals(cat.getName(), createdCat.getName()); + assertNotNull(cat.getCatWomanList()); return createdCat; } - private Cat prefillCat(String barsik) { + private Cat prefillCat(String name ) { Cat cat = new Cat(); - cat.setName(barsik); + cat.setName(name); cat.setDescription("happy"); - return cat; - } - @After - public void clean() { - System.out.println("Clean"); + CatWoman catWoman1 = new CatWoman(); + + catWoman1.setName("Riska"); + CatWoman catWoman2 = new CatWoman(); + catWoman2.setName("Murka"); + + List catWomanList = new ArrayList<>(); + catWomanList.add(catWoman1); + catWomanList.add(catWoman2); + + cat.setCatWomanList(catWomanList); + return cat; } } From be72de90c52f11772ce100cc8e945e705ef67c20 Mon Sep 17 00:00:00 2001 From: Shmonderr Date: Sun, 18 Feb 2018 16:31:35 +0300 Subject: [PATCH 5/8] 05.02.2018 20.27 --- src/main/java/io/khasang/eshop/config/AppConfig.java | 2 +- src/main/java/io/khasang/eshop/entity/Cat.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/khasang/eshop/config/AppConfig.java b/src/main/java/io/khasang/eshop/config/AppConfig.java index ae172eb..f147aff 100644 --- a/src/main/java/io/khasang/eshop/config/AppConfig.java +++ b/src/main/java/io/khasang/eshop/config/AppConfig.java @@ -60,7 +60,7 @@ public CatDao catDao(){ @Bean public UserDao userDao(){ - return new UserDaoImpl((User.class)); + return new UserDaoImpl(User.class); } @Bean diff --git a/src/main/java/io/khasang/eshop/entity/Cat.java b/src/main/java/io/khasang/eshop/entity/Cat.java index 352ceda..7a8012c 100644 --- a/src/main/java/io/khasang/eshop/entity/Cat.java +++ b/src/main/java/io/khasang/eshop/entity/Cat.java @@ -11,6 +11,7 @@ public class Cat { @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "cat_id") private long id; + private String name; private String description; From 823ae7d8e5cbbbd2530c5c854c20914314df3bf3 Mon Sep 17 00:00:00 2001 From: Shmonderr Date: Sun, 18 Feb 2018 16:33:37 +0300 Subject: [PATCH 6/8] 05.02.2018 20.27 --- .../CatControllerIntegrationTest.java | 29 +++++-------------- 1 file changed, 7 insertions(+), 22 deletions(-) diff --git a/src/test/java/io/khasang/eshop/controller/CatControllerIntegrationTest.java b/src/test/java/io/khasang/eshop/controller/CatControllerIntegrationTest.java index 952f803..2302595 100644 --- a/src/test/java/io/khasang/eshop/controller/CatControllerIntegrationTest.java +++ b/src/test/java/io/khasang/eshop/controller/CatControllerIntegrationTest.java @@ -1,13 +1,11 @@ package io.khasang.eshop.controller; import io.khasang.eshop.entity.Cat; -import io.khasang.eshop.entity.CatWoman; import org.junit.*; import org.springframework.core.ParameterizedTypeReference; import org.springframework.http.*; import org.springframework.web.client.RestTemplate; -import java.util.ArrayList; import java.util.List; import static org.junit.Assert.assertEquals; @@ -37,11 +35,6 @@ public void init() { System.out.println("Init"); } - @After - public void clean() { - System.out.println("Clean"); - } - @Test public void addCat() { Cat cat = createdCat(); @@ -130,26 +123,18 @@ private Cat createdCat() { assertNotNull(createdCat); assertEquals(cat.getName(), createdCat.getName()); - assertNotNull(cat.getCatWomanList()); return createdCat; } - private Cat prefillCat(String name ) { + private Cat prefillCat(String barsik) { Cat cat = new Cat(); - cat.setName(name); + cat.setName(barsik); cat.setDescription("happy"); - - CatWoman catWoman1 = new CatWoman(); - - catWoman1.setName("Riska"); - CatWoman catWoman2 = new CatWoman(); - catWoman2.setName("Murka"); - - List catWomanList = new ArrayList<>(); - catWomanList.add(catWoman1); - catWomanList.add(catWoman2); - - cat.setCatWomanList(catWomanList); return cat; } + + @After + public void clean() { + System.out.println("Clean"); + } } From 20c1a0aa52951360948125cd514bcf767ecc494c Mon Sep 17 00:00:00 2001 From: Shmonderr Date: Sun, 18 Feb 2018 16:36:16 +0300 Subject: [PATCH 7/8] 05.02.2018 20.27 --- src/main/java/io/khasang/eshop/service/AnonymousService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/io/khasang/eshop/service/AnonymousService.java b/src/main/java/io/khasang/eshop/service/AnonymousService.java index 90ec175..8c59170 100644 --- a/src/main/java/io/khasang/eshop/service/AnonymousService.java +++ b/src/main/java/io/khasang/eshop/service/AnonymousService.java @@ -37,7 +37,7 @@ public interface AnonymousService { * method for delete specify anonymous by id * * @param id = anonymous id - * @return anonymous by id + * @return deleted anonymous by id */ Anonymous delete(long id); From 2ffb81a30b3514f4702082cf45ac6db10e1a3382 Mon Sep 17 00:00:00 2001 From: Shmonderr Date: Sun, 18 Feb 2018 16:41:53 +0300 Subject: [PATCH 8/8] 18.02.18 16.41 --- .../java/io/khasang/eshop/entity/Cat.java | 14 +--------- .../io/khasang/eshop/entity/CatWoman.java | 28 ------------------- 2 files changed, 1 insertion(+), 41 deletions(-) delete mode 100644 src/main/java/io/khasang/eshop/entity/CatWoman.java diff --git a/src/main/java/io/khasang/eshop/entity/Cat.java b/src/main/java/io/khasang/eshop/entity/Cat.java index 7a8012c..58f9018 100644 --- a/src/main/java/io/khasang/eshop/entity/Cat.java +++ b/src/main/java/io/khasang/eshop/entity/Cat.java @@ -1,8 +1,6 @@ package io.khasang.eshop.entity; import javax.persistence.*; -import java.util.ArrayList; -import java.util.List; @Entity @Table(name = "cats") @@ -15,9 +13,6 @@ public class Cat { private String name; private String description; - @OneToMany(cascade = CascadeType.ALL,orphanRemoval = true, fetch = FetchType.EAGER) - private List catWomanList = new ArrayList<>(); - public String getDescription() { return description; } @@ -26,15 +21,8 @@ public void setDescription(String description) { this.description = description; } - public List getCatWomanList() { - return catWomanList; - } - - public void setCatWomanList(List catWomanList) { - this.catWomanList = catWomanList; - } - public String getName() { + return name; } diff --git a/src/main/java/io/khasang/eshop/entity/CatWoman.java b/src/main/java/io/khasang/eshop/entity/CatWoman.java deleted file mode 100644 index 4d20b64..0000000 --- a/src/main/java/io/khasang/eshop/entity/CatWoman.java +++ /dev/null @@ -1,28 +0,0 @@ -package io.khasang.eshop.entity; - - -import javax.persistence.*; - -@Entity -public class CatWoman { - @Id - @GeneratedValue(strategy = GenerationType.AUTO) - private long id; - private String name; - - public long getId() { - return id; - } - - public void setId(long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } -}