diff --git a/.idea/libraries/Maven__junit_junit_4_13_2.xml b/.idea/libraries/Maven__junit_junit_4_13_2.xml
new file mode 100644
index 000000000..606c352d5
--- /dev/null
+++ b/.idea/libraries/Maven__junit_junit_4_13_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_hamcrest_hamcrest_core_2_2.xml b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_2_2.xml
new file mode 100644
index 000000000..15f1e4c17
--- /dev/null
+++ b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_2_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_spring_web_5_3_92.xml b/.idea/libraries/Maven__org_springframework_spring_web_5_3_9.xml
similarity index 100%
rename from .idea/libraries/Maven__org_springframework_spring_web_5_3_92.xml
rename to .idea/libraries/Maven__org_springframework_spring_web_5_3_9.xml
diff --git a/demo.iml b/demo.iml
index 2f45d51da..f17d54dcb 100644
--- a/demo.iml
+++ b/demo.iml
@@ -61,7 +61,6 @@
-
@@ -99,5 +98,7 @@
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index b4f4fc9d4..328ea740b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -52,6 +52,38 @@
4.13.2
test
+
+ org.springframework
+ spring-web
+ 5.3.9
+ test
+
+
+ org.springframework
+ spring-web
+
+
+ org.springframework
+ spring-web
+ 5.3.2
+ test
+
+
+ org.springframework
+ spring-web
+
+
+ org.springframework
+ spring-web
+
+
+
+ com.google.code.gson
+ gson
+ 2.8.6
+
+
+
diff --git a/src/main/java/com/example/demo/controller/BlogPostController.java b/src/main/java/com/example/demo/controller/BlogPostController.java
index 00c752bba..4c831b2f7 100644
--- a/src/main/java/com/example/demo/controller/BlogPostController.java
+++ b/src/main/java/com/example/demo/controller/BlogPostController.java
@@ -31,6 +31,7 @@ public ResponseEntity create(@RequestBody BlogPost blogPost){
return new ResponseEntity<>(service.create(blogPost), HttpStatus.CREATED);
}
+
@PutMapping(value = "/update/{id}")
public ResponseEntity update(@PathVariable Long id, @RequestBody BlogPost blogPost){
return new ResponseEntity<>(service.update(id, blogPost), HttpStatus.OK);
diff --git a/src/main/java/com/example/demo/controller/RecipeController.java b/src/main/java/com/example/demo/controller/RecipeController.java
deleted file mode 100644
index 15bb6671f..000000000
--- a/src/main/java/com/example/demo/controller/RecipeController.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.example.demo.controller;
-
-import com.example.demo.service.RecipeService;
-import com.example.demo.models.Recipe;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-@RestController
-@RequestMapping("/recipeController")
-public class RecipeController {
-
- @Autowired
- private RecipeService service;
-
- @GetMapping(value = "/read/{id}")
- public ResponseEntity read(@PathVariable Long id){
- return new ResponseEntity<>(service.read(id), HttpStatus.OK);
- }
-
- @GetMapping(value = "/read")
- public ResponseEntity> readAll(){
- return new ResponseEntity<>(service.readAll(), HttpStatus.OK);
- }
-
- @PostMapping(value = "/create")
- public ResponseEntity create(@RequestBody Recipe recipe){
- return new ResponseEntity<>(service.create(recipe), HttpStatus.CREATED);
- }
-
- @PutMapping(value = "/update/{id}")
- public ResponseEntity update(@PathVariable Long id, @RequestBody Recipe recipe){
- return new ResponseEntity<>(service.update(id, recipe), HttpStatus.OK);
- }
-
- @DeleteMapping(value = "/delete/{id}")
- public ResponseEntity delete(@PathVariable Long id){
- return new ResponseEntity<>(service.delete(id), HttpStatus.OK);
- }
-}
diff --git a/src/main/java/com/example/demo/models/BlogPost.java b/src/main/java/com/example/demo/models/BlogPost.java
index 956eb4f08..8767d69e4 100644
--- a/src/main/java/com/example/demo/models/BlogPost.java
+++ b/src/main/java/com/example/demo/models/BlogPost.java
@@ -21,15 +21,15 @@ public class BlogPost {
@Column(name = "title")
private String title;
- @Column(name = "image_url")
+ @Lob
+ @Column(name = "image_url", length = 666000)
private String imageUrl;
- @Nationalized
- @Column(name = "content")
+ @Lob
+ @Column(name = "content", length = 666000)
private String content;
- @OneToOne(cascade = CascadeType.ALL)
- private Recipe recipe;
+ private String recipe;
@ManyToOne
@JsonBackReference
@@ -45,7 +45,7 @@ public class BlogPost {
public BlogPost() {
}
- public BlogPost(Long id, String title, String imageUrl, String content, Recipe recipe, User user, List tags) {
+ public BlogPost(Long id, String title, String imageUrl, String content, String recipe, User user, List tags) {
this.id = id;
this.title = title;
this.imageUrl = imageUrl;
@@ -87,11 +87,11 @@ public void setContent(String content) {
this.content = content;
}
- public Recipe getRecipe() {
+ public String getRecipe() {
return recipe;
}
- public void setRecipe(Recipe recipe) {
+ public void setRecipe(String recipe) {
this.recipe = recipe;
}
diff --git a/src/main/java/com/example/demo/models/Recipe.java b/src/main/java/com/example/demo/models/Recipe.java
deleted file mode 100644
index 0fb859b5e..000000000
--- a/src/main/java/com/example/demo/models/Recipe.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package com.example.demo.models;
-
-import com.fasterxml.jackson.annotation.JsonIgnore;
-
-import javax.persistence.*;
-import java.util.List;
-
-@Entity
-@Table(name = "recipes")
-public class Recipe {
- @Id
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- private Long id;
- private String name;
- private String ingredients;
- private String instructions;
- @OneToOne(cascade = CascadeType.ALL)
- @JsonIgnore
- private BlogPost blogPost;
-
-
- public Recipe() {
- }
-
- public Recipe(Long id, String name, String ingredients, String instructions, BlogPost blogPost) {
- this.id = id;
- this.name = name;
- this.ingredients = ingredients;
- this.instructions = instructions;
- this.blogPost = blogPost;
- }
-
- 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;
- }
-
- public String getIngredients() {
- return ingredients;
- }
-
- public void setIngredients(String ingredients) {
- this.ingredients = ingredients;
- }
-
- public String getInstructions() {
- return instructions;
- }
-
- public void setInstructions(String instructions) {
- this.instructions = instructions;
- }
-
- public BlogPost getBlogPost() { return blogPost; }
-
- public void setBlogPost(BlogPost blogPost) { this.blogPost = blogPost; }
-
-}
diff --git a/src/main/java/com/example/demo/repository/RecipeRepository.java b/src/main/java/com/example/demo/repository/RecipeRepository.java
deleted file mode 100644
index a66f6ee67..000000000
--- a/src/main/java/com/example/demo/repository/RecipeRepository.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.example.demo.repository;
-
-import com.example.demo.models.Recipe;
-import org.springframework.data.repository.CrudRepository;
-import org.springframework.stereotype.Repository;
-
-@Repository
-public interface RecipeRepository extends CrudRepository {
-
-}
diff --git a/src/main/java/com/example/demo/repository/TagRepository.java b/src/main/java/com/example/demo/repository/TagRepository.java
index 336e4cdfb..b0692b79d 100644
--- a/src/main/java/com/example/demo/repository/TagRepository.java
+++ b/src/main/java/com/example/demo/repository/TagRepository.java
@@ -1,7 +1,5 @@
package com.example.demo.repository;
-import com.example.demo.models.BlogPost;
-import com.example.demo.models.Recipe;
import com.example.demo.models.Tag;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
diff --git a/src/main/java/com/example/demo/service/BlogPostService.java b/src/main/java/com/example/demo/service/BlogPostService.java
index e95d3221d..529773e5a 100644
--- a/src/main/java/com/example/demo/service/BlogPostService.java
+++ b/src/main/java/com/example/demo/service/BlogPostService.java
@@ -17,16 +17,6 @@ public class BlogPostService {
@Autowired
TagRepository tagRepository;
-// if (postRequest.getTags() != null) {
-//
-// for (Tag t : postRequest.getTags()) {
-// if (tagRepository.existsByTagName(t.getTagName())) {
-// t.setId(tagRepository.findByTagName(t.getTagName()).getId());
-// }
-// tagRepository.save(t);
-// }
-// }
-
public BlogPost create(BlogPost blogPost){
List blogTags = blogPost.getTags();
if(blogPost.getTags() != null) {
diff --git a/src/main/java/com/example/demo/service/RecipeService.java b/src/main/java/com/example/demo/service/RecipeService.java
deleted file mode 100644
index acef80734..000000000
--- a/src/main/java/com/example/demo/service/RecipeService.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package com.example.demo.service;
-
-import com.example.demo.models.Recipe;
-import com.example.demo.repository.RecipeRepository;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@Service
-public class RecipeService {
- @Autowired
- private RecipeRepository repository;
-
- public Recipe create(Recipe recipe){
- return repository.save(recipe);
- }
-
- public Recipe read(Long id){
- return repository.findById(id).get();
- }
-
- public List readAll(){
- Iterable recipeIterable = repository.findAll();
- List result = new ArrayList<>();
- recipeIterable.forEach(result::add);
- return result;
- }
-
- public Recipe update(Long id, Recipe newRecipe){
- Recipe recipeInDatabase = read(id);
- recipeInDatabase.setName(newRecipe.getName());
- recipeInDatabase.setIngredients(newRecipe.getIngredients());
- recipeInDatabase.setInstructions(newRecipe.getInstructions());
- return repository.save(recipeInDatabase);
- }
-
- public Recipe delete(Recipe recipe){
- repository.delete(recipe);
- return recipe;
- }
-
- public Recipe delete(Long id){
- return delete(read(id));
- }
-}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 7cb4ae087..ee9da8b9c 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -6,5 +6,5 @@ spring.datasource.username=jen
spring.datasource.password=zipcode0
spring.jpa.show-sql=true
-spring.jpa.hibernate.ddl-auto=create-drop
+spring.jpa.hibernate.ddl-auto=create
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
\ No newline at end of file
diff --git a/src/test/java/com/example/demo/controller/BlogPostControllerTest.java b/src/test/java/com/example/demo/controller/BlogPostControllerTest.java
index b8773a17c..5923725fd 100644
--- a/src/test/java/com/example/demo/controller/BlogPostControllerTest.java
+++ b/src/test/java/com/example/demo/controller/BlogPostControllerTest.java
@@ -2,21 +2,27 @@
import com.example.demo.models.BlogPost;
import com.example.demo.service.BlogPostService;
+import com.google.gson.Gson;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
-
+import org.springframework.test.web.servlet.MockMvc;
+import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import java.util.ArrayList;
import java.util.List;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
class BlogPostControllerTest {
+ @Autowired
+ MockMvc mockMvc;
@InjectMocks
BlogPostController blogPostController;
@@ -24,82 +30,77 @@ class BlogPostControllerTest {
@Mock
BlogPostService service;
+ private Gson gson;
+
+ BlogPostControllerTest() {
+ }
+
@BeforeEach
void setUp() {
MockitoAnnotations.initMocks(this);
+ mockMvc = MockMvcBuilders.standaloneSetup(blogPostController).build();
+ gson = new Gson();
+
}
@Test
- void read() {
- //given
+ void read() throws Exception {
+
BlogPost blogPost = new BlogPost();
- ResponseEntity expected = new ResponseEntity<>(blogPost,HttpStatus.OK);
- //when
Mockito.doReturn(blogPost).when(service).read(Mockito.anyLong());
- ResponseEntity actual = blogPostController.read(Mockito.anyLong());
- //Then
- assertEquals(expected,actual);
+ mockMvc.perform(get("/blogPostController/read/{id}",5L)).andExpect(status().isOk());
}
@Test
- void readAll() {
- //given
+ void readAll() throws Exception {
+
List blogPostList = new ArrayList<>();
- ResponseEntity> expected = new ResponseEntity<>(blogPostList,HttpStatus.OK);
- //when
Mockito.doReturn(blogPostList).when(service).readAll();
- ResponseEntity> actual = blogPostController.readAll();
- //Then
- assertEquals(expected,actual);
+ mockMvc.perform(get("/blogPostController/read",5L)).andExpect(status().isOk());
}
@Test
- void create() {
- //given
+ void create() throws Exception {
+
BlogPost blogPost = new BlogPost();
- ResponseEntity expected = new ResponseEntity<>(blogPost,HttpStatus.CREATED);
- //when
Mockito.doReturn(blogPost).when(service).create(blogPost);
- ResponseEntity actual = blogPostController.create(blogPost);
-
- //Then
- assertEquals(expected,actual);
+ mockMvc.perform(post("/blogPostController/create")
+ .contentType(MediaType.APPLICATION_JSON)
+ .content(gson.toJson(blogPost)))
+ .andExpect(status().isCreated());
}
@Test
- void updateTest() {
- //given
+ void updateTest() throws Exception {
+
BlogPost blogPost = new BlogPost();
- ResponseEntity expected = new ResponseEntity<>(blogPost,HttpStatus.OK);
- //when
Mockito.when(service.update(5L, blogPost)).thenReturn(blogPost);
- ResponseEntity actual = blogPostController.update(5L,blogPost);
- //Then
- assertEquals(expected,actual);
+ mockMvc.perform(put("/blogPostController/update/{id}",5L)
+ .contentType(MediaType.APPLICATION_JSON)
+ .content(gson.toJson(blogPost)))
+ .andExpect(status().isOk());
}
@Test
- void delete() {
- //given
- BlogPost blogPost = new BlogPost();
- ResponseEntity expected = new ResponseEntity<>(blogPost,HttpStatus.OK);
+ void deleteTest() throws Exception {
- //when
+ BlogPost blogPost = new BlogPost();
+//
Mockito.doReturn(blogPost).when(service).delete(Mockito.anyLong());
- ResponseEntity actual = blogPostController.delete(Mockito.anyLong());
- //Then
- assertEquals(expected,actual);
+ mockMvc.perform(delete("/blogPostController/delete/{id}", 5L))
+ .andExpect(status().isOk());
+
}
}
\ No newline at end of file
diff --git a/src/test/java/com/example/demo/controller/RecipeControllerTest.java b/src/test/java/com/example/demo/controller/RecipeControllerTest.java
deleted file mode 100644
index 45035deed..000000000
--- a/src/test/java/com/example/demo/controller/RecipeControllerTest.java
+++ /dev/null
@@ -1,102 +0,0 @@
-package com.example.demo.controller;
-
-import com.example.demo.models.BlogPost;
-import com.example.demo.models.Recipe;
-import com.example.demo.service.RecipeService;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.MockitoAnnotations;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-class RecipeControllerTest {
- @InjectMocks
- RecipeController recipeController;
-
- @Mock
- RecipeService service;
-
- @BeforeEach
- void setUp() {
- MockitoAnnotations.initMocks(this);
- }
-
- @Test
- void read() {
- //given
- Recipe recipe = new Recipe();
- ResponseEntity expected = new ResponseEntity<>(recipe, HttpStatus.OK);
-
- //when
- Mockito.doReturn(recipe).when(service).read(Mockito.anyLong());
- ResponseEntity actual = recipeController.read(Mockito.anyLong());
-
- //Then
- assertEquals(expected,actual);
- }
-
- @Test
- void readAll() {
- //given
- List recipes = new ArrayList<>();
- ResponseEntity> expected = new ResponseEntity<>(recipes,HttpStatus.OK);
-
- //when
- Mockito.doReturn(recipes).when(service).readAll();
- ResponseEntity> actual = recipeController.readAll();
-
- //Then
- assertEquals(expected,actual);
- }
-
- @Test
- void create() {
- //given
- Recipe recipe = new Recipe();
- ResponseEntity expected = new ResponseEntity<>(recipe,HttpStatus.CREATED);
-
- //when
- Mockito.doReturn(recipe).when(service).create(recipe);
- ResponseEntity actual = recipeController.create(recipe);
-
- //Then
- assertEquals(expected,actual);
- }
-
- @Test
- void update() {
- //given
- Recipe recipe = new Recipe();
- ResponseEntity expected = new ResponseEntity<>(recipe,HttpStatus.OK);
-
- //when
- Mockito.when(service.update(5L, recipe)).thenReturn(recipe);
-
- ResponseEntity actual = recipeController.update(5L,recipe);
-
- //Then
- assertEquals(expected,actual);
- }
-
- @Test
- void delete() {
- //given
- Recipe recipe = new Recipe();
- ResponseEntity expected = new ResponseEntity<>(recipe,HttpStatus.OK);
-
- //when
- Mockito.doReturn(recipe).when(service).delete(Mockito.anyLong());
- ResponseEntity actual = recipeController.delete(Mockito.anyLong());
-
- //Then
- assertEquals(expected,actual);
- }
-}
\ No newline at end of file
diff --git a/src/test/java/com/example/demo/controller/TagControllerTest.java b/src/test/java/com/example/demo/controller/TagControllerTest.java
index 00210ec0c..4e4f46d0b 100644
--- a/src/test/java/com/example/demo/controller/TagControllerTest.java
+++ b/src/test/java/com/example/demo/controller/TagControllerTest.java
@@ -3,100 +3,107 @@
import com.example.demo.models.BlogPost;
import com.example.demo.models.Tag;
import com.example.demo.service.TagService;
+import com.google.gson.Gson;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
+import org.springframework.test.web.servlet.MockMvc;
+import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
+import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
+import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import java.util.ArrayList;
import java.util.List;
import static org.junit.jupiter.api.Assertions.*;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
class TagControllerTest {
+ @Autowired
+ MockMvc mockMvc;
@InjectMocks
TagController tagController;
@Mock
TagService service;
+
+ private Gson gson;
+
+ TagControllerTest(){
+
+ }
@BeforeEach
void setUp() {
MockitoAnnotations.initMocks(this);
+ mockMvc = MockMvcBuilders.standaloneSetup(tagController).build();
+ gson = new Gson();
}
@Test
- void read() {
- //given
+ void read() throws Exception {
+
Tag tag = new Tag();
- ResponseEntity expected = new ResponseEntity<>(tag, HttpStatus.OK);
- //when
Mockito.doReturn(tag).when(service).read(Mockito.anyLong());
- ResponseEntity actual = tagController.read(Mockito.anyLong());
- //Then
- assertEquals(expected,actual);
+ mockMvc.perform(get("/tagController/read/{id}",5L)).andExpect(status().isOk());
}
@Test
- void readAll() {
- //given
+ void readAll() throws Exception {
+
List tagList = new ArrayList<>();
- ResponseEntity> expected = new ResponseEntity<>(tagList,HttpStatus.OK);
- //when
Mockito.doReturn(tagList).when(service).readAll();
- ResponseEntity> actual = tagController.readAll();
- //Then
- assertEquals(expected,actual);
+ mockMvc.perform(get("/tagController/read",5L)).andExpect(status().isOk());
}
@Test
- void create() {
- //given
+ void create() throws Exception {
+
Tag tag = new Tag();
- ResponseEntity expected = new ResponseEntity<>(tag,HttpStatus.CREATED);
- //when
Mockito.doReturn(tag).when(service).create(tag);
- ResponseEntity actual = tagController.create(tag);
- //Then
- assertEquals(expected,actual);
+ mockMvc.perform(post("/tagController/create")
+ .contentType(MediaType.APPLICATION_JSON)
+ .content(gson.toJson(tag)))
+ .andExpect(status().isCreated());
}
@Test
- void update() {
- //given
+ void update() throws Exception {
+
Tag tag = new Tag();
- ResponseEntity expected = new ResponseEntity<>(tag,HttpStatus.OK);
- //when
Mockito.when(service.update(5L, tag)).thenReturn(tag);
- ResponseEntity actual = tagController.update(5L,tag);
+ mockMvc.perform(put("/tagController/update/{id}",5L)
+ .contentType(MediaType.APPLICATION_JSON)
+ .content(gson.toJson(tag)))
+ .andExpect(status().isOk());
+
- //Then
- assertEquals(expected,actual);
}
@Test
- void delete() {
- //given
+ void deleteTest() throws Exception {
+
Tag tag = new Tag();
- ResponseEntity expected = new ResponseEntity<>(tag,HttpStatus.OK);
- //when
Mockito.doReturn(tag).when(service).delete(Mockito.anyLong());
- ResponseEntity actual = tagController.delete(Mockito.anyLong());
- //Then
- assertEquals(expected,actual);
+ mockMvc.perform(delete("/tagController/delete/{id}", 5L))
+ .andExpect(status().isOk());
}
}
\ No newline at end of file
diff --git a/src/test/java/com/example/demo/controller/UserControllerTest.java b/src/test/java/com/example/demo/controller/UserControllerTest.java
index 78f4acdaf..38900e330 100644
--- a/src/test/java/com/example/demo/controller/UserControllerTest.java
+++ b/src/test/java/com/example/demo/controller/UserControllerTest.java
@@ -3,101 +3,106 @@
import com.example.demo.models.BlogPost;
import com.example.demo.models.User;
import com.example.demo.service.UserService;
+import com.google.gson.Gson;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
+import org.springframework.test.web.servlet.MockMvc;
+import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import java.util.ArrayList;
import java.util.List;
import static org.junit.jupiter.api.Assertions.*;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
class UserControllerTest {
+ @Autowired
+ MockMvc mockMvc;
+
@InjectMocks
UserController userController;
@Mock
UserService service;
+ private Gson gson;
+
+ UserControllerTest(){
+
+ }
+
@BeforeEach
void setUp() {
MockitoAnnotations.initMocks(this);
+ mockMvc = MockMvcBuilders.standaloneSetup(userController).build();
+ gson = new Gson();
}
@Test
- void read() {
- //given
+ void read() throws Exception {
+
User user = new User();
- ResponseEntity expected = new ResponseEntity<>(user, HttpStatus.OK);
- //when
Mockito.doReturn(user).when(service).read(Mockito.anyLong());
- ResponseEntity actual = userController.read(Mockito.anyLong());
- //Then
- assertEquals(expected,actual);
+ mockMvc.perform(get("/userController/read/{id}",5L)).andExpect(status().isOk());
}
@Test
- void readAll() {
- //given
+ void readAll() throws Exception {
+
List userList = new ArrayList<>();
- ResponseEntity> expected = new ResponseEntity<>(userList,HttpStatus.OK);
- //when
Mockito.doReturn(userList).when(service).readAll();
- ResponseEntity> actual = userController.readAll();
- //Then
- assertEquals(expected,actual);
+ mockMvc.perform(get("/userController/read",5L)).andExpect(status().isOk());
}
@Test
- void create() {
- //given
+ void create() throws Exception {
+
User user = new User();
- ResponseEntity expected = new ResponseEntity<>(user,HttpStatus.CREATED);
- //when
Mockito.doReturn(user).when(service).create(user);
- ResponseEntity actual = userController.create(user);
- //Then
- assertEquals(expected,actual);
+ mockMvc.perform(post("/userController/create")
+ .contentType(MediaType.APPLICATION_JSON)
+ .content(gson.toJson(user)))
+ .andExpect(status().isCreated());
}
@Test
- void update() {
- //given
+ void update() throws Exception {
+
User user = new User();
- ResponseEntity expected = new ResponseEntity<>(user,HttpStatus.OK);
- //when
Mockito.when(service.update(5L, user)).thenReturn(user);
- ResponseEntity actual = userController.update(5L,user);
-
- //Then
- assertEquals(expected,actual);
+ mockMvc.perform(put("/userController/update/{id}",5L)
+ .contentType(MediaType.APPLICATION_JSON)
+ .content(gson.toJson(user)))
+ .andExpect(status().isOk());
}
@Test
- void delete() {
- //given
+ void deleteTest() throws Exception {
+
User user = new User();
- ResponseEntity expected = new ResponseEntity<>(user,HttpStatus.OK);
- //when
Mockito.doReturn(user).when(service).delete(Mockito.anyLong());
- ResponseEntity actual = userController.delete(Mockito.anyLong());
- //Then
- assertEquals(expected,actual);
+ mockMvc.perform(delete("/userController/delete/{id}", 5L))
+ .andExpect(status().isOk());
}
}
\ No newline at end of file
diff --git a/src/test/java/com/example/demo/models/BlogPostTest.java b/src/test/java/com/example/demo/models/BlogPostTest.java
index 495a18a20..825f40aed 100644
--- a/src/test/java/com/example/demo/models/BlogPostTest.java
+++ b/src/test/java/com/example/demo/models/BlogPostTest.java
@@ -60,19 +60,19 @@ void getImageUrl() {
assertEquals(expectedImageUrl,actual);
}
- @Test
- void getRecipe() {
- //given
- Recipe expectedRecipe = new Recipe();
- blogPost.setRecipe(expectedRecipe);
-
- //when
- Recipe actual = blogPost.getRecipe();
-
- //Then
- assertEquals(expectedRecipe,actual);
-
- }
+// @Test
+// void getRecipe() {
+// //given
+// Recipe expectedRecipe = new Recipe();
+// blogPost.setRecipe(expectedRecipe);
+//
+// //when
+// Recipe actual = blogPost.getRecipe();
+//
+// //Then
+// assertEquals(expectedRecipe,actual);
+//
+// }
@Test
void getUser() {
diff --git a/src/test/java/com/example/demo/models/RecipeTest.java b/src/test/java/com/example/demo/models/RecipeTest.java
deleted file mode 100644
index 8d767f0b7..000000000
--- a/src/test/java/com/example/demo/models/RecipeTest.java
+++ /dev/null
@@ -1,88 +0,0 @@
-package com.example.demo.models;
-
-
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.mockito.InjectMocks;
-import org.mockito.MockitoAnnotations;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-class RecipeTest {
-
- @InjectMocks
- Recipe recipe;
-
-
- @BeforeEach
- void setUp() {
- MockitoAnnotations.initMocks(this);
- }
-
- @Test
- void getId() {
- //given
- Long expectedId = 4L;
- recipe.setId(4L);
-
- //When
- Long actual = recipe.getId();
-
- //Then
- assertEquals(expectedId,actual);
- }
-
- @Test
- void getName() {
- //given
- String expectedName = "Airfryer";
- recipe.setName("Airfryer");
-
- //when
- String actual = recipe.getName();
-
- //Then
- assertEquals(expectedName,actual);
- }
-
- @Test
- void getIngredients() {
- //given
- String expectedIngredients = "Spices";
- recipe.setIngredients("Spices");
-
- //When
- String actual = recipe.getIngredients();
-
- //Then
- assertEquals(expectedIngredients,actual);
- }
-
- @Test
- void getInstructions() {
- //given
- String expectedInstruction = "FollowMe";
- recipe.setInstructions("FollowMe");
-
- //when
- String actual = recipe.getInstructions();
-
- //Then
- assertEquals(expectedInstruction,actual);
- }
-
- @Test
- void getBlogPost() {
- //given
- BlogPost expectedBlogPost = new BlogPost();
- recipe.setBlogPost(expectedBlogPost);
-
- //when
- BlogPost actual = recipe.getBlogPost();
-
- //Then
- assertEquals(expectedBlogPost,actual);
-
- }
-
-}
\ No newline at end of file
diff --git a/src/test/java/com/example/demo/service/RecipeServiceTest.java b/src/test/java/com/example/demo/service/RecipeServiceTest.java
deleted file mode 100644
index 898ae0ca2..000000000
--- a/src/test/java/com/example/demo/service/RecipeServiceTest.java
+++ /dev/null
@@ -1,120 +0,0 @@
-package com.example.demo.service;
-
-import com.example.demo.models.Recipe;
-import com.example.demo.repository.RecipeRepository;
-
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.MockitoAnnotations;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Optional;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-class RecipeServiceTest {
-
- @InjectMocks
- RecipeService recipeService;
-
- @Mock
- RecipeRepository repository;
-
- @BeforeEach
- void setUp() {
- MockitoAnnotations.initMocks(this);
- }
-
- @Test
- void create() {
- //given
- Recipe recipe = new Recipe();
- Recipe expected = new Recipe();
-
- //when
- Mockito.when(repository.save(recipe)).thenReturn(expected);
- Recipe Actual = recipeService.create(recipe);
-
- //Then
- assertEquals(expected,Actual);
- }
-
- @Test
- void readTest() {
- //given
- List id = new ArrayList<>();
- Recipe expected = new Recipe();
-
- //when
- Mockito.when(repository.findById(Mockito.anyLong())).thenReturn(java.util.Optional.of(expected));
- Recipe Actual = recipeService.read(Mockito.anyLong());
-
- //Then
- assertEquals(expected,Actual);
- }
-
- @Test
- void readAll() {
- //given
- List list = new ArrayList<>();
- list.add(new Recipe());
- List expected = new ArrayList();
-
- //when
- Mockito.when(repository.findAll()).thenReturn(expected);
- List actual = recipeService.readAll();
-
- //Then
- assertEquals(expected,actual);
- }
-
- @Test
- void update() {
- //given
- Recipe recipe = new Recipe();
- recipe.setName("Airfryer");
- recipe.setIngredients("Spices");
- recipe.setInstructions("Follow me");
- List id = new ArrayList<>();
- id.add(5L);
- id.add(6L);
-
- //when
- Mockito.when(repository.findById(Mockito.anyLong())).thenReturn(Optional.of(recipe));
- Mockito.when(repository.save(recipe)).thenReturn(recipe);
- Recipe actual = recipeService.update(Mockito.anyLong(),recipe);
-
- //Then
- assertEquals(recipe,actual);
- }
-
- @Test
- void delete() {
- //given
- Recipe recipe = new Recipe();
-
- //when
- Mockito.when(repository.findById(2L)).thenReturn(Optional.of(recipe));
- Recipe actual = recipeService.delete(recipe);
-
- //Then
- assertEquals(recipe,actual);
- }
-
- @Test
- void testDelete() {
- //given
- Recipe recipe = new Recipe();
-
- //when
- Mockito.when(repository.findById(4L)).thenReturn(Optional.of(recipe));
- Recipe actual = recipeService.delete(4L);
-
- //Then
- assertEquals(recipe,actual);
- }
-}
\ No newline at end of file
diff --git a/target/classes/application.properties b/target/classes/application.properties
index 7cb4ae087..ee9da8b9c 100644
--- a/target/classes/application.properties
+++ b/target/classes/application.properties
@@ -6,5 +6,5 @@ spring.datasource.username=jen
spring.datasource.password=zipcode0
spring.jpa.show-sql=true
-spring.jpa.hibernate.ddl-auto=create-drop
+spring.jpa.hibernate.ddl-auto=create
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
\ No newline at end of file
diff --git a/target/classes/com/example/demo/controller/BlogPostController.class b/target/classes/com/example/demo/controller/BlogPostController.class
index b5aded88e..aa27f89d7 100644
Binary files a/target/classes/com/example/demo/controller/BlogPostController.class and b/target/classes/com/example/demo/controller/BlogPostController.class differ
diff --git a/target/classes/com/example/demo/controller/RecipeController.class b/target/classes/com/example/demo/controller/RecipeController.class
deleted file mode 100644
index 815ed0df2..000000000
Binary files a/target/classes/com/example/demo/controller/RecipeController.class and /dev/null differ
diff --git a/target/classes/com/example/demo/models/BlogPost.class b/target/classes/com/example/demo/models/BlogPost.class
index 49f395dab..14eacf1f7 100644
Binary files a/target/classes/com/example/demo/models/BlogPost.class and b/target/classes/com/example/demo/models/BlogPost.class differ
diff --git a/target/classes/com/example/demo/models/Recipe.class b/target/classes/com/example/demo/models/Recipe.class
deleted file mode 100644
index f79785f03..000000000
Binary files a/target/classes/com/example/demo/models/Recipe.class and /dev/null differ
diff --git a/target/classes/com/example/demo/repository/RecipeRepository.class b/target/classes/com/example/demo/repository/RecipeRepository.class
deleted file mode 100644
index cbba40f0c..000000000
Binary files a/target/classes/com/example/demo/repository/RecipeRepository.class and /dev/null differ
diff --git a/target/classes/com/example/demo/service/BlogPostService.class b/target/classes/com/example/demo/service/BlogPostService.class
index ba52a6abf..08d347f74 100644
Binary files a/target/classes/com/example/demo/service/BlogPostService.class and b/target/classes/com/example/demo/service/BlogPostService.class differ
diff --git a/target/classes/com/example/demo/service/RecipeService.class b/target/classes/com/example/demo/service/RecipeService.class
deleted file mode 100644
index 93b2da0d6..000000000
Binary files a/target/classes/com/example/demo/service/RecipeService.class and /dev/null differ
diff --git a/target/test-classes/com/example/demo/controller/BlogPostControllerTest.class b/target/test-classes/com/example/demo/controller/BlogPostControllerTest.class
index 417a4927e..41839a1ba 100644
Binary files a/target/test-classes/com/example/demo/controller/BlogPostControllerTest.class and b/target/test-classes/com/example/demo/controller/BlogPostControllerTest.class differ
diff --git a/target/test-classes/com/example/demo/controller/RecipeControllerTest.class b/target/test-classes/com/example/demo/controller/RecipeControllerTest.class
deleted file mode 100644
index e1397541b..000000000
Binary files a/target/test-classes/com/example/demo/controller/RecipeControllerTest.class and /dev/null differ
diff --git a/target/test-classes/com/example/demo/controller/TagControllerTest.class b/target/test-classes/com/example/demo/controller/TagControllerTest.class
index 07bd4c9ee..ce59272b2 100644
Binary files a/target/test-classes/com/example/demo/controller/TagControllerTest.class and b/target/test-classes/com/example/demo/controller/TagControllerTest.class differ
diff --git a/target/test-classes/com/example/demo/controller/UserControllerTest.class b/target/test-classes/com/example/demo/controller/UserControllerTest.class
index 939462214..add5216a3 100644
Binary files a/target/test-classes/com/example/demo/controller/UserControllerTest.class and b/target/test-classes/com/example/demo/controller/UserControllerTest.class differ
diff --git a/target/test-classes/com/example/demo/models/BlogPostTest.class b/target/test-classes/com/example/demo/models/BlogPostTest.class
index de1a325b0..f37c57c86 100644
Binary files a/target/test-classes/com/example/demo/models/BlogPostTest.class and b/target/test-classes/com/example/demo/models/BlogPostTest.class differ
diff --git a/target/test-classes/com/example/demo/models/RecipeTest.class b/target/test-classes/com/example/demo/models/RecipeTest.class
deleted file mode 100644
index 562d38097..000000000
Binary files a/target/test-classes/com/example/demo/models/RecipeTest.class and /dev/null differ
diff --git a/target/test-classes/com/example/demo/service/RecipeServiceTest.class b/target/test-classes/com/example/demo/service/RecipeServiceTest.class
deleted file mode 100644
index d580b1220..000000000
Binary files a/target/test-classes/com/example/demo/service/RecipeServiceTest.class and /dev/null differ