Polish CoreSecurityHintsTests
Use ParameterizedTest to simplify repetitive test setup Issue gh-11431
This commit is contained in:
parent
095f23d81f
commit
a87f7aa2e1
|
@ -16,8 +16,12 @@
|
||||||
|
|
||||||
package org.springframework.security.aot.hint;
|
package org.springframework.security.aot.hint;
|
||||||
|
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.params.ParameterizedTest;
|
||||||
|
import org.junit.jupiter.params.provider.MethodSource;
|
||||||
|
|
||||||
import org.springframework.aot.hint.MemberCategory;
|
import org.springframework.aot.hint.MemberCategory;
|
||||||
import org.springframework.aot.hint.RuntimeHints;
|
import org.springframework.aot.hint.RuntimeHints;
|
||||||
|
@ -33,6 +37,7 @@ import org.springframework.security.authentication.CredentialsExpiredException;
|
||||||
import org.springframework.security.authentication.DisabledException;
|
import org.springframework.security.authentication.DisabledException;
|
||||||
import org.springframework.security.authentication.LockedException;
|
import org.springframework.security.authentication.LockedException;
|
||||||
import org.springframework.security.authentication.ProviderNotFoundException;
|
import org.springframework.security.authentication.ProviderNotFoundException;
|
||||||
|
import org.springframework.security.authentication.event.AbstractAuthenticationEvent;
|
||||||
import org.springframework.security.authentication.event.AuthenticationFailureBadCredentialsEvent;
|
import org.springframework.security.authentication.event.AuthenticationFailureBadCredentialsEvent;
|
||||||
import org.springframework.security.authentication.event.AuthenticationFailureCredentialsExpiredEvent;
|
import org.springframework.security.authentication.event.AuthenticationFailureCredentialsExpiredEvent;
|
||||||
import org.springframework.security.authentication.event.AuthenticationFailureDisabledEvent;
|
import org.springframework.security.authentication.event.AuthenticationFailureDisabledEvent;
|
||||||
|
@ -41,6 +46,7 @@ import org.springframework.security.authentication.event.AuthenticationFailureLo
|
||||||
import org.springframework.security.authentication.event.AuthenticationFailureProviderNotFoundEvent;
|
import org.springframework.security.authentication.event.AuthenticationFailureProviderNotFoundEvent;
|
||||||
import org.springframework.security.authentication.event.AuthenticationFailureProxyUntrustedEvent;
|
import org.springframework.security.authentication.event.AuthenticationFailureProxyUntrustedEvent;
|
||||||
import org.springframework.security.authentication.event.AuthenticationFailureServiceExceptionEvent;
|
import org.springframework.security.authentication.event.AuthenticationFailureServiceExceptionEvent;
|
||||||
|
import org.springframework.security.core.AuthenticationException;
|
||||||
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
||||||
import org.springframework.util.ClassUtils;
|
import org.springframework.util.ClassUtils;
|
||||||
|
|
||||||
|
@ -81,89 +87,32 @@ class CoreSecurityHintsTests {
|
||||||
.accepts(this.hints);
|
.accepts(this.hints);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@ParameterizedTest
|
||||||
void authenticationFailureBadCredentialsEventHasHints() {
|
@MethodSource("getAuthenticationEvents")
|
||||||
assertExceptionEvent(AuthenticationFailureBadCredentialsEvent.class);
|
void exceptionEventsHasHints(Class<? extends AbstractAuthenticationEvent> event) {
|
||||||
}
|
assertThat(RuntimeHintsPredicates.reflection().onType(event)
|
||||||
|
|
||||||
@Test
|
|
||||||
void authenticationFailureCredentialsExpiredEventHasHints() {
|
|
||||||
assertExceptionEvent(AuthenticationFailureCredentialsExpiredEvent.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void authenticationFailureDisabledEventHasHints() {
|
|
||||||
assertExceptionEvent(AuthenticationFailureDisabledEvent.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void authenticationFailureExpiredEventHasHints() {
|
|
||||||
assertExceptionEvent(AuthenticationFailureExpiredEvent.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void authenticationFailureLockedEventHasHints() {
|
|
||||||
assertExceptionEvent(AuthenticationFailureLockedEvent.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void authenticationFailureProviderNotFoundEventHasHints() {
|
|
||||||
assertExceptionEvent(AuthenticationFailureProviderNotFoundEvent.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void authenticationFailureProxyUntrustedEventHasHints() {
|
|
||||||
assertExceptionEvent(AuthenticationFailureProxyUntrustedEvent.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void authenticationFailureServiceExceptionEventHasHints() {
|
|
||||||
assertExceptionEvent(AuthenticationFailureServiceExceptionEvent.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void authenticationServiceExceptionHasHints() {
|
|
||||||
assertExceptionEvent(AuthenticationServiceException.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void accountExpiredExceptionHasHints() {
|
|
||||||
assertExceptionEvent(AccountExpiredException.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void badCredentialsExceptionHasHints() {
|
|
||||||
assertExceptionEvent(BadCredentialsException.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void credentialsExpiredExceptionHasHints() {
|
|
||||||
assertExceptionEvent(CredentialsExpiredException.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void disabledExceptionHasHints() {
|
|
||||||
assertExceptionEvent(DisabledException.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void lockedExceptionHasHints() {
|
|
||||||
assertExceptionEvent(LockedException.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void usernameNotFoundExceptionHasHints() {
|
|
||||||
assertExceptionEvent(UsernameNotFoundException.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void providerNotFoundExceptionHasHints() {
|
|
||||||
assertExceptionEvent(ProviderNotFoundException.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void assertExceptionEvent(Class<?> clazz) {
|
|
||||||
assertThat(RuntimeHintsPredicates.reflection().onType(clazz)
|
|
||||||
.withMemberCategory(MemberCategory.INVOKE_DECLARED_CONSTRUCTORS)).accepts(this.hints);
|
.withMemberCategory(MemberCategory.INVOKE_DECLARED_CONSTRUCTORS)).accepts(this.hints);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static Stream<Class<? extends AbstractAuthenticationEvent>> getAuthenticationEvents() {
|
||||||
|
return Stream.of(AuthenticationFailureBadCredentialsEvent.class,
|
||||||
|
AuthenticationFailureCredentialsExpiredEvent.class, AuthenticationFailureDisabledEvent.class,
|
||||||
|
AuthenticationFailureExpiredEvent.class, AuthenticationFailureLockedEvent.class,
|
||||||
|
AuthenticationFailureProviderNotFoundEvent.class, AuthenticationFailureProxyUntrustedEvent.class,
|
||||||
|
AuthenticationFailureServiceExceptionEvent.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ParameterizedTest
|
||||||
|
@MethodSource("getAuthenticationExceptions")
|
||||||
|
void exceptionHasHints(Class<? extends AuthenticationException> exception) {
|
||||||
|
assertThat(RuntimeHintsPredicates.reflection().onType(exception)
|
||||||
|
.withMemberCategory(MemberCategory.INVOKE_DECLARED_CONSTRUCTORS)).accepts(this.hints);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Stream<Class<? extends AuthenticationException>> getAuthenticationExceptions() {
|
||||||
|
return Stream.of(AuthenticationServiceException.class, AccountExpiredException.class,
|
||||||
|
BadCredentialsException.class, CredentialsExpiredException.class, DisabledException.class,
|
||||||
|
LockedException.class, UsernameNotFoundException.class, ProviderNotFoundException.class);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue