Skip to content

Commit c6a8d9c

Browse files
committed
GP-66 add display names to all tests
1 parent 2a5e48b commit c6a8d9c

File tree

2 files changed

+63
-45
lines changed

2 files changed

+63
-45
lines changed

3-0-spring-framework/3-0-1-hello-spring-mvc/src/test/java/com/bobocode/mvc/api/NoteRestControllerTest.java

Lines changed: 35 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,7 @@
44
import com.bobocode.mvc.model.Note;
55
import com.fasterxml.jackson.databind.ObjectMapper;
66
import lombok.SneakyThrows;
7-
import org.junit.jupiter.api.MethodOrderer;
8-
import org.junit.jupiter.api.Order;
9-
import org.junit.jupiter.api.Test;
10-
import org.junit.jupiter.api.TestMethodOrder;
7+
import org.junit.jupiter.api.*;
118
import org.springframework.beans.factory.annotation.Autowired;
129
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
1310
import org.springframework.boot.test.mock.mockito.MockBean;
@@ -38,25 +35,28 @@ class NoteRestControllerTest {
3835
@Autowired
3936
private MockMvc mockMvc;
4037

41-
@Order(1)
4238
@Test
39+
@Order(1)
40+
@DisplayName("Class is marked as @RestController")
4341
void classIsMarkedAsRestController() {
4442
var restControllerAnnotation = NoteRestController.class.getAnnotation(RestController.class);
4543

4644
assertNotNull(restControllerAnnotation);
4745
}
4846

49-
@Order(2)
5047
@Test
48+
@Order(2)
49+
@DisplayName("Base URL `/api/notes` is specified in @RequestMapping")
5150
void requestMappingIsSpecified() {
5251
var requestMappingAnnotation = NoteRestController.class.getAnnotation(RequestMapping.class);
5352
var urlMapping = extractUrlMapping(requestMappingAnnotation);
5453

5554
assertThat(urlMapping).isEqualTo("/api/notes");
5655
}
5756

58-
@Order(3)
5957
@Test
58+
@Order(3)
59+
@DisplayName("Method that get notes is marked with @GetMapping")
6060
void getMappingIsImplemented() {
6161
var foundMethodWithGetMapping = Arrays.stream(NoteRestController.class.getDeclaredMethods())
6262
.anyMatch(
@@ -67,8 +67,9 @@ void getMappingIsImplemented() {
6767
assertTrue(foundMethodWithGetMapping);
6868
}
6969

70-
@Order(4)
7170
@Test
71+
@Order(4)
72+
@DisplayName("Get method has no parameters")
7273
void getNotesMethodHasNoParameters() {
7374
var getNotesMethod = Arrays.stream(NoteRestController.class.getDeclaredMethods())
7475
.filter(
@@ -81,9 +82,10 @@ void getNotesMethodHasNoParameters() {
8182
assertThat(getNotesMethod.getParameterCount()).isZero();
8283
}
8384

84-
@Order(5)
8585
@Test
86+
@Order(5)
8687
@SneakyThrows
88+
@DisplayName("Get method returns stored notes as List<Note>")
8789
void getNotesMethodReturnsNoteList() {
8890
var controller = new NoteRestController(notes);
8991
var noteList = givenNoteList();
@@ -100,8 +102,9 @@ void getNotesMethodReturnsNoteList() {
100102
assertThat(response).isEqualTo(noteList);
101103
}
102104

103-
@Order(6)
104105
@Test
106+
@Order(6)
107+
@DisplayName("GET endpoint is completed ✅")
105108
void getNotes() throws Exception {
106109
List<Note> noteList = List.of(
107110
new Note("Test", "Hello, World!"),
@@ -124,8 +127,9 @@ void getNotes() throws Exception {
124127
"]"));
125128
}
126129

127-
@Order(7)
128130
@Test
131+
@Order(7)
132+
@DisplayName("Method that adds a note is marked with @PostMapping")
129133
void postMappingIsImplemented() {
130134
var foundMethodWithGetMapping = Arrays.stream(NoteRestController.class.getDeclaredMethods())
131135
.anyMatch(
@@ -136,8 +140,9 @@ void postMappingIsImplemented() {
136140
assertTrue(foundMethodWithGetMapping);
137141
}
138142

139-
@Order(8)
140143
@Test
144+
@Order(8)
145+
@DisplayName("Add method accepts Note as a parameter")
141146
void addNoteMethodAcceptsNewNoteAsParameter() {
142147
var addNoteMethod = Arrays.stream(NoteRestController.class.getDeclaredMethods())
143148
.filter(
@@ -152,8 +157,9 @@ void addNoteMethodAcceptsNewNoteAsParameter() {
152157

153158
}
154159

155-
@Order(9)
156160
@Test
161+
@Order(9)
162+
@DisplayName("Add method parameter note is marked with @RequestBody")
157163
void addNoteMethodParameterIsMarkedAsRequestBody() {
158164
var addNoteMethod = Arrays.stream(NoteRestController.class.getDeclaredMethods())
159165
.filter(
@@ -169,9 +175,10 @@ void addNoteMethodParameterIsMarkedAsRequestBody() {
169175
assertNotNull(requestBodyAnnotation);
170176
}
171177

172-
@Order(10)
173178
@Test
179+
@Order(10)
174180
@SneakyThrows
181+
@DisplayName("Add method returns void")
175182
void addNoteMethodReturnsVoid() {
176183
var addNoteMethod = Arrays.stream(NoteRestController.class.getDeclaredMethods())
177184
.filter(
@@ -187,9 +194,10 @@ void addNoteMethodReturnsVoid() {
187194
assertThat(returnType).isEqualTo(Void.TYPE);
188195
}
189196

190-
@Order(11)
191197
@Test
198+
@Order(11)
192199
@SneakyThrows
200+
@DisplayName("Add method uses storage to add a new note")
193201
void addNotePassPostedNote() {
194202
var note = new Note("Test", "Hello, World!");
195203
var controller = new NoteRestController(notes);
@@ -207,8 +215,20 @@ void addNotePassPostedNote() {
207215
verify(notes).add(note);
208216
}
209217

218+
@Test
210219
@Order(12)
220+
@DisplayName("POST endpoint responds with error when fields are empty")
221+
void addNoteRespondWithClientErrorWhenFieldsAreEmpty() throws Exception {
222+
mockMvc.perform(post("/api/notes")
223+
.contentType(MediaType.APPLICATION_JSON)
224+
.content(asJsonString(new Note()))
225+
)
226+
.andExpect(status().is4xxClientError());
227+
}
228+
211229
@Test
230+
@Order(13)
231+
@DisplayName("POST endpoint is completed ✅")
212232
void addNote() throws Exception {
213233
Note note = new Note("Test", "Hello, World!");
214234

@@ -221,16 +241,6 @@ void addNote() throws Exception {
221241
verify(notes).add(note);
222242
}
223243

224-
@Order(13)
225-
@Test
226-
void addNoteRespondWithClientErrorWhenFieldsAreEmpty() throws Exception {
227-
mockMvc.perform(post("/api/notes")
228-
.contentType(MediaType.APPLICATION_JSON)
229-
.content(asJsonString(new Note()))
230-
)
231-
.andExpect(status().is4xxClientError());
232-
}
233-
234244
@SneakyThrows
235245
private String asJsonString(Object object) {
236246
return new ObjectMapper().writeValueAsString(object);

3-0-spring-framework/3-0-1-hello-spring-mvc/src/test/java/com/bobocode/mvc/controller/NoteControllerTest.java

Lines changed: 28 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,7 @@
33
import com.bobocode.mvc.data.Notes;
44
import com.bobocode.mvc.model.Note;
55
import lombok.SneakyThrows;
6-
import org.junit.jupiter.api.MethodOrderer;
7-
import org.junit.jupiter.api.Order;
8-
import org.junit.jupiter.api.Test;
9-
import org.junit.jupiter.api.TestMethodOrder;
6+
import org.junit.jupiter.api.*;
107
import org.springframework.beans.factory.annotation.Autowired;
118
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
129
import org.springframework.boot.test.mock.mockito.MockBean;
@@ -40,25 +37,27 @@ class NoteControllerTest {
4037
@Autowired
4138
private MockMvc mockMvc;
4239

43-
@Order(1)
4440
@Test
41+
@Order(1)
42+
@DisplayName("Class is marked as @Controller")
4543
void classIsMarkedAsController() {
4644
var controllerAnnotation = NoteController.class.getAnnotation(Controller.class);
4745

4846
assertNotNull(controllerAnnotation);
4947
}
5048

51-
@Order(2)
5249
@Test
50+
@Order(2)
51+
@DisplayName("Base URL `/notes` is specified in @RequestMapping")
5352
void requestMappingIsSpecified() {
5453
var requestMappingAnnotation = NoteController.class.getAnnotation(RequestMapping.class);
5554
var urlMapping = extractUrlMapping(requestMappingAnnotation);
5655

5756
assertThat(urlMapping).isEqualTo("/notes");
5857
}
59-
60-
@Order(3)
6158
@Test
59+
@Order(3)
60+
@DisplayName("Method that get notes is marked with @GetMapping")
6261
void getMappingIsImplemented() {
6362
var foundMethodWithGetMapping = Arrays.stream(NoteController.class.getDeclaredMethods())
6463
.anyMatch(
@@ -69,8 +68,9 @@ void getMappingIsImplemented() {
6968
assertTrue(foundMethodWithGetMapping);
7069
}
7170

72-
@Order(4)
7371
@Test
72+
@Order(4)
73+
@DisplayName("Get method accepts org.springframework.ui.Model as a parameter")
7474
void getNotesMethodAcceptsModelAsParameter() {
7575
var getNotesMethod = Arrays.stream(NoteController.class.getDeclaredMethods())
7676
.filter(
@@ -84,10 +84,11 @@ void getNotesMethodAcceptsModelAsParameter() {
8484
assertThat(getNotesMethod.getParameterTypes()[0]).isEqualTo(Model.class);
8585
}
8686

87-
@Order(5)
8887
@Test
88+
@Order(5)
8989
@SneakyThrows
90-
void getNotesMethodReturnNotesViewName() {
90+
@DisplayName("Get method returns view name \"notes\"")
91+
void getNotesMethodReturnsNotesViewName() {
9192
var controller = new NoteController(notes);
9293
var getNotesMethod = Arrays.stream(controller.getClass().getDeclaredMethods())
9394
.filter(
@@ -102,9 +103,10 @@ void getNotesMethodReturnNotesViewName() {
102103
assertThat(viewName).isEqualTo("notes");
103104
}
104105

105-
@Order(6)
106106
@Test
107+
@Order(6)
107108
@SneakyThrows
109+
@DisplayName("Get method adds noteList attribute to the model")
108110
void getNotesMethodAddsNoteListToTheModel() {
109111
var noteList = givenNoteList();
110112
var model = new BindingAwareModelMap();
@@ -122,8 +124,9 @@ void getNotesMethodAddsNoteListToTheModel() {
122124
assertThat(model.get("noteList")).isEqualTo(noteList);
123125
}
124126

125-
@Order(7)
126127
@Test
128+
@Order(7)
129+
@DisplayName("GET endpoint is completed ✅")
127130
void getNotes() throws Exception {
128131
var noteList = givenNoteList();
129132

@@ -133,9 +136,10 @@ void getNotes() throws Exception {
133136
.andExpect(model().attributeExists("noteList"))
134137
.andExpect(model().attribute("noteList", noteList));
135138
}
136-
137-
@Order(8)
139+
138140
@Test
141+
@Order(8)
142+
@DisplayName("Method that adds a note is marked with @PostMapping")
139143
void postMappingIsImplemented() {
140144
var foundMethodWithGetMapping = Arrays.stream(NoteController.class.getDeclaredMethods())
141145
.anyMatch(
@@ -146,8 +150,9 @@ void postMappingIsImplemented() {
146150
assertTrue(foundMethodWithGetMapping);
147151
}
148152

149-
@Order(9)
150153
@Test
154+
@Order(9)
155+
@DisplayName("Add method accepts Note as a parameter")
151156
void addNoteMethodAcceptsNewNoteAsParameter() {
152157
var addNoteMethod = Arrays.stream(NoteController.class.getDeclaredMethods())
153158
.filter(
@@ -162,9 +167,10 @@ void addNoteMethodAcceptsNewNoteAsParameter() {
162167

163168
}
164169

165-
@Order(10)
166170
@Test
171+
@Order(10)
167172
@SneakyThrows
173+
@DisplayName("Add method returns \"redirect:/notes\"")
168174
void addNoteMethodReturnsRedirectToNotes() {
169175
var controller = new NoteController(notes);
170176
var addNoteMethod = Arrays.stream(NoteController.class.getDeclaredMethods())
@@ -181,9 +187,10 @@ void addNoteMethodReturnsRedirectToNotes() {
181187
assertThat(response).isEqualTo("redirect:/notes");
182188
}
183189

184-
@Order(11)
185190
@Test
191+
@Order(11)
186192
@SneakyThrows
193+
@DisplayName("Add method uses storage to add a note")
187194
void addNotePassPostedNote() {
188195
var note = new Note("Test", "Hello, World!");
189196
var controller = new NoteController(notes);
@@ -200,10 +207,11 @@ void addNotePassPostedNote() {
200207

201208
verify(notes).add(note);
202209
}
203-
204-
@Order(12)
210+
205211
@Test
212+
@Order(12)
206213
@SneakyThrows
214+
@DisplayName("POST endpoint is completed ✅")
207215
void addNote() {
208216
Note note = new Note("Test", "Hello, World!");
209217

0 commit comments

Comments
 (0)