浏览代码

Fix mockito usage

Issue gh-13810
Steve Riesenberg 1 年之前
父节点
当前提交
d48b8697bd

+ 2 - 2
config/src/test/resources/org/springframework/security/config/http/CsrfConfigTests-mock-csrf-token-repository.xml

@@ -21,8 +21,8 @@
 		http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd">
 		http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd">
 
 
 	<b:bean id="csrfTokenRepository" class="org.mockito.Mockito" factory-method="mock">
 	<b:bean id="csrfTokenRepository" class="org.mockito.Mockito" factory-method="mock">
-		<b:constructor-arg value="org.springframework.security.web.csrf.CsrfTokenRepository"/>
-		<b:constructor-arg value="csrfTokenRepository"/>
+		<b:constructor-arg value="org.springframework.security.web.csrf.CsrfTokenRepository" type="java.lang.Class"/>
+		<b:constructor-arg value="csrfTokenRepository" type="java.lang.String"/>
 	</b:bean>
 	</b:bean>
 
 
 </b:beans>
 </b:beans>

+ 2 - 2
config/src/test/resources/org/springframework/security/config/http/CsrfConfigTests-mock-request-matcher.xml

@@ -21,7 +21,7 @@
 		http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd">
 		http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd">
 
 
 	<b:bean id="requestMatcher" class="org.mockito.Mockito" factory-method="mock">
 	<b:bean id="requestMatcher" class="org.mockito.Mockito" factory-method="mock">
-		<b:constructor-arg value="org.springframework.security.web.util.matcher.RequestMatcher"/>
-		<b:constructor-arg value="requestMatcher"/>
+		<b:constructor-arg value="org.springframework.security.web.util.matcher.RequestMatcher" type="java.lang.Class"/>
+		<b:constructor-arg value="requestMatcher" type="java.lang.String"/>
 	</b:bean>
 	</b:bean>
 </b:beans>
 </b:beans>

+ 14 - 12
web/src/test/java/org/springframework/security/web/context/AbstractSecurityWebApplicationInitializerTests.java

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright 2002-2022 the original author or authors.
+ * Copyright 2002-2023 the original author or authors.
  *
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * you may not use this file except in compliance with the License.
@@ -19,7 +19,6 @@ package org.springframework.security.web.context;
 import java.util.Collections;
 import java.util.Collections;
 import java.util.EnumSet;
 import java.util.EnumSet;
 import java.util.EventListener;
 import java.util.EventListener;
-import java.util.HashSet;
 import java.util.Set;
 import java.util.Set;
 
 
 import jakarta.servlet.DispatcherType;
 import jakarta.servlet.DispatcherType;
@@ -316,14 +315,15 @@ public class AbstractSecurityWebApplicationInitializerTests {
 		ServletContext context = mock(ServletContext.class);
 		ServletContext context = mock(ServletContext.class);
 		FilterRegistration.Dynamic registration = mock(FilterRegistration.Dynamic.class);
 		FilterRegistration.Dynamic registration = mock(FilterRegistration.Dynamic.class);
 		ArgumentCaptor<DelegatingFilterProxy> proxyCaptor = ArgumentCaptor.forClass(DelegatingFilterProxy.class);
 		ArgumentCaptor<DelegatingFilterProxy> proxyCaptor = ArgumentCaptor.forClass(DelegatingFilterProxy.class);
-		given(context.addFilter(eq("springSecurityFilterChain"), proxyCaptor.capture())).willReturn(registration);
-		ArgumentCaptor<Set<SessionTrackingMode>> modesCaptor = ArgumentCaptor
-				.forClass(new HashSet<SessionTrackingMode>() {
-				}.getClass());
-		willDoNothing().given(context).setSessionTrackingModes(modesCaptor.capture());
+		given(context.addFilter(eq("springSecurityFilterChain"), any(DelegatingFilterProxy.class)))
+				.willReturn(registration);
+		@SuppressWarnings("unchecked")
+		ArgumentCaptor<Set<SessionTrackingMode>> modesCaptor = ArgumentCaptor.forClass(Set.class);
 		new AbstractSecurityWebApplicationInitializer() {
 		new AbstractSecurityWebApplicationInitializer() {
 		}.onStartup(context);
 		}.onStartup(context);
+		verify(context).addFilter(eq("springSecurityFilterChain"), proxyCaptor.capture());
 		assertProxyDefaults(proxyCaptor.getValue());
 		assertProxyDefaults(proxyCaptor.getValue());
+		verify(context).setSessionTrackingModes(modesCaptor.capture());
 		Set<SessionTrackingMode> modes = modesCaptor.getValue();
 		Set<SessionTrackingMode> modes = modesCaptor.getValue();
 		assertThat(modes).hasSize(1);
 		assertThat(modes).hasSize(1);
 		assertThat(modes).containsExactly(SessionTrackingMode.COOKIE);
 		assertThat(modes).containsExactly(SessionTrackingMode.COOKIE);
@@ -334,18 +334,20 @@ public class AbstractSecurityWebApplicationInitializerTests {
 		ServletContext context = mock(ServletContext.class);
 		ServletContext context = mock(ServletContext.class);
 		FilterRegistration.Dynamic registration = mock(FilterRegistration.Dynamic.class);
 		FilterRegistration.Dynamic registration = mock(FilterRegistration.Dynamic.class);
 		ArgumentCaptor<DelegatingFilterProxy> proxyCaptor = ArgumentCaptor.forClass(DelegatingFilterProxy.class);
 		ArgumentCaptor<DelegatingFilterProxy> proxyCaptor = ArgumentCaptor.forClass(DelegatingFilterProxy.class);
-		given(context.addFilter(eq("springSecurityFilterChain"), proxyCaptor.capture())).willReturn(registration);
-		ArgumentCaptor<Set<SessionTrackingMode>> modesCaptor = ArgumentCaptor
-				.forClass(new HashSet<SessionTrackingMode>() {
-				}.getClass());
-		willDoNothing().given(context).setSessionTrackingModes(modesCaptor.capture());
+		given(context.addFilter(eq("springSecurityFilterChain"), any(DelegatingFilterProxy.class)))
+				.willReturn(registration);
+		@SuppressWarnings("unchecked")
+		ArgumentCaptor<Set<SessionTrackingMode>> modesCaptor = ArgumentCaptor.forClass(Set.class);
+		willDoNothing().given(context).setSessionTrackingModes(any());
 		new AbstractSecurityWebApplicationInitializer() {
 		new AbstractSecurityWebApplicationInitializer() {
 			@Override
 			@Override
 			public Set<SessionTrackingMode> getSessionTrackingModes() {
 			public Set<SessionTrackingMode> getSessionTrackingModes() {
 				return Collections.singleton(SessionTrackingMode.SSL);
 				return Collections.singleton(SessionTrackingMode.SSL);
 			}
 			}
 		}.onStartup(context);
 		}.onStartup(context);
+		verify(context).addFilter(eq("springSecurityFilterChain"), proxyCaptor.capture());
 		assertProxyDefaults(proxyCaptor.getValue());
 		assertProxyDefaults(proxyCaptor.getValue());
+		verify(context).setSessionTrackingModes(modesCaptor.capture());
 		Set<SessionTrackingMode> modes = modesCaptor.getValue();
 		Set<SessionTrackingMode> modes = modesCaptor.getValue();
 		assertThat(modes).hasSize(1);
 		assertThat(modes).hasSize(1);
 		assertThat(modes).containsExactly(SessionTrackingMode.SSL);
 		assertThat(modes).containsExactly(SessionTrackingMode.SSL);