Skip to content

Commit 1f64a99

Browse files
committed
Refinements
1 parent 01b7e20 commit 1f64a99

File tree

5 files changed

+54
-46
lines changed

5 files changed

+54
-46
lines changed
Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
11
package com.baeldung.gettersetter;
22

3-
public class ExampleService {
3+
import java.util.function.Consumer;
4+
import java.util.function.Supplier;
45

5-
public Long getId(IdAndName idAndName) {
6-
return idAndName.getId();
7-
}
6+
public class ExampleService {
87

9-
public String getName(IdAndName idAndName) {
10-
return idAndName.getName();
8+
public <T> T getField(Supplier<T> getter) {
9+
return getter.get();
1110
}
1211

13-
public String getSuperComplicatedField(NonSimpleClass nonSimpleClass) {
14-
return nonSimpleClass.getSuperComplicatedField();
12+
public <T> void setField(Consumer<T> setter, T value) {
13+
setter.accept(value);
1514
}
1615

1716
}

testing-modules/mockito-4/src/main/java/com/baeldung/gettersetter/IdAndName.java

Lines changed: 0 additions & 9 deletions
This file was deleted.

testing-modules/mockito-4/src/main/java/com/baeldung/gettersetter/NonSimpleClass.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.baeldung.gettersetter;
22

3-
public class NonSimpleClass implements IdAndName {
3+
public class NonSimpleClass {
44

55
private Long id;
66
private String name;
@@ -15,7 +15,6 @@ public NonSimpleClass(Long id, String name, String superComplicatedField) {
1515
public NonSimpleClass() {
1616
}
1717

18-
@Override
1918
public Long getId() {
2019
return id;
2120
}
@@ -24,7 +23,6 @@ public void setId(Long id) {
2423
this.id = id;
2524
}
2625

27-
@Override
2826
public String getName() {
2927
return name;
3028
}

testing-modules/mockito-4/src/main/java/com/baeldung/gettersetter/SimpleClass.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.baeldung.gettersetter;
22

3-
public class SimpleClass implements IdAndName {
3+
public class SimpleClass {
44

55
private Long id;
66

@@ -14,7 +14,6 @@ public SimpleClass(Long id, String name) {
1414
public SimpleClass() {
1515
}
1616

17-
@Override
1817
public Long getId() {
1918
return id;
2019
}
@@ -23,7 +22,6 @@ public void setId(Long id) {
2322
this.id = id;
2423
}
2524

26-
@Override
2725
public String getName() {
2826
return name;
2927
}
Lines changed: 45 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,61 @@
11
package com.baeldung.gettersetter;
22

3+
import static org.junit.Assert.assertEquals;
4+
import static org.mockito.ArgumentMatchers.anyLong;
5+
import static org.mockito.ArgumentMatchers.anyString;
6+
import static org.mockito.ArgumentMatchers.eq;
37
import static org.mockito.Mockito.doAnswer;
48
import static org.mockito.Mockito.doNothing;
9+
import static org.mockito.Mockito.mock;
10+
import static org.mockito.Mockito.verify;
511
import static org.mockito.Mockito.when;
612

713
import org.junit.Test;
8-
import org.junit.jupiter.api.Assertions;
9-
import org.mockito.ArgumentCaptor;
10-
import org.mockito.ArgumentMatchers;
11-
import org.mockito.Mockito;
12-
import org.mockito.invocation.InvocationOnMock;
1314
import org.mockito.stubbing.Answer;
1415

15-
import net.bytebuddy.asm.Advice;
16-
1716
public class ExampleServiceTest {
1817

19-
private final ExampleService testee = new ExampleService();
20-
2118
@Test
22-
public void givenSimpleClass_whenInvokingGetId_thenReturnId() {
23-
SimpleClass simple = new SimpleClass(1L, "Jack");
24-
Assertions.assertEquals(testee.getId(simple), simple.getId());
19+
public void givenMockedSimpleClass_whenInvokingSettersGetters_thenInvokeMockedSettersGetters() {
20+
Long mockId = 12L;
21+
String mockName = "I'm 12";
22+
SimpleClass simpleMock = mock(SimpleClass.class);
23+
when(simpleMock.getId()).thenReturn(mockId);
24+
when(simpleMock.getName()).thenReturn(mockName);
25+
doNothing().when(simpleMock)
26+
.setId(anyLong());
27+
doNothing().when(simpleMock)
28+
.setName(anyString());
29+
ExampleService srv = new ExampleService();
30+
srv.setField(simpleMock::setId, 11L);
31+
srv.setField(simpleMock::setName, "I'm 11");
32+
assertEquals(srv.getField(simpleMock::getId), mockId);
33+
assertEquals(srv.getField(simpleMock::getName), mockName);
34+
verify(simpleMock).getId();
35+
verify(simpleMock).getName();
36+
verify(simpleMock).setId(eq(11L));
37+
verify(simpleMock).setName(eq("I'm 11"));
2538
}
2639

2740
@Test
28-
public void givenSimpleClass_whenInvokingGetName_thenReturnName() {
29-
SimpleClass simple = new SimpleClass(1L, "Alex");
30-
Assertions.assertEquals(testee.getName(simple), simple.getName());
41+
public void givenActualSimpleClass_whenInvokingSettersGetters_thenInvokeActualSettersGetters() {
42+
Long id = 1L;
43+
String name = "I'm 1";
44+
SimpleClass simple = new SimpleClass(id, name);
45+
ExampleService srv = new ExampleService();
46+
srv.setField(simple::setId, 2L);
47+
srv.setField(simple::setName, "I'm 2");
48+
assertEquals(srv.getField(simple::getId), simple.getId());
49+
assertEquals(srv.getField(simple::getName), simple.getName());
3150
}
3251

3352
@Test
3453
public void givenNonSimpleClass_whenInvokingGetName_thenReturnMockedName() {
35-
NonSimpleClass nonSimple = Mockito.mock(NonSimpleClass.class);
54+
NonSimpleClass nonSimple = mock(NonSimpleClass.class);
3655
when(nonSimple.getName()).thenReturn("Meredith");
37-
Assertions.assertEquals(testee.getName(nonSimple), "Meredith");
56+
ExampleService srv = new ExampleService();
57+
assertEquals(srv.getField(nonSimple::getName), "Meredith");
58+
verify(nonSimple).getName();
3859
}
3960

4061
static class Wrapper<T> {
@@ -62,17 +83,18 @@ void set(T value) {
6283
@Test
6384
public void givenNonSimpleClass_whenInvokingGetName_thenReturnTheLatestNameSet() {
6485
Wrapper<String> nameWrapper = new Wrapper<>(String.class);
65-
NonSimpleClass nonSimple = Mockito.mock(NonSimpleClass.class);
86+
NonSimpleClass nonSimple = mock(NonSimpleClass.class);
6687
when(nonSimple.getName()).thenAnswer((Answer<String>) invocationOnMock -> nameWrapper.get());
6788
doAnswer(invocation -> {
6889
nameWrapper.set(invocation.getArgument(0));
6990
return null;
7091
}).when(nonSimple)
71-
.setName(ArgumentMatchers.anyString());
72-
nonSimple.setName("John");
73-
Assertions.assertEquals(testee.getName(nonSimple), "John");
74-
nonSimple.setName("Nick");
75-
Assertions.assertEquals(testee.getName(nonSimple), "Nick");
92+
.setName(anyString());
93+
ExampleService srv = new ExampleService();
94+
srv.setField(nonSimple::setName, "John");
95+
assertEquals(srv.getField(nonSimple::getName), "John");
96+
srv.setField(nonSimple::setName, "Nick");
97+
assertEquals(srv.getField(nonSimple::getName), "Nick");
7698
}
7799

78100
}

0 commit comments

Comments
 (0)