35
35
import org .springframework .test .context .bean .override .OverrideMetadata ;
36
36
import org .springframework .util .Assert ;
37
37
import org .springframework .util .ClassUtils ;
38
- import org .springframework .util .ObjectUtils ;
39
38
import org .springframework .util .StringUtils ;
40
39
41
40
/**
42
41
* {@link OverrideMetadata} implementation for Mockito {@code mock} support.
43
42
*
44
43
* @author Phillip Webb
45
44
* @author Stephane Nicoll
45
+ * @author Sam Brannen
46
46
* @since 6.2
47
47
*/
48
48
class MockitoBeanOverrideMetadata extends MockitoOverrideMetadata {
49
49
50
50
private final Set <Class <?>> extraInterfaces ;
51
51
52
- private final Answers answer ;
52
+ private final Answers answers ;
53
53
54
54
private final boolean serializable ;
55
55
@@ -59,21 +59,22 @@ class MockitoBeanOverrideMetadata extends MockitoOverrideMetadata {
59
59
annotation .reset (), annotation .extraInterfaces (), annotation .answers (), annotation .serializable ());
60
60
}
61
61
62
- MockitoBeanOverrideMetadata (Field field , ResolvableType typeToMock , @ Nullable String beanName , MockReset reset ,
63
- Class <?>[] extraInterfaces , @ Nullable Answers answer , boolean serializable ) {
62
+ private MockitoBeanOverrideMetadata (Field field , ResolvableType typeToMock , @ Nullable String beanName , MockReset reset ,
63
+ Class <?>[] extraInterfaces , @ Nullable Answers answers , boolean serializable ) {
64
64
65
65
super (field , typeToMock , beanName , BeanOverrideStrategy .REPLACE_OR_CREATE_DEFINITION , reset , false );
66
66
Assert .notNull (typeToMock , "'typeToMock' must not be null" );
67
67
this .extraInterfaces = asClassSet (extraInterfaces );
68
- this .answer = (answer != null ) ? answer : Answers .RETURNS_DEFAULTS ;
68
+ this .answers = (answers != null ? answers : Answers .RETURNS_DEFAULTS ) ;
69
69
this .serializable = serializable ;
70
70
}
71
71
72
- private static Set < Class <?>> asClassSet ( @ Nullable Class <?>[] classes ) {
73
- Set <Class <?>> classSet = new LinkedHashSet <>();
74
- if (classes != null ) {
75
- classSet . addAll ( Arrays . asList ( classes ) );
72
+
73
+ private static Set <Class <?>> asClassSet ( Class <?>[] classes ) {
74
+ if (classes . length == 0 ) {
75
+ return Collections . emptySet ( );
76
76
}
77
+ Set <Class <?>> classSet = new LinkedHashSet <>(Arrays .asList (classes ));
77
78
return Collections .unmodifiableSet (classSet );
78
79
}
79
80
@@ -90,12 +91,12 @@ Set<Class<?>> getExtraInterfaces() {
90
91
* Return the {@link Answers}.
91
92
* @return the answers mode
92
93
*/
93
- Answers getAnswer () {
94
- return this .answer ;
94
+ Answers getAnswers () {
95
+ return this .answers ;
95
96
}
96
97
97
98
/**
98
- * Return if the mock is serializable.
99
+ * Determine if the mock is serializable.
99
100
* @return {@code true} if the mock is serializable
100
101
*/
101
102
boolean isSerializable () {
@@ -108,15 +109,15 @@ protected Object createOverride(String beanName, @Nullable BeanDefinition existi
108
109
}
109
110
110
111
@ SuppressWarnings ("unchecked" )
111
- <T > T createMock (String name ) {
112
+ private <T > T createMock (String name ) {
112
113
MockSettings settings = MockReset .withSettings (getReset ());
113
114
if (StringUtils .hasLength (name )) {
114
115
settings .name (name );
115
116
}
116
117
if (!this .extraInterfaces .isEmpty ()) {
117
118
settings .extraInterfaces (ClassUtils .toClassArray (this .extraInterfaces ));
118
119
}
119
- settings .defaultAnswer (this .answer );
120
+ settings .defaultAnswer (this .answers );
120
121
if (this .serializable ) {
121
122
settings .serializable ();
122
123
}
@@ -132,27 +133,26 @@ public boolean equals(@Nullable Object other) {
132
133
if (other == null || other .getClass () != getClass ()) {
133
134
return false ;
134
135
}
135
- MockitoBeanOverrideMetadata that = (MockitoBeanOverrideMetadata ) other ;
136
- boolean result = super .equals (that );
137
- result = result && ObjectUtils .nullSafeEquals (this .extraInterfaces , that .extraInterfaces );
138
- result = result && ObjectUtils .nullSafeEquals (this .answer , that .answer );
139
- result = result && this .serializable == that .serializable ;
140
- return result ;
136
+ return (other instanceof MockitoBeanOverrideMetadata that && super .equals (that ) &&
137
+ (this .serializable == that .serializable ) && (this .answers == that .answers ) &&
138
+ Objects .equals (this .extraInterfaces , that .extraInterfaces ));
141
139
}
142
140
143
141
@ Override
144
142
public int hashCode () {
145
- return Objects .hash (this .extraInterfaces , this .answer , this .serializable ) + super . hashCode ( );
143
+ return super . hashCode () + Objects .hash (this .extraInterfaces , this .answers , this .serializable );
146
144
}
147
145
148
146
@ Override
149
147
public String toString () {
150
148
return new ToStringCreator (this )
149
+ .append ("field" , getField ())
151
150
.append ("beanType" , getBeanType ())
152
151
.append ("beanName" , getBeanName ())
152
+ .append ("strategy" , getStrategy ())
153
153
.append ("reset" , getReset ())
154
154
.append ("extraInterfaces" , getExtraInterfaces ())
155
- .append ("answer " , getAnswer ())
155
+ .append ("answers " , getAnswers ())
156
156
.append ("serializable" , isSerializable ())
157
157
.toString ();
158
158
}
0 commit comments