24
24
import org .junit .runner .RunWith ;
25
25
import org .mockito .Mock ;
26
26
import org .mockito .junit .MockitoJUnitRunner ;
27
+ import org .springframework .aop .SpringProxy ;
27
28
import org .springframework .aop .framework .AdvisedSupport ;
28
29
29
30
import static org .hamcrest .core .Is .is ;
@@ -48,18 +49,69 @@ public void setUp() {
48
49
}
49
50
50
51
@ Test
51
- public void testInterceptNormalObject () throws Throwable {
52
- doReturn (Object .class ).when (advisedSupport ).getTargetClass ();
52
+ public void testInterceptClassImplementsNoInterfaces () throws Throwable {
53
+ // doReturn(Object.class).when(advisedSupport).getTargetClass();
54
+ // doReturn(Object.class.getInterfaces()).when(advisedSupport).getProxiedInterfaces();
55
+ assertThat (true , is (interceptor .afterMethod (enhancedInstance , null , new Object [] {advisedSupport }, new Class [] {Object .class }, true )));
56
+ }
57
+
58
+ @ Test
59
+ public void testInterceptClassImplementsUserSuppliedInterface () throws Throwable {
60
+ doReturn (MockClassImplementsUserSuppliedInterface .class ).when (advisedSupport ).getTargetClass ();
61
+ doReturn (MockClassImplementsUserSuppliedInterface .class .getInterfaces ()).when (advisedSupport ).getProxiedInterfaces ();
53
62
assertThat (false , is (interceptor .afterMethod (enhancedInstance , null , new Object [] {advisedSupport }, new Class [] {Object .class }, false )));
54
63
}
55
64
56
65
@ Test
57
- public void testInterceptEnhanceInstanceObject () throws Throwable {
58
- doReturn (MockClass .class ).when (advisedSupport ).getTargetClass ();
66
+ public void testInterceptClassImplementsSpringProxy () throws Throwable {
67
+ // doReturn(MockClassImplementsSpringProxy.class).when(advisedSupport).getTargetClass();
68
+ // doReturn(MockClassImplementsSpringProxy.class.getInterfaces()).when(advisedSupport).getProxiedInterfaces();
69
+ assertThat (true , is (interceptor .afterMethod (enhancedInstance , null , new Object [] {advisedSupport }, new Class [] {Object .class }, true )));
70
+ }
71
+
72
+ @ Test
73
+ public void testInterceptClassImplementsEnhancedInstance () throws Throwable {
74
+ doReturn (MockClassImplementsEnhancedInstance .class ).when (advisedSupport ).getTargetClass ();
75
+ doReturn (MockClassImplementsEnhancedInstance .class .getInterfaces ()).when (advisedSupport ).getProxiedInterfaces ();
59
76
assertThat (true , is (interceptor .afterMethod (enhancedInstance , null , new Object [] {advisedSupport }, new Class [] {Object .class }, false )));
60
77
}
61
78
62
- private class MockClass implements EnhancedInstance {
79
+ @ Test
80
+ public void testClassImplementsEnhancedInstanceAndUserSuppliedInterface () throws Throwable {
81
+ doReturn (MockClassImplementsSpringProxyAndUserSuppliedInterface .class ).when (advisedSupport ).getTargetClass ();
82
+ doReturn (MockClassImplementsSpringProxyAndUserSuppliedInterface .class .getInterfaces ()).when (advisedSupport ).getProxiedInterfaces ();
83
+ assertThat (false , is (interceptor .afterMethod (enhancedInstance , null , new Object [] {advisedSupport }, new Class [] {Object .class }, false )));
84
+ }
85
+
86
+ @ Test
87
+ public void testInterceptClassImplementsSpringProxyAndEnhancedInstance () throws Throwable {
88
+ doReturn (MockClassImplementsSpringProxyAndEnhancedInstance .class ).when (advisedSupport ).getTargetClass ();
89
+ doReturn (MockClassImplementsSpringProxyAndEnhancedInstance .class .getInterfaces ()).when (advisedSupport ).getProxiedInterfaces ();
90
+ assertThat (true , is (interceptor .afterMethod (enhancedInstance , null , new Object [] {advisedSupport }, new Class [] {Object .class }, false )));
91
+ }
92
+
93
+ @ Test
94
+ public void testInterceptClassImplementsSpringProxyAndUserSuppliedInterface () throws Throwable {
95
+ doReturn (MockClassImplementsSpringProxyAndUserSuppliedInterface .class ).when (advisedSupport ).getTargetClass ();
96
+ doReturn (MockClassImplementsSpringProxyAndUserSuppliedInterface .class .getInterfaces ()).when (advisedSupport ).getProxiedInterfaces ();
97
+ assertThat (false , is (interceptor .afterMethod (enhancedInstance , null , new Object [] {advisedSupport }, new Class [] {Object .class }, false )));
98
+ }
99
+
100
+ @ Test
101
+ public void testInterceptClassImplementsEnhancedInstanceAndUserSuppliedInterface () throws Throwable {
102
+ doReturn (MockClassImplementsEnhancedInstanceAndUserSuppliedInterface .class ).when (advisedSupport ).getTargetClass ();
103
+ doReturn (MockClassImplementsEnhancedInstanceAndUserSuppliedInterface .class .getInterfaces ()).when (advisedSupport ).getProxiedInterfaces ();
104
+ assertThat (false , is (interceptor .afterMethod (enhancedInstance , null , new Object [] {advisedSupport }, new Class [] {Object .class }, false )));
105
+ }
106
+
107
+ @ Test
108
+ public void testInterceptClassImplementsSpringProxyAndEnhancedInstanceAndUserSuppliedInterface () throws Throwable {
109
+ doReturn (MockClassImplementsSpringProxyAndEnhancedInstanceAndUserSuppliedInterface .class ).when (advisedSupport ).getTargetClass ();
110
+ doReturn (MockClassImplementsSpringProxyAndEnhancedInstanceAndUserSuppliedInterface .class .getInterfaces ()).when (advisedSupport ).getProxiedInterfaces ();
111
+ assertThat (false , is (interceptor .afterMethod (enhancedInstance , null , new Object [] {advisedSupport }, new Class [] {Object .class }, false )));
112
+ }
113
+
114
+ private class MockClassImplementsEnhancedInstance implements EnhancedInstance {
63
115
64
116
@ Override
65
117
public Object getSkyWalkingDynamicField () {
@@ -72,4 +124,81 @@ public void setSkyWalkingDynamicField(Object value) {
72
124
}
73
125
}
74
126
127
+ private class MockClassImplementsUserSuppliedInterface implements UserSuppliedInterface {
128
+
129
+ @ Override
130
+ public void methodOfUserSuppliedInterface () {
131
+
132
+ }
133
+
134
+ }
135
+
136
+ private class MockClassImplementsSpringProxy implements SpringProxy {
137
+
138
+ }
139
+
140
+ private class MockClassImplementsSpringProxyAndEnhancedInstance implements EnhancedInstance , SpringProxy {
141
+
142
+ @ Override
143
+ public Object getSkyWalkingDynamicField () {
144
+ return null ;
145
+ }
146
+
147
+ @ Override
148
+ public void setSkyWalkingDynamicField (Object value ) {
149
+
150
+ }
151
+
152
+ }
153
+
154
+ private class MockClassImplementsEnhancedInstanceAndUserSuppliedInterface implements EnhancedInstance , UserSuppliedInterface {
155
+
156
+ @ Override
157
+ public Object getSkyWalkingDynamicField () {
158
+ return null ;
159
+ }
160
+
161
+ @ Override
162
+ public void setSkyWalkingDynamicField (Object value ) {
163
+
164
+ }
165
+
166
+ @ Override
167
+ public void methodOfUserSuppliedInterface () {
168
+ }
169
+
170
+ }
171
+
172
+ private class MockClassImplementsSpringProxyAndUserSuppliedInterface implements SpringProxy , UserSuppliedInterface {
173
+
174
+ @ Override
175
+ public void methodOfUserSuppliedInterface () {
176
+ }
177
+
178
+ }
179
+
180
+ private class MockClassImplementsSpringProxyAndEnhancedInstanceAndUserSuppliedInterface implements EnhancedInstance , SpringProxy , UserSuppliedInterface {
181
+
182
+ @ Override
183
+ public Object getSkyWalkingDynamicField () {
184
+ return null ;
185
+ }
186
+
187
+ @ Override
188
+ public void setSkyWalkingDynamicField (Object value ) {
189
+
190
+ }
191
+
192
+ @ Override
193
+ public void methodOfUserSuppliedInterface () {
194
+ }
195
+
196
+ }
197
+
198
+ interface UserSuppliedInterface {
199
+
200
+ void methodOfUserSuppliedInterface ();
201
+
202
+ }
203
+
75
204
}
0 commit comments