Skip to content

Commit 10946e8

Browse files
committed
Polish Tests
Issue gh-9331
1 parent 3cb98eb commit 10946e8

File tree

2 files changed

+27
-26
lines changed

2 files changed

+27
-26
lines changed

web/src/test/java/org/springframework/security/web/method/annotation/AuthenticationPrincipalArgumentResolverTests.java

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,11 @@
2222
import java.lang.annotation.RetentionPolicy;
2323
import java.lang.annotation.Target;
2424
import java.lang.reflect.Method;
25-
import java.util.function.Function;
2625

2726
import org.junit.After;
2827
import org.junit.Before;
2928
import org.junit.Test;
3029
import org.springframework.core.MethodParameter;
31-
import org.springframework.expression.AccessException;
3230
import org.springframework.expression.BeanResolver;
3331
import org.springframework.security.authentication.TestingAuthenticationToken;
3432
import org.springframework.security.core.annotation.AuthenticationPrincipal;
@@ -38,24 +36,26 @@
3836
import org.springframework.security.core.userdetails.UserDetails;
3937
import org.springframework.util.ReflectionUtils;
4038

39+
import static org.mockito.ArgumentMatchers.any;
40+
import static org.mockito.ArgumentMatchers.eq;
41+
import static org.mockito.BDDMockito.mock;
42+
import static org.mockito.BDDMockito.verify;
43+
import static org.mockito.BDDMockito.when;
44+
4145
/**
4246
* @author Rob Winch
4347
*
4448
*/
4549
public class AuthenticationPrincipalArgumentResolverTests {
4650

47-
private final BeanResolver beanResolver = ((context, beanName) -> {
48-
if (!"test".equals(beanName)) {
49-
throw new AccessException("Could not resolve bean reference against BeanFactory");
50-
}
51-
return (Function<CustomUserPrincipal, String>) (principal) -> principal.property;
52-
});
51+
private BeanResolver beanResolver;
5352

5453
private Object expectedPrincipal;
5554
private AuthenticationPrincipalArgumentResolver resolver;
5655

5756
@Before
5857
public void setup() {
58+
beanResolver = mock(BeanResolver.class);
5959
resolver = new AuthenticationPrincipalArgumentResolver();
6060
resolver.setBeanResolver(this.beanResolver);
6161
}
@@ -144,8 +144,11 @@ public void resolveArgumentSpel() throws Exception {
144144
public void resolveArgumentSpelBean() throws Exception {
145145
CustomUserPrincipal principal = new CustomUserPrincipal();
146146
setAuthenticationPrincipal(principal);
147+
when(this.beanResolver.resolve(any(), eq("test"))).thenReturn(principal.property);
147148
this.expectedPrincipal = principal.property;
148-
assertThat(this.resolver.resolveArgument(showUserSpelBean(), null, null, null)).isEqualTo(this.expectedPrincipal);
149+
assertThat(this.resolver.resolveArgument(showUserSpelBean(), null, null, null))
150+
.isEqualTo(this.expectedPrincipal);
151+
verify(this.beanResolver).resolve(any(), eq("test"));
149152
}
150153

151154
@Test
@@ -279,8 +282,7 @@ public void showUserSpel(
279282
@AuthenticationPrincipal(expression = "property") String user) {
280283
}
281284

282-
public void showUserSpelBean(@AuthenticationPrincipal(
283-
expression = "@test.apply(#this)") String user) {
285+
public void showUserSpelBean(@AuthenticationPrincipal(expression = "@test") String user) {
284286
}
285287

286288
public void showUserSpelCopy(

web/src/test/java/org/springframework/security/web/method/annotation/CurrentSecurityContextArgumentResolverTests.java

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,12 @@
2020
import java.lang.annotation.RetentionPolicy;
2121
import java.lang.annotation.Target;
2222
import java.lang.reflect.Method;
23-
import java.util.function.Function;
2423

2524
import org.junit.After;
2625
import org.junit.Before;
2726
import org.junit.Test;
2827

2928
import org.springframework.core.MethodParameter;
30-
import org.springframework.expression.AccessException;
3129
import org.springframework.expression.BeanResolver;
3230
import org.springframework.expression.spel.SpelEvaluationException;
3331
import org.springframework.security.authentication.TestingAuthenticationToken;
@@ -41,6 +39,11 @@
4139

4240
import static org.assertj.core.api.Assertions.assertThat;
4341
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
42+
import static org.mockito.ArgumentMatchers.any;
43+
import static org.mockito.ArgumentMatchers.eq;
44+
import static org.mockito.BDDMockito.mock;
45+
import static org.mockito.BDDMockito.verify;
46+
import static org.mockito.BDDMockito.when;
4447

4548
/**
4649
* @author Dan Zheng
@@ -49,17 +52,13 @@
4952
*/
5053
public class CurrentSecurityContextArgumentResolverTests {
5154

52-
private final BeanResolver beanResolver = ((context, beanName) -> {
53-
if (!"test".equals(beanName)) {
54-
throw new AccessException("Could not resolve bean reference against BeanFactory");
55-
}
56-
return (Function<SecurityContext, Authentication>) SecurityContext::getAuthentication;
57-
});
55+
private BeanResolver beanResolver;
5856

5957
private CurrentSecurityContextArgumentResolver resolver;
6058

6159
@Before
6260
public void setup() {
61+
this.beanResolver = mock(BeanResolver.class);
6362
this.resolver = new CurrentSecurityContextArgumentResolver();
6463
this.resolver.setBeanResolver(this.beanResolver);
6564
}
@@ -117,12 +116,12 @@ public void resolveArgumentWithAuthentication() {
117116
}
118117

119118
@Test
120-
public void resolveArgumentWithAuthenticationWithBean() {
119+
public void resolveArgumentWithAuthenticationWithBean() throws Exception {
121120
String principal = "john";
122-
setAuthenticationPrincipal(principal);
123-
Authentication auth1 = (Authentication) this.resolver
124-
.resolveArgument(showSecurityContextAuthenticationWithBean(), null, null, null);
125-
assertThat(auth1.getPrincipal()).isEqualTo(principal);
121+
when(this.beanResolver.resolve(any(), eq("test"))).thenReturn(principal);
122+
assertThat(this.resolver.resolveArgument(showSecurityContextAuthenticationWithBean(), null, null, null))
123+
.isEqualTo(principal);
124+
verify(this.beanResolver).resolve(any(), eq("test"));
126125
}
127126

128127
@Test
@@ -239,7 +238,7 @@ private MethodParameter showSecurityContextAuthenticationAnnotation() {
239238
}
240239

241240
public MethodParameter showSecurityContextAuthenticationWithBean() {
242-
return getMethodParameter("showSecurityContextAuthenticationWithBean", Authentication.class);
241+
return getMethodParameter("showSecurityContextAuthenticationWithBean", String.class);
243242
}
244243

245244
private MethodParameter showSecurityContextAuthenticationWithOptionalPrincipal() {
@@ -305,7 +304,7 @@ public void showSecurityContextAuthenticationAnnotation(@CurrentSecurityContext(
305304
}
306305

307306
public void showSecurityContextAuthenticationWithBean(
308-
@CurrentSecurityContext(expression = "@test.apply(#this)") Authentication authentication) {
307+
@CurrentSecurityContext(expression = "@test") String name) {
309308
}
310309

311310
public void showSecurityContextAuthenticationWithOptionalPrincipal(@CurrentSecurityContext(expression = "authentication?.principal") Object principal) {

0 commit comments

Comments
 (0)