Polish Tests

Issue gh-9331
This commit is contained in:
Josh Cummings 2021-02-03 09:01:26 -07:00
parent 873b9bdbca
commit 107f38fff9
No known key found for this signature in database
GPG Key ID: 49EF60DD7FF83443
2 changed files with 26 additions and 26 deletions

View File

@ -21,14 +21,12 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target; import java.lang.annotation.Target;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.function.Function;
import org.junit.After; import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.springframework.core.MethodParameter; import org.springframework.core.MethodParameter;
import org.springframework.expression.AccessException;
import org.springframework.expression.BeanResolver; import org.springframework.expression.BeanResolver;
import org.springframework.security.authentication.TestingAuthenticationToken; import org.springframework.security.authentication.TestingAuthenticationToken;
import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.security.core.annotation.AuthenticationPrincipal;
@ -40,6 +38,11 @@ import org.springframework.util.ReflectionUtils;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatExceptionOfType; import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.BDDMockito.mock;
import static org.mockito.BDDMockito.verify;
import static org.mockito.BDDMockito.when;
/** /**
* @author Rob Winch * @author Rob Winch
@ -47,12 +50,7 @@ import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
*/ */
public class AuthenticationPrincipalArgumentResolverTests { public class AuthenticationPrincipalArgumentResolverTests {
private final BeanResolver beanResolver = ((context, beanName) -> { private BeanResolver beanResolver;
if (!"test".equals(beanName)) {
throw new AccessException("Could not resolve bean reference against BeanFactory");
}
return (Function<CustomUserPrincipal, String>) (principal) -> principal.property;
});
private Object expectedPrincipal; private Object expectedPrincipal;
@ -60,6 +58,7 @@ public class AuthenticationPrincipalArgumentResolverTests {
@Before @Before
public void setup() { public void setup() {
this.beanResolver = mock(BeanResolver.class);
this.resolver = new AuthenticationPrincipalArgumentResolver(); this.resolver = new AuthenticationPrincipalArgumentResolver();
this.resolver.setBeanResolver(this.beanResolver); this.resolver.setBeanResolver(this.beanResolver);
} }
@ -142,8 +141,11 @@ public class AuthenticationPrincipalArgumentResolverTests {
public void resolveArgumentSpelBean() throws Exception { public void resolveArgumentSpelBean() throws Exception {
CustomUserPrincipal principal = new CustomUserPrincipal(); CustomUserPrincipal principal = new CustomUserPrincipal();
setAuthenticationPrincipal(principal); setAuthenticationPrincipal(principal);
when(this.beanResolver.resolve(any(), eq("test"))).thenReturn(principal.property);
this.expectedPrincipal = principal.property; this.expectedPrincipal = principal.property;
assertThat(this.resolver.resolveArgument(showUserSpelBean(), null, null, null)).isEqualTo(this.expectedPrincipal); assertThat(this.resolver.resolveArgument(showUserSpelBean(), null, null, null))
.isEqualTo(this.expectedPrincipal);
verify(this.beanResolver).resolve(any(), eq("test"));
} }
@Test @Test
@ -281,8 +283,7 @@ public class AuthenticationPrincipalArgumentResolverTests {
public void showUserSpel(@AuthenticationPrincipal(expression = "property") String user) { public void showUserSpel(@AuthenticationPrincipal(expression = "property") String user) {
} }
public void showUserSpelBean(@AuthenticationPrincipal( public void showUserSpelBean(@AuthenticationPrincipal(expression = "@test") String user) {
expression = "@test.apply(#this)") String user) {
} }
public void showUserSpelCopy(@AuthenticationPrincipal( public void showUserSpelCopy(@AuthenticationPrincipal(

View File

@ -21,14 +21,12 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target; import java.lang.annotation.Target;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.function.Function;
import org.junit.After; import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.springframework.core.MethodParameter; import org.springframework.core.MethodParameter;
import org.springframework.expression.AccessException;
import org.springframework.expression.BeanResolver; import org.springframework.expression.BeanResolver;
import org.springframework.expression.spel.SpelEvaluationException; import org.springframework.expression.spel.SpelEvaluationException;
import org.springframework.security.authentication.TestingAuthenticationToken; import org.springframework.security.authentication.TestingAuthenticationToken;
@ -42,6 +40,11 @@ import org.springframework.util.ReflectionUtils;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatExceptionOfType; import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.BDDMockito.mock;
import static org.mockito.BDDMockito.verify;
import static org.mockito.BDDMockito.when;
/** /**
* @author Dan Zheng * @author Dan Zheng
@ -50,17 +53,13 @@ import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
*/ */
public class CurrentSecurityContextArgumentResolverTests { public class CurrentSecurityContextArgumentResolverTests {
private final BeanResolver beanResolver = ((context, beanName) -> { private BeanResolver beanResolver;
if (!"test".equals(beanName)) {
throw new AccessException("Could not resolve bean reference against BeanFactory");
}
return (Function<SecurityContext, Authentication>) SecurityContext::getAuthentication;
});
private CurrentSecurityContextArgumentResolver resolver; private CurrentSecurityContextArgumentResolver resolver;
@Before @Before
public void setup() { public void setup() {
this.beanResolver = mock(BeanResolver.class);
this.resolver = new CurrentSecurityContextArgumentResolver(); this.resolver = new CurrentSecurityContextArgumentResolver();
this.resolver.setBeanResolver(this.beanResolver); this.resolver.setBeanResolver(this.beanResolver);
} }
@ -118,12 +117,12 @@ public class CurrentSecurityContextArgumentResolverTests {
} }
@Test @Test
public void resolveArgumentWithAuthenticationWithBean() { public void resolveArgumentWithAuthenticationWithBean() throws Exception {
String principal = "john"; String principal = "john";
setAuthenticationPrincipal(principal); when(this.beanResolver.resolve(any(), eq("test"))).thenReturn(principal);
Authentication auth1 = (Authentication) this.resolver assertThat(this.resolver.resolveArgument(showSecurityContextAuthenticationWithBean(), null, null, null))
.resolveArgument(showSecurityContextAuthenticationWithBean(), null, null, null); .isEqualTo(principal);
assertThat(auth1.getPrincipal()).isEqualTo(principal); verify(this.beanResolver).resolve(any(), eq("test"));
} }
@Test @Test
@ -234,7 +233,7 @@ public class CurrentSecurityContextArgumentResolverTests {
} }
public MethodParameter showSecurityContextAuthenticationWithBean() { public MethodParameter showSecurityContextAuthenticationWithBean() {
return getMethodParameter("showSecurityContextAuthenticationWithBean", Authentication.class); return getMethodParameter("showSecurityContextAuthenticationWithBean", String.class);
} }
private MethodParameter showSecurityContextAuthenticationWithOptionalPrincipal() { private MethodParameter showSecurityContextAuthenticationWithOptionalPrincipal() {
@ -319,7 +318,7 @@ public class CurrentSecurityContextArgumentResolverTests {
} }
public void showSecurityContextAuthenticationWithBean( public void showSecurityContextAuthenticationWithBean(
@CurrentSecurityContext(expression = "@test.apply(#this)") Authentication authentication) { @CurrentSecurityContext(expression = "@test") String name) {
} }
public void showSecurityContextAuthenticationWithOptionalPrincipal( public void showSecurityContextAuthenticationWithOptionalPrincipal(