-
Notifications
You must be signed in to change notification settings - Fork 53.6k
Expand file tree
/
Copy pathMockingObjectPropertiesUnitTest.java
More file actions
73 lines (55 loc) · 2.55 KB
/
MockingObjectPropertiesUnitTest.java
File metadata and controls
73 lines (55 loc) · 2.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
package com.baeldung.mockingobjectproperties;
import org.junit.jupiter.api.Test;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.*;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.any;
public class MockingObjectPropertiesUnitTest {
@Test
void givenMockRequest_whenUsedWithoutStubbing_thenReturnsNull() {
HttpServletRequest mockRequest = mock(HttpServletRequest.class);
mockRequest.setAttribute("search", "Mockito Example");
MockingObjectProperties helper = new MockingObjectProperties();
Object value = helper.getSearchAttribute(mockRequest);
assertNull(value, "Expected null because mock does not retain state");
}
@Test
void givenMockRequest_whenStubbedProperly_thenReturnsExpectedValue() {
HttpServletRequest mockRequest = mock(HttpServletRequest.class);
when(mockRequest.getAttribute("search"))
.thenReturn("Mockito Example");
MockingObjectProperties helper = new MockingObjectProperties();
Object value = helper.getSearchAttribute(mockRequest);
assertEquals("Mockito Example", value);
}
@Test
void givenMockRequest_whenSimulatingDynamicAttributes_thenBehavesLikeRealObject() {
HttpServletRequest mockRequest = mock(HttpServletRequest.class);
Map<String, Object> attributes = new HashMap<>();
when(mockRequest.getAttribute(anyString()))
.thenAnswer(invocation -> attributes.get(invocation.getArgument(0)));
doAnswer(invocation -> {
attributes.put(invocation.getArgument(0), invocation.getArgument(1));
return null;
}).when(mockRequest).setAttribute(anyString(), any());
MockingObjectProperties helper = new MockingObjectProperties();
mockRequest.setAttribute("search", "Mockito Example");
Object value = helper.getSearchAttribute(mockRequest);
assertEquals("Mockito Example", value);
}
@Test
void givenMockRequest_whenVerifyingInteractions_thenWorksAsExpected() {
HttpServletRequest mockRequest = mock(HttpServletRequest.class);
mockRequest.setAttribute("search", "Mockito Example");
mockRequest.getAttribute("search");
verify(mockRequest)
.setAttribute("search", "Mockito Example");
verify(mockRequest)
.getAttribute("search");
verify(mockRequest, never())
.getAttribute("nonexistent");
}
}