diff --git a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/writer/MessageChannelMetricWriterTests.java b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/writer/MessageChannelMetricWriterTests.java index 0382ccada2..fcddeec1d0 100644 --- a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/writer/MessageChannelMetricWriterTests.java +++ b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/writer/MessageChannelMetricWriterTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2015 the original author or authors. + * Copyright 2012-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -56,7 +56,7 @@ public class MessageChannelMetricWriterTests { @Override public Object answer(InvocationOnMock invocation) throws Throwable { MessageChannelMetricWriterTests.this.handler - .handleMessage(invocation.getArgumentAt(0, Message.class)); + .handleMessage(invocation.getArgument(0)); return true; } diff --git a/spring-boot-cli/src/test/java/org/springframework/boot/cli/command/init/AbstractHttpClientMockTests.java b/spring-boot-cli/src/test/java/org/springframework/boot/cli/command/init/AbstractHttpClientMockTests.java index 9887b4f345..3591028988 100644 --- a/spring-boot-cli/src/test/java/org/springframework/boot/cli/command/init/AbstractHttpClientMockTests.java +++ b/spring-boot-cli/src/test/java/org/springframework/boot/cli/command/init/AbstractHttpClientMockTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2015 the original author or authors. + * Copyright 2012-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -27,7 +27,6 @@ import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.message.BasicHeader; -import org.hamcrest.Matcher; import org.json.JSONException; import org.json.JSONObject; import org.mockito.ArgumentMatcher; @@ -143,14 +142,14 @@ public abstract class AbstractHttpClientMockTests { given(response.getFirstHeader(headerName)).willReturn(header); } - private Matcher getForMetadata(boolean serviceCapabilities) { + private ArgumentMatcher getForMetadata(boolean serviceCapabilities) { if (!serviceCapabilities) { return new HasAcceptHeader(InitializrService.ACCEPT_META_DATA, true); } return new HasAcceptHeader(InitializrService.ACCEPT_SERVICE_CAPABILITIES, true); } - private Matcher getForNonMetadata() { + private ArgumentMatcher getForNonMetadata() { return new HasAcceptHeader(InitializrService.ACCEPT_META_DATA, false); } @@ -188,7 +187,7 @@ public abstract class AbstractHttpClientMockTests { } - private static class HasAcceptHeader extends ArgumentMatcher { + private static class HasAcceptHeader implements ArgumentMatcher { private final String value; @@ -200,11 +199,10 @@ public abstract class AbstractHttpClientMockTests { } @Override - public boolean matches(Object argument) { - if (!(argument instanceof HttpGet)) { + public boolean matches(HttpGet get) { + if (get == null) { return false; } - HttpGet get = (HttpGet) argument; Header acceptHeader = get.getFirstHeader(HttpHeaders.ACCEPT); if (this.shouldMatch) { return acceptHeader != null && this.value.equals(acceptHeader.getValue()); diff --git a/spring-boot-cli/src/test/java/org/springframework/boot/cli/compiler/grape/GrapeRootRepositorySystemSessionAutoConfigurationTests.java b/spring-boot-cli/src/test/java/org/springframework/boot/cli/compiler/grape/GrapeRootRepositorySystemSessionAutoConfigurationTests.java index 51dfa021d9..d62cd4edd9 100644 --- a/spring-boot-cli/src/test/java/org/springframework/boot/cli/compiler/grape/GrapeRootRepositorySystemSessionAutoConfigurationTests.java +++ b/spring-boot-cli/src/test/java/org/springframework/boot/cli/compiler/grape/GrapeRootRepositorySystemSessionAutoConfigurationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2016 the original author or authors. + * Copyright 2012-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -66,7 +66,7 @@ public class GrapeRootRepositorySystemSessionAutoConfigurationTests { public LocalRepositoryManager answer( InvocationOnMock invocation) throws Throwable { LocalRepository localRepository = invocation - .getArgumentAt(1, LocalRepository.class); + .getArgument(1); return new SimpleLocalRepositoryManagerFactory() .newInstance( GrapeRootRepositorySystemSessionAutoConfigurationTests.this.session, @@ -109,8 +109,7 @@ public class GrapeRootRepositorySystemSessionAutoConfigurationTests { @Override public LocalRepositoryManager answer(InvocationOnMock invocation) throws Throwable { - LocalRepository localRepository = invocation.getArgumentAt(1, - LocalRepository.class); + LocalRepository localRepository = invocation.getArgument(1); return new SimpleLocalRepositoryManagerFactory().newInstance( GrapeRootRepositorySystemSessionAutoConfigurationTests.this.session, localRepository); diff --git a/spring-boot-cli/src/test/java/org/springframework/boot/cli/compiler/grape/SettingsXmlRepositorySystemSessionAutoConfigurationTests.java b/spring-boot-cli/src/test/java/org/springframework/boot/cli/compiler/grape/SettingsXmlRepositorySystemSessionAutoConfigurationTests.java index 9d768e5154..68e9ee899d 100644 --- a/spring-boot-cli/src/test/java/org/springframework/boot/cli/compiler/grape/SettingsXmlRepositorySystemSessionAutoConfigurationTests.java +++ b/spring-boot-cli/src/test/java/org/springframework/boot/cli/compiler/grape/SettingsXmlRepositorySystemSessionAutoConfigurationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2016 the original author or authors. + * Copyright 2012-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -85,7 +85,7 @@ public class SettingsXmlRepositorySystemSessionAutoConfigurationTests { public LocalRepositoryManager answer( InvocationOnMock invocation) throws Throwable { LocalRepository localRepository = invocation - .getArgumentAt(1, LocalRepository.class); + .getArgument(1); return new SimpleLocalRepositoryManagerFactory() .newInstance(session, localRepository); } diff --git a/spring-boot-dependencies/pom.xml b/spring-boot-dependencies/pom.xml index 1176a9442c..3a0217bcf6 100644 --- a/spring-boot-dependencies/pom.xml +++ b/spring-boot-dependencies/pom.xml @@ -129,7 +129,7 @@ 1.16.12 1.5.6 6.1.0.jre8 - 1.10.19 + 2.5.4 3.4.1 5.1.40 5.5.0.Final diff --git a/spring-boot-parent/pom.xml b/spring-boot-parent/pom.xml index 89a17dc253..39e013980e 100644 --- a/spring-boot-parent/pom.xml +++ b/spring-boot-parent/pom.xml @@ -81,7 +81,7 @@ net.bytebuddy byte-buddy - 1.5.4 + 1.6.0 net.sf.jopt-simple diff --git a/spring-boot-parent/src/checkstyle/checkstyle.xml b/spring-boot-parent/src/checkstyle/checkstyle.xml index 8bb9e0a83a..c7f1dd1bd6 100644 --- a/spring-boot-parent/src/checkstyle/checkstyle.xml +++ b/spring-boot-parent/src/checkstyle/checkstyle.xml @@ -70,7 +70,7 @@ + value="org.assertj.core.api.Assertions.*, org.junit.Assert.*, org.junit.Assume.*, org.junit.internal.matchers.ThrowableMessageMatcher.*, org.hamcrest.CoreMatchers.*, org.hamcrest.Matchers.*, org.springframework.boot.configurationprocessor.ConfigurationMetadataMatchers.*, org.springframework.boot.configurationprocessor.TestCompiler.*, org.springframework.boot.test.autoconfigure.AutoConfigurationImportedCondition.*, org.mockito.Mockito.*, org.mockito.BDDMockito.*, org.mockito.ArgumentMatchers.*, org.mockito.Matchers.*, org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.*, org.springframework.restdocs.hypermedia.HypermediaDocumentation.*, org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*, org.springframework.test.web.servlet.result.MockMvcResultMatchers.*, org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.*, org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.*, org.springframework.hateoas.mvc.ControllerLinkBuilder.linkTo, org.springframework.test.web.client.match.MockRestRequestMatchers.*, org.springframework.test.web.client.response.MockRestResponseCreators.*" /> diff --git a/spring-boot-test/src/main/java/org/springframework/boot/test/mock/mockito/MockitoAopProxyTargetInterceptor.java b/spring-boot-test/src/main/java/org/springframework/boot/test/mock/mockito/MockitoAopProxyTargetInterceptor.java index 1824c648a4..115fa549cf 100644 --- a/spring-boot-test/src/main/java/org/springframework/boot/test/mock/mockito/MockitoAopProxyTargetInterceptor.java +++ b/spring-boot-test/src/main/java/org/springframework/boot/test/mock/mockito/MockitoAopProxyTargetInterceptor.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2016 the original author or authors. + * Copyright 2012-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -108,7 +108,8 @@ class MockitoAopProxyTargetInterceptor implements MethodInterceptor { if (mode instanceof MockAwareVerificationMode) { MockAwareVerificationMode mockAwareMode = (MockAwareVerificationMode) mode; if (mockAwareMode.getMock() == source) { - mode = new MockAwareVerificationMode(target, mockAwareMode); + mode = SpringBootMockUtil.createMockAwareVerificationMode( + target, mockAwareMode); } } resetVerificationStarted(mode); diff --git a/spring-boot-test/src/main/java/org/springframework/boot/test/mock/mockito/SpringBootMockUtil.java b/spring-boot-test/src/main/java/org/springframework/boot/test/mock/mockito/SpringBootMockUtil.java index b432885671..d9b6395234 100644 --- a/spring-boot-test/src/main/java/org/springframework/boot/test/mock/mockito/SpringBootMockUtil.java +++ b/spring-boot-test/src/main/java/org/springframework/boot/test/mock/mockito/SpringBootMockUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2016 the original author or authors. + * Copyright 2012-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,17 +16,23 @@ package org.springframework.boot.test.mock.mockito; +import java.lang.reflect.Constructor; import java.lang.reflect.Method; +import java.util.Collections; import java.util.List; +import java.util.Set; -import org.mockito.ArgumentMatcher; +import org.hamcrest.Matcher; import org.mockito.internal.matchers.LocalizedMatcher; import org.mockito.internal.progress.ArgumentMatcherStorage; import org.mockito.internal.progress.MockingProgress; import org.mockito.internal.progress.ThreadSafeMockingProgress; import org.mockito.internal.util.MockUtil; +import org.mockito.internal.verification.MockAwareVerificationMode; import org.mockito.mock.MockCreationSettings; +import org.mockito.verification.VerificationMode; +import org.springframework.beans.BeanUtils; import org.springframework.util.ClassUtils; import org.springframework.util.ReflectionUtils; @@ -35,18 +41,19 @@ import org.springframework.util.ReflectionUtils; * and 2. * * @author Andy Wilkinson + * @author Stephane Nicoll */ final class SpringBootMockUtil { private static final MockUtilAdapter adapter; static { - if (ClassUtils.isPresent("org.mockito.quality.MockitoHint", + if (ClassUtils.isPresent("org.mockito.ReturnValues", SpringBootMockUtil.class.getClassLoader())) { - adapter = new Mockito2MockUtilAdapter(); + adapter = new Mockito1MockUtilAdapter(); } else { - adapter = new Mockito1MockUtilAdapter(); + adapter = new Mockito2MockUtilAdapter(); } } @@ -67,6 +74,11 @@ final class SpringBootMockUtil { adapter.reportMatchers(storage, matchers); } + static MockAwareVerificationMode createMockAwareVerificationMode(Object mock, + VerificationMode mode) { + return adapter.createMockAwareVerificationMode(mock, mode); + } + private interface MockUtilAdapter { MockCreationSettings getMockSettings(Object mock); @@ -76,15 +88,53 @@ final class SpringBootMockUtil { void reportMatchers(ArgumentMatcherStorage storage, List matchers); + MockAwareVerificationMode createMockAwareVerificationMode(Object mock, + VerificationMode mode); + } private static class Mockito1MockUtilAdapter implements MockUtilAdapter { - private static final MockingProgress mockingProgress = new ThreadSafeMockingProgress(); + private final MockUtil mockUtil = BeanUtils.instantiate(MockUtil.class); + + private final Method getMockSettingsMethod = ReflectionUtils + .findMethod(MockUtil.class, "getMockSettings", Object.class); + + private static final MockingProgress mockingProgress = + createThreadSafeMockingProgress(); + + private final Method reportMatcherMethod = ReflectionUtils.findMethod( + ArgumentMatcherStorage.class, "reportMatcher", Matcher.class); + + private static final Constructor mockAwareVerificationModeConstructor = + getMockAwareVerificationModeConstructor(); + + private static MockingProgress createThreadSafeMockingProgress() { + try { + Class target = ClassUtils.forName( + "org.mockito.internal.progress.ThreadSafeMockingProgress", + SpringBootMockUtil.class.getClassLoader()); + return (MockingProgress) BeanUtils.instantiateClass(target); + } + catch (ClassNotFoundException ex) { + throw new IllegalStateException(ex); + } + } + + private static Constructor getMockAwareVerificationModeConstructor() { + try { + return MockAwareVerificationMode.class.getConstructor(Object.class, + VerificationMode.class); + } + catch (NoSuchMethodException ex) { + throw new IllegalStateException(ex); + } + } @Override public MockCreationSettings getMockSettings(Object mock) { - return new MockUtil().getMockSettings(mock); + return (MockCreationSettings) ReflectionUtils + .invokeMethod(this.getMockSettingsMethod, this.mockUtil, mock); } @Override @@ -96,44 +146,83 @@ final class SpringBootMockUtil { public void reportMatchers(ArgumentMatcherStorage storage, List matchers) { for (LocalizedMatcher matcher : matchers) { - storage.reportMatcher(matcher); + ReflectionUtils.invokeMethod(this.reportMatcherMethod, storage, matcher); } } + @Override + public MockAwareVerificationMode createMockAwareVerificationMode(Object mock, + VerificationMode mode) { + return BeanUtils.instantiateClass(mockAwareVerificationModeConstructor, mock, + mode); + } } private static class Mockito2MockUtilAdapter implements MockUtilAdapter { - private final Method getMockSettingsMethod = ReflectionUtils - .findMethod(MockUtil.class, "getMockSettings", Object.class); + private static final Constructor mockAwareVerificationModeConstructor; + private static final boolean mockAwareVerificationModeLegacy; - private final Method mockingProgressMethod = ReflectionUtils - .findMethod(ThreadSafeMockingProgress.class, "mockingProgress"); - - private final Method reportMatcherMethod = ReflectionUtils.findMethod( - ArgumentMatcherStorage.class, "reportMatcher", ArgumentMatcher.class); - - private final Method getMatcherMethod = ReflectionUtils - .findMethod(LocalizedMatcher.class, "getMatcher"); + static { + Constructor c = getMockAwareVerificationModeConstructor(); + if (c != null) { + mockAwareVerificationModeConstructor = c; + mockAwareVerificationModeLegacy = false; + } + else { + mockAwareVerificationModeConstructor = getMockAwareVerificationModeLegacyConstructor(); + mockAwareVerificationModeLegacy = true; + } + } @Override public MockCreationSettings getMockSettings(Object mock) { - return (MockCreationSettings) ReflectionUtils - .invokeMethod(this.getMockSettingsMethod, null, mock); + return MockUtil.getMockSettings(mock); } @Override public MockingProgress mockingProgress() { - return (MockingProgress) ReflectionUtils - .invokeMethod(this.mockingProgressMethod, null); + return ThreadSafeMockingProgress.mockingProgress(); } @Override public void reportMatchers(ArgumentMatcherStorage storage, List matchers) { for (LocalizedMatcher matcher : matchers) { - ReflectionUtils.invokeMethod(this.reportMatcherMethod, storage, - ReflectionUtils.invokeMethod(this.getMatcherMethod, matcher)); + storage.reportMatcher(matcher.getMatcher()); + } + } + + @Override + public MockAwareVerificationMode createMockAwareVerificationMode(Object mock, + VerificationMode mode) { + if (mockAwareVerificationModeLegacy) { + return BeanUtils.instantiateClass(mockAwareVerificationModeConstructor, + mock, mode); + } + else { + return BeanUtils.instantiateClass(mockAwareVerificationModeConstructor, + mock, mode, Collections.emptySet()); + } + } + + private static Constructor getMockAwareVerificationModeLegacyConstructor() { + try { + return MockAwareVerificationMode.class.getConstructor(Object.class, + VerificationMode.class); + } + catch (NoSuchMethodException ex) { + return null; + } + } + + private static Constructor getMockAwareVerificationModeConstructor() { + try { + return MockAwareVerificationMode.class.getConstructor(Object.class, + VerificationMode.class, Set.class); + } + catch (NoSuchMethodException ex) { + return null; } } diff --git a/spring-boot-test/src/test/java/org/springframework/boot/test/mock/mockito/Mockito110Tests.java b/spring-boot-test/src/test/java/org/springframework/boot/test/mock/mockito/Mockito110Tests.java new file mode 100644 index 0000000000..5889ab92eb --- /dev/null +++ b/spring-boot-test/src/test/java/org/springframework/boot/test/mock/mockito/Mockito110Tests.java @@ -0,0 +1,50 @@ +/* + * Copyright 2012-2017 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.boot.test.mock.mockito; + +import org.junit.Test; +import org.junit.runner.JUnitCore; +import org.junit.runner.Result; +import org.junit.runner.RunWith; + +import org.springframework.boot.junit.runner.classpath.ClassPathOverrides; +import org.springframework.boot.junit.runner.classpath.ModifiedClassPathRunner; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Tests for compatibility with Mockito 1.10 + * + * @author Andy Wilkinson + * @author Stephane Nicoll + */ +@RunWith(ModifiedClassPathRunner.class) +@ClassPathOverrides("org.mockito:mockito-core:1.10.19") +public class Mockito110Tests { + + @Test + public void spyBeanWithAopProxyTestsWithMockito1() { + runTests(SpyBeanWithAopProxyTests.class); + } + + private void runTests(Class testClass) { + Result result = new JUnitCore().run(testClass); + assertThat(result.getFailureCount()).isEqualTo(0); + assertThat(result.getRunCount()).isGreaterThan(0); + } + +} diff --git a/spring-boot-test/src/test/java/org/springframework/boot/test/mock/mockito/SpyBeanOnTestFieldForMultipleExistingBeansIntegrationTests.java b/spring-boot-test/src/test/java/org/springframework/boot/test/mock/mockito/SpyBeanOnTestFieldForMultipleExistingBeansIntegrationTests.java index c4880c533d..8bbcf8ced0 100644 --- a/spring-boot-test/src/test/java/org/springframework/boot/test/mock/mockito/SpyBeanOnTestFieldForMultipleExistingBeansIntegrationTests.java +++ b/spring-boot-test/src/test/java/org/springframework/boot/test/mock/mockito/SpyBeanOnTestFieldForMultipleExistingBeansIntegrationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2016 the original author or authors. + * Copyright 2012-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -49,7 +49,7 @@ public class SpyBeanOnTestFieldForMultipleExistingBeansIntegrationTests { @Test public void testSpying() throws Exception { assertThat(this.caller.sayGreeting()).isEqualTo("I say two"); - assertThat(new MockUtil().getMockName(this.spy).toString()).isEqualTo("two"); + assertThat(MockUtil.getMockName(this.spy).toString()).isEqualTo("two"); verify(this.spy).greeting(); } diff --git a/spring-boot/src/test/java/org/springframework/boot/SpringApplicationTests.java b/spring-boot/src/test/java/org/springframework/boot/SpringApplicationTests.java index d3603882f2..e2e9e0ae36 100644 --- a/spring-boot/src/test/java/org/springframework/boot/SpringApplicationTests.java +++ b/spring-boot/src/test/java/org/springframework/boot/SpringApplicationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2016 the original author or authors. + * Copyright 2012-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -34,6 +34,7 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; +import org.mockito.ArgumentCaptor; import org.springframework.beans.BeansException; import org.springframework.beans.factory.support.BeanDefinitionRegistry; @@ -78,10 +79,8 @@ import org.springframework.util.StringUtils; import org.springframework.web.context.support.StandardServletEnvironment; import static org.assertj.core.api.Assertions.assertThat; -import static org.hamcrest.CoreMatchers.isA; import static org.junit.Assert.fail; -import static org.mockito.Matchers.any; -import static org.mockito.Matchers.argThat; +import static org.mockito.ArgumentMatchers.isA; import static org.mockito.Mockito.atLeastOnce; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; @@ -644,7 +643,11 @@ public class SpringApplicationTests { } catch (RuntimeException ex) { } - verify(handler).registerLoggedException(any(RefreshFailureException.class)); + ArgumentCaptor ac = ArgumentCaptor.forClass( + RuntimeException.class); + verify(handler).registerLoggedException(ac.capture()); + RuntimeException exception = ac.getValue(); + assertThat(exception).hasCauseInstanceOf(RefreshFailureException.class); assertThat(this.output.toString()).doesNotContain("NullPointerException"); } @@ -722,8 +725,8 @@ public class SpringApplicationTests { private void verifyTestListenerEvents() { ApplicationListener listener = this.context .getBean("testApplicationListener", ApplicationListener.class); - verify(listener).onApplicationEvent(argThat(isA(ContextRefreshedEvent.class))); - verify(listener).onApplicationEvent(argThat(isA(ApplicationReadyEvent.class))); + verify(listener).onApplicationEvent(isA(ContextRefreshedEvent.class)); + verify(listener).onApplicationEvent(isA(ApplicationReadyEvent.class)); verifyNoMoreInteractions(listener); } diff --git a/spring-boot/src/test/java/org/springframework/boot/context/embedded/MockEmbeddedServletContainerFactory.java b/spring-boot/src/test/java/org/springframework/boot/context/embedded/MockEmbeddedServletContainerFactory.java index d14251a7bb..28a2853971 100644 --- a/spring-boot/src/test/java/org/springframework/boot/context/embedded/MockEmbeddedServletContainerFactory.java +++ b/spring-boot/src/test/java/org/springframework/boot/context/embedded/MockEmbeddedServletContainerFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2016 the original author or authors. + * Copyright 2012-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -37,8 +37,8 @@ import org.mockito.stubbing.Answer; import org.springframework.boot.web.servlet.ServletContextInitializer; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.BDDMockito.given; -import static org.mockito.Matchers.anyObject; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; @@ -102,7 +102,7 @@ public class MockEmbeddedServletContainerFactory private void initialize() { try { this.servletContext = mock(ServletContext.class); - given(this.servletContext.addServlet(anyString(), (Servlet) anyObject())) + given(this.servletContext.addServlet(anyString(), (Servlet) any())) .willAnswer(new Answer() { @Override public ServletRegistration.Dynamic answer( @@ -114,7 +114,7 @@ public class MockEmbeddedServletContainerFactory return registeredServlet.getRegistration(); } }); - given(this.servletContext.addFilter(anyString(), (Filter) anyObject())) + given(this.servletContext.addFilter(anyString(), (Filter) any())) .willAnswer(new Answer() { @Override public FilterRegistration.Dynamic answer( @@ -133,8 +133,8 @@ public class MockEmbeddedServletContainerFactory public Void answer(InvocationOnMock invocation) throws Throwable { initParameters.put( - invocation.getArgumentAt(0, String.class), - invocation.getArgumentAt(1, String.class)); + invocation.getArgument(0), + invocation.getArgument(1)); return null; } @@ -147,7 +147,7 @@ public class MockEmbeddedServletContainerFactory public String answer(InvocationOnMock invocation) throws Throwable { return initParameters - .get(invocation.getArgumentAt(0, String.class)); + .get(invocation.getArgument(0)); } }); given(this.servletContext.getAttributeNames()).willReturn( diff --git a/spring-boot/src/test/java/org/springframework/boot/web/client/RootUriTemplateHandlerTests.java b/spring-boot/src/test/java/org/springframework/boot/web/client/RootUriTemplateHandlerTests.java index df47ec88c0..0dafd33813 100644 --- a/spring-boot/src/test/java/org/springframework/boot/web/client/RootUriTemplateHandlerTests.java +++ b/spring-boot/src/test/java/org/springframework/boot/web/client/RootUriTemplateHandlerTests.java @@ -19,6 +19,7 @@ package org.springframework.boot.web.client; import java.net.URI; import java.net.URISyntaxException; import java.util.HashMap; +import java.util.Map; import org.junit.Before; import org.junit.Rule; @@ -31,10 +32,9 @@ import org.springframework.web.client.RestTemplate; import org.springframework.web.util.UriTemplateHandler; import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.BDDMockito.given; -import static org.mockito.Matchers.anyMap; import static org.mockito.Matchers.anyString; -import static org.mockito.Matchers.anyVararg; import static org.mockito.Mockito.verify; /** @@ -60,8 +60,8 @@ public class RootUriTemplateHandlerTests { MockitoAnnotations.initMocks(this); this.uri = new URI("http://example.com/hello"); this.handler = new RootUriTemplateHandler("http://example.com", this.delegate); - given(this.delegate.expand(anyString(), anyMap())).willReturn(this.uri); - given(this.delegate.expand(anyString(), (Object[]) anyVararg())) + given(this.delegate.expand(anyString(), any(Map.class))).willReturn(this.uri); + given(this.delegate.expand(anyString(), (Object[]) any())) .willReturn(this.uri); }