Replace EasyMock with Mockito

Issue: SPR-10126
This commit is contained in:
Phillip Webb
2013-03-04 19:46:15 -08:00
parent a399b13354
commit 05765d7520
180 changed files with 2329 additions and 4272 deletions

View File

@@ -61,8 +61,7 @@ import org.springframework.web.util.WebUtils;
import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;
import static org.mockito.Matchers.*;
import static org.mockito.Mockito.*;
import static org.mockito.BDDMockito.*;
/**
* @author Rod Johnson

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2013 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,14 @@
package org.springframework.web.servlet;
import static org.easymock.EasyMock.createStrictMock;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
import static org.junit.Assert.assertSame;
import org.junit.Before;
import org.junit.Test;
import org.springframework.mock.web.test.MockHttpServletRequest;
import org.springframework.mock.web.test.MockHttpServletResponse;
import static org.junit.Assert.*;
import static org.mockito.BDDMockito.*;
/**
* A test fixture with HandlerExecutionChain and mock handler interceptors.
*
@@ -56,9 +53,9 @@ public class HandlerExecutionChainTests {
this.handler = new Object();
this.chain = new HandlerExecutionChain(this.handler);
this.interceptor1 = createStrictMock(AsyncHandlerInterceptor.class);
this.interceptor2 = createStrictMock(AsyncHandlerInterceptor.class);
this.interceptor3 = createStrictMock(AsyncHandlerInterceptor.class);
this.interceptor1 = mock(AsyncHandlerInterceptor.class);
this.interceptor2 = mock(AsyncHandlerInterceptor.class);
this.interceptor3 = mock(AsyncHandlerInterceptor.class);
this.chain.addInterceptor(this.interceptor1);
this.chain.addInterceptor(this.interceptor2);
@@ -69,79 +66,60 @@ public class HandlerExecutionChainTests {
public void successScenario() throws Exception {
ModelAndView mav = new ModelAndView();
expect(this.interceptor1.preHandle(this.request, this.response, this.handler)).andReturn(true);
expect(this.interceptor2.preHandle(this.request, this.response, this.handler)).andReturn(true);
expect(this.interceptor3.preHandle(this.request, this.response, this.handler)).andReturn(true);
this.interceptor1.postHandle(this.request, this.response, this.handler, mav);
this.interceptor2.postHandle(this.request, this.response, this.handler, mav);
this.interceptor3.postHandle(this.request, this.response, this.handler, mav);
this.interceptor3.afterCompletion(this.request, this.response, this.handler, null);
this.interceptor2.afterCompletion(this.request, this.response, this.handler, null);
this.interceptor1.afterCompletion(this.request, this.response, this.handler, null);
replay(this.interceptor1, this.interceptor2, this.interceptor3);
given(this.interceptor1.preHandle(this.request, this.response, this.handler)).willReturn(true);
given(this.interceptor2.preHandle(this.request, this.response, this.handler)).willReturn(true);
given(this.interceptor3.preHandle(this.request, this.response, this.handler)).willReturn(true);
this.chain.applyPreHandle(request, response);
this.chain.applyPostHandle(request, response, mav);
this.chain.triggerAfterCompletion(this.request, this.response, null);
verify(this.interceptor1, this.interceptor2, this.interceptor3);
verify(this.interceptor1).postHandle(this.request, this.response, this.handler, mav);
verify(this.interceptor2).postHandle(this.request, this.response, this.handler, mav);
verify(this.interceptor3).postHandle(this.request, this.response, this.handler, mav);
verify(this.interceptor3).afterCompletion(this.request, this.response, this.handler, null);
verify(this.interceptor2).afterCompletion(this.request, this.response, this.handler, null);
verify(this.interceptor1).afterCompletion(this.request, this.response, this.handler, null);
}
@Test
public void successAsyncScenario() throws Exception {
expect(this.interceptor1.preHandle(this.request, this.response, this.handler)).andReturn(true);
expect(this.interceptor2.preHandle(this.request, this.response, this.handler)).andReturn(true);
expect(this.interceptor3.preHandle(this.request, this.response, this.handler)).andReturn(true);
this.interceptor1.afterConcurrentHandlingStarted(request, response, this.handler);
this.interceptor2.afterConcurrentHandlingStarted(request, response, this.handler);
this.interceptor3.afterConcurrentHandlingStarted(request, response, this.handler);
replay(this.interceptor1, this.interceptor2, this.interceptor3);
given(this.interceptor1.preHandle(this.request, this.response, this.handler)).willReturn(true);
given(this.interceptor2.preHandle(this.request, this.response, this.handler)).willReturn(true);
given(this.interceptor3.preHandle(this.request, this.response, this.handler)).willReturn(true);
this.chain.applyPreHandle(request, response);
this.chain.applyAfterConcurrentHandlingStarted(request, response);
this.chain.triggerAfterCompletion(this.request, this.response, null);
verify(this.interceptor1, this.interceptor2, this.interceptor3);
verify(this.interceptor1).afterConcurrentHandlingStarted(request, response, this.handler);
verify(this.interceptor2).afterConcurrentHandlingStarted(request, response, this.handler);
verify(this.interceptor3).afterConcurrentHandlingStarted(request, response, this.handler);
}
@Test
public void earlyExitInPreHandle() throws Exception {
expect(this.interceptor1.preHandle(this.request, this.response, this.handler)).andReturn(true);
expect(this.interceptor2.preHandle(this.request, this.response, this.handler)).andReturn(false);
this.interceptor1.afterCompletion(this.request, this.response, this.handler, null);
replay(this.interceptor1, this.interceptor2, this.interceptor3);
given(this.interceptor1.preHandle(this.request, this.response, this.handler)).willReturn(true);
given(this.interceptor2.preHandle(this.request, this.response, this.handler)).willReturn(false);
this.chain.applyPreHandle(request, response);
verify(this.interceptor1, this.interceptor2, this.interceptor3);
verify(this.interceptor1).afterCompletion(this.request, this.response, this.handler, null);
}
@Test
public void exceptionBeforePreHandle() throws Exception {
replay(this.interceptor1, this.interceptor2, this.interceptor3);
this.chain.triggerAfterCompletion(this.request, this.response, null);
verify(this.interceptor1, this.interceptor2, this.interceptor3);
verifyZeroInteractions(this.interceptor1, this.interceptor2, this.interceptor3);
}
@Test
public void exceptionDuringPreHandle() throws Exception {
Exception ex = new Exception("");
expect(this.interceptor1.preHandle(this.request, this.response, this.handler)).andReturn(true);
expect(this.interceptor2.preHandle(this.request, this.response, this.handler)).andThrow(ex);
this.interceptor1.afterCompletion(this.request, this.response, this.handler, ex);
replay(this.interceptor1, this.interceptor2, this.interceptor3);
given(this.interceptor1.preHandle(this.request, this.response, this.handler)).willReturn(true);
given(this.interceptor2.preHandle(this.request, this.response, this.handler)).willThrow(ex);
try {
this.chain.applyPreHandle(request, response);
@@ -151,27 +129,24 @@ public class HandlerExecutionChainTests {
}
this.chain.triggerAfterCompletion(this.request, this.response, ex);
verify(this.interceptor1, this.interceptor2, this.interceptor3);
verify(this.interceptor1).afterCompletion(this.request, this.response, this.handler, ex);
verify(this.interceptor3, never()).preHandle(this.request, this.response, this.handler);
}
@Test
public void exceptionAfterPreHandle() throws Exception {
Exception ex = new Exception("");
expect(this.interceptor1.preHandle(this.request, this.response, this.handler)).andReturn(true);
expect(this.interceptor2.preHandle(this.request, this.response, this.handler)).andReturn(true);
expect(this.interceptor3.preHandle(this.request, this.response, this.handler)).andReturn(true);
this.interceptor3.afterCompletion(this.request, this.response, this.handler, ex);
this.interceptor2.afterCompletion(this.request, this.response, this.handler, ex);
this.interceptor1.afterCompletion(this.request, this.response, this.handler, ex);
replay(this.interceptor1, this.interceptor2, this.interceptor3);
given(this.interceptor1.preHandle(this.request, this.response, this.handler)).willReturn(true);
given(this.interceptor2.preHandle(this.request, this.response, this.handler)).willReturn(true);
given(this.interceptor3.preHandle(this.request, this.response, this.handler)).willReturn(true);
this.chain.applyPreHandle(request, response);
this.chain.triggerAfterCompletion(this.request, this.response, ex);
verify(this.interceptor1, this.interceptor2, this.interceptor3);
verify(this.interceptor3).afterCompletion(this.request, this.response, this.handler, ex);
verify(this.interceptor2).afterCompletion(this.request, this.response, this.handler, ex);
verify(this.interceptor1).afterCompletion(this.request, this.response, this.handler, ex);
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2013 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,23 +16,17 @@
package org.springframework.web.servlet.config.annotation;
import static org.easymock.EasyMock.capture;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.easymock.Capture;
import org.easymock.EasyMock;
import org.junit.Before;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
import org.mockito.Captor;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.springframework.core.convert.ConversionService;
import org.springframework.format.support.FormattingConversionService;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.StringHttpMessageConverter;
@@ -48,6 +42,9 @@ import org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExc
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;
import org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver;
import static org.junit.Assert.*;
import static org.mockito.BDDMockito.*;
/**
* A test fixture for {@link DelegatingWebMvcConfiguration} tests.
*
@@ -57,46 +54,59 @@ public class DelegatingWebMvcConfigurationTests {
private DelegatingWebMvcConfiguration delegatingConfig;
@Mock
private WebMvcConfigurer webMvcConfigurer;
@Captor
private ArgumentCaptor<List<HttpMessageConverter<?>>> converters;
@Captor
private ArgumentCaptor<ContentNegotiationConfigurer> contentNegotiationConfigurer;
@Captor
private ArgumentCaptor<FormattingConversionService> conversionService;
@Captor
private ArgumentCaptor<List<HandlerMethodArgumentResolver>> resolvers;
@Captor
private ArgumentCaptor<List<HandlerMethodReturnValueHandler>> handlers;
@Captor
private ArgumentCaptor<AsyncSupportConfigurer> asyncConfigurer;
@Captor
private ArgumentCaptor<List<HandlerExceptionResolver>> exceptionResolvers;
@Before
public void setUp() {
webMvcConfigurer = EasyMock.createMock(WebMvcConfigurer.class);
MockitoAnnotations.initMocks(this);
delegatingConfig = new DelegatingWebMvcConfiguration();
}
@Test
public void requestMappingHandlerAdapter() throws Exception {
Capture<List<HttpMessageConverter<?>>> converters = new Capture<List<HttpMessageConverter<?>>>();
Capture<ContentNegotiationConfigurer> contentNegotiationConfigurer = new Capture<ContentNegotiationConfigurer>();
Capture<FormattingConversionService> conversionService = new Capture<FormattingConversionService>();
Capture<List<HandlerMethodArgumentResolver>> resolvers = new Capture<List<HandlerMethodArgumentResolver>>();
Capture<List<HandlerMethodReturnValueHandler>> handlers = new Capture<List<HandlerMethodReturnValueHandler>>();
Capture<AsyncSupportConfigurer> asyncConfigurer = new Capture<AsyncSupportConfigurer>();
webMvcConfigurer.configureMessageConverters(capture(converters));
webMvcConfigurer.configureContentNegotiation(capture(contentNegotiationConfigurer));
expect(webMvcConfigurer.getValidator()).andReturn(null);
expect(webMvcConfigurer.getMessageCodesResolver()).andReturn(null);
webMvcConfigurer.addFormatters(capture(conversionService));
webMvcConfigurer.addArgumentResolvers(capture(resolvers));
webMvcConfigurer.addReturnValueHandlers(capture(handlers));
webMvcConfigurer.configureAsyncSupport(capture(asyncConfigurer));
replay(webMvcConfigurer);
delegatingConfig.setConfigurers(Arrays.asList(webMvcConfigurer));
RequestMappingHandlerAdapter adapter = delegatingConfig.requestMappingHandlerAdapter();
ConfigurableWebBindingInitializer initializer = (ConfigurableWebBindingInitializer) adapter.getWebBindingInitializer();
assertSame(conversionService.getValue(), initializer.getConversionService());
ConversionService initializerConversionService = initializer.getConversionService();
assertTrue(initializer.getValidator() instanceof LocalValidatorFactoryBean);
verify(webMvcConfigurer).configureMessageConverters(converters.capture());
verify(webMvcConfigurer).configureContentNegotiation(contentNegotiationConfigurer.capture());
verify(webMvcConfigurer).addFormatters(conversionService.capture());
verify(webMvcConfigurer).addArgumentResolvers(resolvers.capture());
verify(webMvcConfigurer).addReturnValueHandlers(handlers.capture());
verify(webMvcConfigurer).configureAsyncSupport(asyncConfigurer.capture());
assertSame(conversionService.getValue(), initializerConversionService);
assertEquals(0, resolvers.getValue().size());
assertEquals(0, handlers.getValue().size());
assertEquals(converters.getValue(), adapter.getMessageConverters());
assertNotNull(asyncConfigurer);
verify(webMvcConfigurer);
}
@Test
@@ -117,47 +127,39 @@ public class DelegatingWebMvcConfigurationTests {
@Test
public void getCustomValidator() {
expect(webMvcConfigurer.getValidator()).andReturn(new LocalValidatorFactoryBean());
replay(webMvcConfigurer);
given(webMvcConfigurer.getValidator()).willReturn(new LocalValidatorFactoryBean());
delegatingConfig.setConfigurers(Arrays.asList(webMvcConfigurer));
delegatingConfig.mvcValidator();
verify(webMvcConfigurer);
verify(webMvcConfigurer).getValidator();
}
@Test
public void getCustomMessageCodesResolver() {
expect(webMvcConfigurer.getMessageCodesResolver()).andReturn(new DefaultMessageCodesResolver());
replay(webMvcConfigurer);
given(webMvcConfigurer.getMessageCodesResolver()).willReturn(new DefaultMessageCodesResolver());
delegatingConfig.setConfigurers(Arrays.asList(webMvcConfigurer));
delegatingConfig.getMessageCodesResolver();
verify(webMvcConfigurer);
verify(webMvcConfigurer).getMessageCodesResolver();
}
@Test
public void handlerExceptionResolver() throws Exception {
Capture<List<HttpMessageConverter<?>>> converters = new Capture<List<HttpMessageConverter<?>>>();
Capture<List<HandlerExceptionResolver>> exceptionResolvers = new Capture<List<HandlerExceptionResolver>>();
Capture<ContentNegotiationConfigurer> contentNegotiationConfigurer = new Capture<ContentNegotiationConfigurer>();
webMvcConfigurer.configureMessageConverters(capture(converters));
webMvcConfigurer.configureContentNegotiation(capture(contentNegotiationConfigurer));
webMvcConfigurer.configureHandlerExceptionResolvers(capture(exceptionResolvers));
replay(webMvcConfigurer);
delegatingConfig.setConfigurers(Arrays.asList(webMvcConfigurer));
delegatingConfig.handlerExceptionResolver();
verify(webMvcConfigurer).configureMessageConverters(converters.capture());
verify(webMvcConfigurer).configureContentNegotiation(contentNegotiationConfigurer.capture());
verify(webMvcConfigurer).configureHandlerExceptionResolvers(exceptionResolvers.capture());
assertEquals(3, exceptionResolvers.getValue().size());
assertTrue(exceptionResolvers.getValue().get(0) instanceof ExceptionHandlerExceptionResolver);
assertTrue(exceptionResolvers.getValue().get(1) instanceof ResponseStatusExceptionResolver);
assertTrue(exceptionResolvers.getValue().get(2) instanceof DefaultHandlerExceptionResolver);
assertTrue(converters.getValue().size() > 0);
verify(webMvcConfigurer);
}
@Test

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2013 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.
@@ -28,7 +28,6 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import junit.framework.TestCase;
import org.easymock.MockControl;
import org.springframework.mock.web.test.MockHttpServletRequest;
import org.springframework.mock.web.test.MockHttpServletResponse;
@@ -36,6 +35,8 @@ import org.springframework.web.context.support.StaticWebApplicationContext;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.util.WebUtils;
import static org.mockito.BDDMockito.*;
/**
* @author Rod Johnson
* @author Juergen Hoeller
@@ -74,43 +75,31 @@ public class ControllerTests extends TestCase {
private void doTestServletForwardingController(ServletForwardingController sfc, boolean include)
throws Exception {
MockControl requestControl = MockControl.createControl(HttpServletRequest.class);
HttpServletRequest request = (HttpServletRequest) requestControl.getMock();
MockControl responseControl = MockControl.createControl(HttpServletResponse.class);
HttpServletResponse response = (HttpServletResponse) responseControl.getMock();
MockControl contextControl = MockControl.createControl(ServletContext.class);
ServletContext context = (ServletContext) contextControl.getMock();
MockControl dispatcherControl = MockControl.createControl(RequestDispatcher.class);
RequestDispatcher dispatcher = (RequestDispatcher) dispatcherControl.getMock();
HttpServletRequest request = mock(HttpServletRequest.class);
HttpServletResponse response = mock(HttpServletResponse.class);
ServletContext context = mock(ServletContext.class);
RequestDispatcher dispatcher = mock(RequestDispatcher.class);
request.getMethod();
requestControl.setReturnValue("GET", 1);
context.getNamedDispatcher("action");
contextControl.setReturnValue(dispatcher, 1);
given(request.getMethod()).willReturn("GET");
given(context.getNamedDispatcher("action")).willReturn(dispatcher);
if (include) {
request.getAttribute(WebUtils.INCLUDE_REQUEST_URI_ATTRIBUTE);
requestControl.setReturnValue("somePath", 1);
dispatcher.include(request, response);
dispatcherControl.setVoidCallable(1);
given(request.getAttribute(WebUtils.INCLUDE_REQUEST_URI_ATTRIBUTE)).willReturn("somePath");
}
else {
request.getAttribute(WebUtils.INCLUDE_REQUEST_URI_ATTRIBUTE);
requestControl.setReturnValue(null, 1);
dispatcher.forward(request, response);
dispatcherControl.setVoidCallable(1);
given(request.getAttribute(WebUtils.INCLUDE_REQUEST_URI_ATTRIBUTE)).willReturn(null);
}
requestControl.replay();
contextControl.replay();
dispatcherControl.replay();
StaticWebApplicationContext sac = new StaticWebApplicationContext();
sac.setServletContext(context);
sfc.setApplicationContext(sac);
assertNull(sfc.handleRequest(request, response));
requestControl.verify();
contextControl.verify();
dispatcherControl.verify();
if (include) {
verify(dispatcher).include(request, response);
}
else {
verify(dispatcher).forward(request, response);
}
}
public void testServletWrappingController() throws Exception {

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2013 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.
@@ -15,27 +15,14 @@
*/
package org.springframework.web.servlet.mvc.method.annotation;
import static org.easymock.EasyMock.capture;
import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.eq;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.isA;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.reset;
import static org.easymock.EasyMock.verify;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.springframework.web.servlet.HandlerMapping.PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE;
import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.Collections;
import org.easymock.Capture;
import org.junit.Before;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
import org.springframework.core.MethodParameter;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
@@ -52,7 +39,12 @@ import org.springframework.web.HttpMediaTypeNotSupportedException;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.context.request.ServletWebRequest;
import org.springframework.web.method.support.ModelAndViewContainer;
import org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor;
import static org.mockito.Mockito.*;
import static org.junit.Assert.*;
import static org.mockito.BDDMockito.*;
import static org.springframework.web.servlet.HandlerMapping.*;
/**
* Test fixture for {@link HttpEntityMethodProcessor} delegating to a mock
@@ -88,9 +80,8 @@ public class HttpEntityMethodProcessorMockTests {
@SuppressWarnings("unchecked")
@Before
public void setUp() throws Exception {
messageConverter = createMock(HttpMessageConverter.class);
expect(messageConverter.getSupportedMediaTypes()).andReturn(Collections.singletonList(MediaType.TEXT_PLAIN));
replay(messageConverter);
messageConverter = mock(HttpMessageConverter.class);
given(messageConverter.getSupportedMediaTypes()).willReturn(Collections.singletonList(MediaType.TEXT_PLAIN));
processor = new HttpEntityMethodProcessor(Collections.<HttpMessageConverter<?>>singletonList(messageConverter));
reset(messageConverter);
@@ -135,16 +126,14 @@ public class HttpEntityMethodProcessorMockTests {
servletRequest.addHeader("Content-Type", contentType.toString());
String body = "Foo";
expect(messageConverter.canRead(String.class, contentType)).andReturn(true);
expect(messageConverter.read(eq(String.class), isA(HttpInputMessage.class))).andReturn(body);
replay(messageConverter);
given(messageConverter.canRead(String.class, contentType)).willReturn(true);
given(messageConverter.read(eq(String.class), isA(HttpInputMessage.class))).willReturn(body);
Object result = processor.resolveArgument(paramHttpEntity, mavContainer, webRequest, null);
assertTrue(result instanceof HttpEntity);
assertFalse("The requestHandled flag shouldn't change", mavContainer.isRequestHandled());
assertEquals("Invalid argument", body, ((HttpEntity<?>) result).getBody());
verify(messageConverter);
}
@Test(expected = HttpMediaTypeNotSupportedException.class)
@@ -152,9 +141,8 @@ public class HttpEntityMethodProcessorMockTests {
MediaType contentType = MediaType.TEXT_PLAIN;
servletRequest.addHeader("Content-Type", contentType.toString());
expect(messageConverter.getSupportedMediaTypes()).andReturn(Arrays.asList(contentType));
expect(messageConverter.canRead(String.class, contentType)).andReturn(false);
replay(messageConverter);
given(messageConverter.getSupportedMediaTypes()).willReturn(Arrays.asList(contentType));
given(messageConverter.canRead(String.class, contentType)).willReturn(false);
processor.resolveArgument(paramHttpEntity, mavContainer, webRequest, null);
@@ -175,16 +163,14 @@ public class HttpEntityMethodProcessorMockTests {
MediaType accepted = MediaType.TEXT_PLAIN;
servletRequest.addHeader("Accept", accepted.toString());
expect(messageConverter.canWrite(String.class, null)).andReturn(true);
expect(messageConverter.getSupportedMediaTypes()).andReturn(Collections.singletonList(MediaType.TEXT_PLAIN));
expect(messageConverter.canWrite(String.class, accepted)).andReturn(true);
messageConverter.write(eq(body), eq(accepted), isA(HttpOutputMessage.class));
replay(messageConverter);
given(messageConverter.canWrite(String.class, null)).willReturn(true);
given(messageConverter.getSupportedMediaTypes()).willReturn(Collections.singletonList(MediaType.TEXT_PLAIN));
given(messageConverter.canWrite(String.class, accepted)).willReturn(true);
processor.handleReturnValue(returnValue, returnTypeResponseEntity, mavContainer, webRequest);
assertTrue(mavContainer.isRequestHandled());
verify(messageConverter);
verify(messageConverter).write(eq(body), eq(accepted), isA(HttpOutputMessage.class));
}
@Test
@@ -195,14 +181,12 @@ public class HttpEntityMethodProcessorMockTests {
servletRequest.addHeader("Accept", "text/*");
servletRequest.setAttribute(PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE, Collections.singleton(MediaType.TEXT_HTML));
expect(messageConverter.canWrite(String.class, MediaType.TEXT_HTML)).andReturn(true);
messageConverter.write(eq(body), eq(MediaType.TEXT_HTML), isA(HttpOutputMessage.class));
replay(messageConverter);
given(messageConverter.canWrite(String.class, MediaType.TEXT_HTML)).willReturn(true);
processor.handleReturnValue(returnValue, returnTypeResponseEntityProduces, mavContainer, webRequest);
assertTrue(mavContainer.isRequestHandled());
verify(messageConverter);
verify(messageConverter).write(eq(body), eq(MediaType.TEXT_HTML), isA(HttpOutputMessage.class));
}
@Test(expected = HttpMediaTypeNotAcceptableException.class)
@@ -213,10 +197,9 @@ public class HttpEntityMethodProcessorMockTests {
MediaType accepted = MediaType.APPLICATION_ATOM_XML;
servletRequest.addHeader("Accept", accepted.toString());
expect(messageConverter.canWrite(String.class, null)).andReturn(true);
expect(messageConverter.getSupportedMediaTypes()).andReturn(Arrays.asList(MediaType.TEXT_PLAIN));
expect(messageConverter.canWrite(String.class, accepted)).andReturn(false);
replay(messageConverter);
given(messageConverter.canWrite(String.class, null)).willReturn(true);
given(messageConverter.getSupportedMediaTypes()).willReturn(Arrays.asList(MediaType.TEXT_PLAIN));
given(messageConverter.canWrite(String.class, accepted)).willReturn(false);
processor.handleReturnValue(returnValue, returnTypeResponseEntity, mavContainer, webRequest);
@@ -231,10 +214,9 @@ public class HttpEntityMethodProcessorMockTests {
MediaType accepted = MediaType.TEXT_PLAIN;
servletRequest.addHeader("Accept", accepted.toString());
expect(messageConverter.canWrite(String.class, null)).andReturn(true);
expect(messageConverter.getSupportedMediaTypes()).andReturn(Collections.singletonList(MediaType.TEXT_PLAIN));
expect(messageConverter.canWrite(String.class, accepted)).andReturn(false);
replay(messageConverter);
given(messageConverter.canWrite(String.class, null)).willReturn(true);
given(messageConverter.getSupportedMediaTypes()).willReturn(Collections.singletonList(MediaType.TEXT_PLAIN));
given(messageConverter.canWrite(String.class, accepted)).willReturn(false);
processor.handleReturnValue(returnValue, returnTypeResponseEntityProduces, mavContainer, webRequest);
@@ -270,18 +252,16 @@ public class HttpEntityMethodProcessorMockTests {
responseHeaders.set("header", "headerValue");
ResponseEntity<String> returnValue = new ResponseEntity<String>("body", responseHeaders, HttpStatus.ACCEPTED);
Capture<HttpOutputMessage> outputMessage = new Capture<HttpOutputMessage>();
expect(messageConverter.canWrite(String.class, null)).andReturn(true);
expect(messageConverter.getSupportedMediaTypes()).andReturn(Collections.singletonList(MediaType.TEXT_PLAIN));
expect(messageConverter.canWrite(String.class, MediaType.TEXT_PLAIN)).andReturn(true);
messageConverter.write(eq("body"), eq(MediaType.TEXT_PLAIN), capture(outputMessage));
replay(messageConverter);
given(messageConverter.canWrite(String.class, null)).willReturn(true);
given(messageConverter.getSupportedMediaTypes()).willReturn(Collections.singletonList(MediaType.TEXT_PLAIN));
given(messageConverter.canWrite(String.class, MediaType.TEXT_PLAIN)).willReturn(true);
processor.handleReturnValue(returnValue, returnTypeResponseEntity, mavContainer, webRequest);
ArgumentCaptor<HttpOutputMessage> outputMessage = ArgumentCaptor.forClass(HttpOutputMessage.class);
verify(messageConverter).write(eq("body"), eq(MediaType.TEXT_PLAIN), outputMessage.capture());
assertTrue(mavContainer.isRequestHandled());
assertEquals("headerValue", outputMessage.getValue().getHeaders().get("header").get(0));
verify(messageConverter);
}
public ResponseEntity<String> handle1(HttpEntity<String> httpEntity, ResponseEntity<String> responseEntity, int i) {
@@ -302,4 +282,4 @@ public class HttpEntityMethodProcessorMockTests {
}
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2013 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,20 +16,6 @@
package org.springframework.web.servlet.mvc.method.annotation;
import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.eq;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.isA;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.reset;
import static org.easymock.EasyMock.verify;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.io.IOException;
import java.lang.reflect.Method;
import java.util.Arrays;
@@ -52,19 +38,21 @@ import org.springframework.mock.web.test.MockMultipartFile;
import org.springframework.mock.web.test.MockMultipartHttpServletRequest;
import org.springframework.mock.web.test.MockPart;
import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.bind.support.WebDataBinderFactory;
import org.springframework.web.context.request.NativeWebRequest;
import org.springframework.web.context.request.ServletWebRequest;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.method.support.ModelAndViewContainer;
import org.springframework.web.multipart.MultipartException;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.support.MissingServletRequestPartException;
import org.springframework.web.multipart.support.RequestPartServletServerHttpRequest;
import org.springframework.web.servlet.mvc.method.annotation.RequestPartMethodArgumentResolver;
import static org.junit.Assert.*;
import static org.mockito.BDDMockito.*;
/**
* Test fixture with {@link RequestPartMethodArgumentResolver} and mock {@link HttpMessageConverter}.
@@ -116,9 +104,8 @@ public class RequestPartMethodArgumentResolverTests {
paramServlet30Part.initParameterNameDiscovery(new LocalVariableTableParameterNameDiscoverer());
paramRequestParamAnnot = new MethodParameter(method, 8);
messageConverter = createMock(HttpMessageConverter.class);
expect(messageConverter.getSupportedMediaTypes()).andReturn(Collections.singletonList(MediaType.TEXT_PLAIN));
replay(messageConverter);
messageConverter = mock(HttpMessageConverter.class);
given(messageConverter.getSupportedMediaTypes()).willReturn(Collections.singletonList(MediaType.TEXT_PLAIN));
resolver = new RequestPartMethodArgumentResolver(Collections.<HttpMessageConverter<?>>singletonList(messageConverter));
reset(messageConverter);
@@ -246,17 +233,14 @@ public class RequestPartMethodArgumentResolverTests {
private void testResolveArgument(SimpleBean argValue, MethodParameter parameter) throws IOException, Exception {
MediaType contentType = MediaType.TEXT_PLAIN;
expect(messageConverter.canRead(SimpleBean.class, contentType)).andReturn(true);
expect(messageConverter.read(eq(SimpleBean.class), isA(RequestPartServletServerHttpRequest.class))).andReturn(argValue);
replay(messageConverter);
given(messageConverter.canRead(SimpleBean.class, contentType)).willReturn(true);
given(messageConverter.read(eq(SimpleBean.class), isA(RequestPartServletServerHttpRequest.class))).willReturn(argValue);
ModelAndViewContainer mavContainer = new ModelAndViewContainer();
Object actualValue = resolver.resolveArgument(parameter, mavContainer, webRequest, new ValidatingBinderFactory());
assertEquals("Invalid argument value", argValue, actualValue);
assertFalse("The requestHandled flag shouldn't change", mavContainer.isRequestHandled());
verify(messageConverter);
}
private static class SimpleBean {

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2013 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,20 +16,6 @@
package org.springframework.web.servlet.mvc.method.annotation;
import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.eq;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.isA;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.reset;
import static org.easymock.EasyMock.verify;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.io.IOException;
import java.lang.reflect.Method;
import java.util.Arrays;
@@ -61,6 +47,9 @@ import org.springframework.web.context.request.ServletWebRequest;
import org.springframework.web.method.support.ModelAndViewContainer;
import org.springframework.web.servlet.HandlerMapping;
import static org.junit.Assert.*;
import static org.mockito.BDDMockito.*;
/**
* Test fixture for {@link RequestResponseBodyMethodProcessor} delegating to a
* mock HttpMessageConverter.
@@ -95,12 +84,10 @@ public class RequestResponseBodyMethodProcessorMockTests {
@SuppressWarnings("unchecked")
@Before
public void setUp() throws Exception {
messageConverter = createMock(HttpMessageConverter.class);
expect(messageConverter.getSupportedMediaTypes()).andReturn(Collections.singletonList(MediaType.TEXT_PLAIN));
replay(messageConverter);
messageConverter = mock(HttpMessageConverter.class);
given(messageConverter.getSupportedMediaTypes()).willReturn(Collections.singletonList(MediaType.TEXT_PLAIN));
processor = new RequestResponseBodyMethodProcessor(Collections.<HttpMessageConverter<?>>singletonList(messageConverter));
reset(messageConverter);
Method methodHandle1 = getClass().getMethod("handle1", String.class, Integer.TYPE);
paramRequestBodyString = new MethodParameter(methodHandle1, 0);
@@ -138,15 +125,13 @@ public class RequestResponseBodyMethodProcessorMockTests {
String body = "Foo";
servletRequest.setContent(body.getBytes());
expect(messageConverter.canRead(String.class, contentType)).andReturn(true);
expect(messageConverter.read(eq(String.class), isA(HttpInputMessage.class))).andReturn(body);
replay(messageConverter);
given(messageConverter.canRead(String.class, contentType)).willReturn(true);
given(messageConverter.read(eq(String.class), isA(HttpInputMessage.class))).willReturn(body);
Object result = processor.resolveArgument(paramRequestBodyString, mavContainer, webRequest, new ValidatingBinderFactory());
assertEquals("Invalid argument", body, result);
assertFalse("The requestHandled flag shouldn't change", mavContainer.isRequestHandled());
verify(messageConverter);
}
@Test
@@ -172,16 +157,13 @@ public class RequestResponseBodyMethodProcessorMockTests {
servletRequest.setContent(new byte[] {});
@SuppressWarnings("unchecked")
HttpMessageConverter<SimpleBean> beanConverter = createMock(HttpMessageConverter.class);
expect(beanConverter.getSupportedMediaTypes()).andReturn(Collections.singletonList(MediaType.TEXT_PLAIN));
expect(beanConverter.canRead(SimpleBean.class, contentType)).andReturn(true);
expect(beanConverter.read(eq(SimpleBean.class), isA(HttpInputMessage.class))).andReturn(simpleBean);
replay(beanConverter);
HttpMessageConverter<SimpleBean> beanConverter = mock(HttpMessageConverter.class);
given(beanConverter.getSupportedMediaTypes()).willReturn(Collections.singletonList(MediaType.TEXT_PLAIN));
given(beanConverter.canRead(SimpleBean.class, contentType)).willReturn(true);
given(beanConverter.read(eq(SimpleBean.class), isA(HttpInputMessage.class))).willReturn(simpleBean);
processor = new RequestResponseBodyMethodProcessor(Collections.<HttpMessageConverter<?>>singletonList(beanConverter));
processor.resolveArgument(paramValidBean, mavContainer, webRequest, new ValidatingBinderFactory());
verify(beanConverter);
}
@Test(expected = HttpMediaTypeNotSupportedException.class)
@@ -189,23 +171,20 @@ public class RequestResponseBodyMethodProcessorMockTests {
MediaType contentType = MediaType.TEXT_PLAIN;
servletRequest.addHeader("Content-Type", contentType.toString());
expect(messageConverter.canRead(String.class, contentType)).andReturn(false);
replay(messageConverter);
given(messageConverter.canRead(String.class, contentType)).willReturn(false);
processor.resolveArgument(paramRequestBodyString, mavContainer, webRequest, null);
}
@Test
public void resolveArgumentNoContentType() throws Exception {
expect(messageConverter.canRead(String.class, MediaType.APPLICATION_OCTET_STREAM)).andReturn(false);
replay(messageConverter);
given(messageConverter.canRead(String.class, MediaType.APPLICATION_OCTET_STREAM)).willReturn(false);
try {
processor.resolveArgument(paramRequestBodyString, mavContainer, webRequest, null);
fail("Expected exception");
}
catch (HttpMediaTypeNotSupportedException ex) {
}
verify(messageConverter);
}
@Test
@@ -223,16 +202,14 @@ public class RequestResponseBodyMethodProcessorMockTests {
servletRequest.addHeader("Accept", accepted.toString());
String body = "Foo";
expect(messageConverter.canWrite(String.class, null)).andReturn(true);
expect(messageConverter.getSupportedMediaTypes()).andReturn(Collections.singletonList(MediaType.TEXT_PLAIN));
expect(messageConverter.canWrite(String.class, accepted)).andReturn(true);
messageConverter.write(eq(body), eq(accepted), isA(HttpOutputMessage.class));
replay(messageConverter);
given(messageConverter.canWrite(String.class, null)).willReturn(true);
given(messageConverter.getSupportedMediaTypes()).willReturn(Collections.singletonList(MediaType.TEXT_PLAIN));
given(messageConverter.canWrite(String.class, accepted)).willReturn(true);
processor.handleReturnValue(body, returnTypeString, mavContainer, webRequest);
assertTrue("The requestHandled flag wasn't set", mavContainer.isRequestHandled());
verify(messageConverter);
verify(messageConverter).write(eq(body), eq(accepted), isA(HttpOutputMessage.class));
}
@Test
@@ -242,14 +219,12 @@ public class RequestResponseBodyMethodProcessorMockTests {
servletRequest.addHeader("Accept", "text/*");
servletRequest.setAttribute(HandlerMapping.PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE, Collections.singleton(MediaType.TEXT_HTML));
expect(messageConverter.canWrite(String.class, MediaType.TEXT_HTML)).andReturn(true);
messageConverter.write(eq(body), eq(MediaType.TEXT_HTML), isA(HttpOutputMessage.class));
replay(messageConverter);
given(messageConverter.canWrite(String.class, MediaType.TEXT_HTML)).willReturn(true);
processor.handleReturnValue(body, returnTypeStringProduces, mavContainer, webRequest);
assertTrue(mavContainer.isRequestHandled());
verify(messageConverter);
verify(messageConverter).write(eq(body), eq(MediaType.TEXT_HTML), isA(HttpOutputMessage.class));
}
@@ -258,10 +233,9 @@ public class RequestResponseBodyMethodProcessorMockTests {
MediaType accepted = MediaType.APPLICATION_ATOM_XML;
servletRequest.addHeader("Accept", accepted.toString());
expect(messageConverter.canWrite(String.class, null)).andReturn(true);
expect(messageConverter.getSupportedMediaTypes()).andReturn(Arrays.asList(MediaType.TEXT_PLAIN));
expect(messageConverter.canWrite(String.class, accepted)).andReturn(false);
replay(messageConverter);
given(messageConverter.canWrite(String.class, null)).willReturn(true);
given(messageConverter.getSupportedMediaTypes()).willReturn(Arrays.asList(MediaType.TEXT_PLAIN));
given(messageConverter.canWrite(String.class, accepted)).willReturn(false);
processor.handleReturnValue("Foo", returnTypeString, mavContainer, webRequest);
}
@@ -271,10 +245,9 @@ public class RequestResponseBodyMethodProcessorMockTests {
MediaType accepted = MediaType.TEXT_PLAIN;
servletRequest.addHeader("Accept", accepted.toString());
expect(messageConverter.canWrite(String.class, null)).andReturn(true);
expect(messageConverter.getSupportedMediaTypes()).andReturn(Collections.singletonList(MediaType.TEXT_PLAIN));
expect(messageConverter.canWrite(String.class, accepted)).andReturn(false);
replay(messageConverter);
given(messageConverter.canWrite(String.class, null)).willReturn(true);
given(messageConverter.getSupportedMediaTypes()).willReturn(Collections.singletonList(MediaType.TEXT_PLAIN));
given(messageConverter.canWrite(String.class, accepted)).willReturn(false);
processor.handleReturnValue("Foo", returnTypeStringProduces, mavContainer, webRequest);
}
@@ -289,16 +262,14 @@ public class RequestResponseBodyMethodProcessorMockTests {
servletRequest.addHeader("Accept", accepted);
expect(messageConverter.canWrite(String.class, null)).andReturn(true);
expect(messageConverter.getSupportedMediaTypes()).andReturn(supported);
expect(messageConverter.canWrite(String.class, accepted)).andReturn(true);
messageConverter.write(eq(body), eq(accepted), isA(HttpOutputMessage.class));
replay(messageConverter);
given(messageConverter.canWrite(String.class, null)).willReturn(true);
given(messageConverter.getSupportedMediaTypes()).willReturn(supported);
given(messageConverter.canWrite(String.class, accepted)).willReturn(true);
processor.handleReturnValue(body, returnTypeStringProduces, mavContainer, webRequest);
assertTrue(mavContainer.isRequestHandled());
verify(messageConverter);
verify(messageConverter).write(eq(body), eq(accepted), isA(HttpOutputMessage.class));
}
@@ -348,4 +319,4 @@ public class RequestResponseBodyMethodProcessorMockTests {
}
}
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2013 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,8 +16,6 @@
package org.springframework.web.servlet.tags.form;
import static org.easymock.EasyMock.createMock;
import java.io.StringWriter;
import java.io.Writer;
import java.util.HashMap;
@@ -32,14 +30,16 @@ import org.springframework.mock.web.test.MockPageContext;
import org.springframework.validation.BindingResult;
import org.springframework.validation.Errors;
import org.springframework.web.context.support.StaticWebApplicationContext;
import org.springframework.web.servlet.support.RequestDataValueProcessorWrapper;
import org.springframework.web.servlet.support.JspAwareRequestContext;
import org.springframework.web.servlet.support.RequestContext;
import org.springframework.web.servlet.support.RequestContextUtils;
import org.springframework.web.servlet.support.RequestDataValueProcessor;
import org.springframework.web.servlet.support.RequestDataValueProcessorWrapper;
import org.springframework.web.servlet.tags.AbstractTagTests;
import org.springframework.web.servlet.tags.RequestContextAwareTag;
import static org.mockito.BDDMockito.*;
/**
* @author Rob Harrop
* @author Juergen Hoeller
@@ -102,7 +102,7 @@ public abstract class AbstractHtmlElementTagTests extends AbstractTagTests {
}
protected RequestDataValueProcessor getMockRequestDataValueProcessor() {
RequestDataValueProcessor mockProcessor = createMock(RequestDataValueProcessor.class);
RequestDataValueProcessor mockProcessor = mock(RequestDataValueProcessor.class);
ServletRequest request = getPageContext().getRequest();
StaticWebApplicationContext wac = (StaticWebApplicationContext) RequestContextUtils.getWebApplicationContext(request);
wac.getBean(RequestDataValueProcessorWrapper.class).setRequestDataValueProcessor(mockProcessor);

View File

@@ -16,10 +16,6 @@
package org.springframework.web.servlet.tags.form;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
import java.util.Collections;
import javax.servlet.jsp.PageContext;
@@ -28,6 +24,8 @@ import javax.servlet.jsp.tagext.Tag;
import org.springframework.mock.web.test.MockHttpServletRequest;
import org.springframework.web.servlet.support.RequestDataValueProcessor;
import static org.mockito.BDDMockito.*;
/**
* @author Rob Harrop
* @author Rick Evans
@@ -328,9 +326,8 @@ public class FormTagTests extends AbstractHtmlElementTagTests {
public void testRequestDataValueProcessorHooks() throws Exception {
String action = "/my/form?foo=bar";
RequestDataValueProcessor processor = getMockRequestDataValueProcessor();
expect(processor.processAction(this.request, action)).andReturn(action);
expect(processor.getExtraHiddenFields(this.request)).andReturn(Collections.singletonMap("key", "value"));
replay(processor);
given(processor.processAction(this.request, action)).willReturn(action);
given(processor.getExtraHiddenFields(this.request)).willReturn(Collections.singletonMap("key", "value"));
this.tag.doStartTag();
this.tag.doEndTag();
@@ -341,8 +338,6 @@ public class FormTagTests extends AbstractHtmlElementTagTests {
assertEquals("<input type=\"hidden\" name=\"key\" value=\"value\" />", getInputTag(output));
assertFormTagOpened(output);
assertFormTagClosed(output);
verify(processor);
}
private String getFormTag(String output) {

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2013 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.
@@ -15,11 +15,6 @@
*/
package org.springframework.web.servlet.view;
import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.expectLastCall;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
@@ -40,6 +35,8 @@ import org.springframework.mock.web.test.MockServletContext;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.servlet.View;
import static org.mockito.BDDMockito.*;
/**
* Tests for AbstractView. Not called AbstractViewTests as
* would otherwise be excluded by Ant build script wildcard.
@@ -49,11 +46,8 @@ import org.springframework.web.servlet.View;
public class BaseViewTests extends TestCase {
public void testRenderWithoutStaticAttributes() throws Exception {
WebApplicationContext wac = createMock(WebApplicationContext.class);
wac.getServletContext();
expectLastCall().andReturn(new MockServletContext());
replay(wac);
WebApplicationContext wac = mock(WebApplicationContext.class);
given(wac.getServletContext()).willReturn(new MockServletContext());
HttpServletRequest request = new MockHttpServletRequest();
HttpServletResponse response = new MockHttpServletResponse();
@@ -72,17 +66,14 @@ public class BaseViewTests extends TestCase {
checkContainsAll(model, tv.model);
assertTrue(tv.inited);
verify(wac);
}
/**
* Test attribute passing, NOT CSV parsing.
*/
public void testRenderWithStaticAttributesNoCollision() throws Exception {
WebApplicationContext wac = createMock(WebApplicationContext.class);
wac.getServletContext();
expectLastCall().andReturn(new MockServletContext());
replay(wac);
WebApplicationContext wac = mock(WebApplicationContext.class);
given(wac.getServletContext()).willReturn(new MockServletContext());
HttpServletRequest request = new MockHttpServletRequest();
HttpServletResponse response = new MockHttpServletResponse();
@@ -104,14 +95,11 @@ public class BaseViewTests extends TestCase {
checkContainsAll(p, tv.model);
assertTrue(tv.inited);
verify(wac);
}
public void testPathVarsOverrideStaticAttributes() throws Exception {
WebApplicationContext wac = createMock(WebApplicationContext.class);
wac.getServletContext();
expectLastCall().andReturn(new MockServletContext());
replay(wac);
WebApplicationContext wac = mock(WebApplicationContext.class);
given(wac.getServletContext()).willReturn(new MockServletContext());
HttpServletRequest request = new MockHttpServletRequest();
HttpServletResponse response = new MockHttpServletResponse();
@@ -138,14 +126,11 @@ public class BaseViewTests extends TestCase {
assertTrue(tv.model.get("something").equals("else"));
assertTrue(tv.inited);
verify(wac);
}
public void testDynamicModelOverridesStaticAttributesIfCollision() throws Exception {
WebApplicationContext wac = createMock(WebApplicationContext.class);
wac.getServletContext();
expectLastCall().andReturn(new MockServletContext());
replay(wac);
WebApplicationContext wac = mock(WebApplicationContext.class);
given(wac.getServletContext()).willReturn(new MockServletContext());
HttpServletRequest request = new MockHttpServletRequest();
HttpServletResponse response = new MockHttpServletResponse();
@@ -169,14 +154,11 @@ public class BaseViewTests extends TestCase {
assertTrue(tv.model.get("something").equals("else"));
assertTrue(tv.inited);
verify(wac);
}
public void testDynamicModelOverridesPathVariables() throws Exception {
WebApplicationContext wac = createMock(WebApplicationContext.class);
wac.getServletContext();
expectLastCall().andReturn(new MockServletContext());
replay(wac);
WebApplicationContext wac = mock(WebApplicationContext.class);
given(wac.getServletContext()).willReturn(new MockServletContext());
TestView tv = new TestView(wac);
tv.setApplicationContext(wac);
@@ -202,7 +184,6 @@ public class BaseViewTests extends TestCase {
assertTrue(tv.model.get("something").equals("else"));
assertTrue(tv.inited);
verify(wac);
}
public void testIgnoresNullAttributes() {

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2013 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,15 +16,6 @@
package org.springframework.web.servlet.view;
import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -53,6 +44,9 @@ import org.springframework.web.servlet.HandlerMapping;
import org.springframework.web.servlet.View;
import org.springframework.web.servlet.ViewResolver;
import static org.junit.Assert.*;
import static org.mockito.BDDMockito.*;
/**
* @author Arjen Poutsma
*/
@@ -92,25 +86,21 @@ public class ContentNegotiatingViewResolverTests {
public void resolveViewNameWithPathExtension() throws Exception {
request.setRequestURI("/test.xls");
ViewResolver viewResolverMock = createMock(ViewResolver.class);
ViewResolver viewResolverMock = mock(ViewResolver.class);
viewResolver.setViewResolvers(Collections.singletonList(viewResolverMock));
viewResolver.afterPropertiesSet();
View viewMock = createMock("application_xls", View.class);
View viewMock = mock(View.class, "application_xls");
String viewName = "view";
Locale locale = Locale.ENGLISH;
expect(viewResolverMock.resolveViewName(viewName, locale)).andReturn(null);
expect(viewResolverMock.resolveViewName(viewName + ".xls", locale)).andReturn(viewMock);
expect(viewMock.getContentType()).andReturn("application/vnd.ms-excel").anyTimes();
replay(viewResolverMock, viewMock);
given(viewResolverMock.resolveViewName(viewName, locale)).willReturn(null);
given(viewResolverMock.resolveViewName(viewName + ".xls", locale)).willReturn(viewMock);
given(viewMock.getContentType()).willReturn("application/vnd.ms-excel");
View result = viewResolver.resolveViewName(viewName, locale);
assertSame("Invalid view", viewMock, result);
verify(viewResolverMock, viewMock);
}
@Test
@@ -123,23 +113,20 @@ public class ContentNegotiatingViewResolverTests {
manager.addFileExtensionResolvers(extensionsResolver);
viewResolver.setContentNegotiationManager(manager);
ViewResolver viewResolverMock = createMock(ViewResolver.class);
ViewResolver viewResolverMock = mock(ViewResolver.class);
viewResolver.setViewResolvers(Collections.singletonList(viewResolverMock));
View viewMock = createMock("application_xls", View.class);
View viewMock = mock(View.class, "application_xls");
String viewName = "view";
Locale locale = Locale.ENGLISH;
expect(viewResolverMock.resolveViewName(viewName, locale)).andReturn(null);
expect(viewResolverMock.resolveViewName(viewName + ".xls", locale)).andReturn(viewMock);
expect(viewMock.getContentType()).andReturn("application/vnd.ms-excel").anyTimes();
replay(viewResolverMock, viewMock);
given(viewResolverMock.resolveViewName(viewName, locale)).willReturn(null);
given(viewResolverMock.resolveViewName(viewName + ".xls", locale)).willReturn(viewMock);
given(viewMock.getContentType()).willReturn("application/vnd.ms-excel");
View result = viewResolver.resolveViewName(viewName, locale);
assertSame("Invalid view", viewMock, result);
verify(viewResolverMock, viewMock);
}
@Test
@@ -159,26 +146,21 @@ public class ContentNegotiatingViewResolverTests {
ParameterContentNegotiationStrategy paramStrategy = new ParameterContentNegotiationStrategy(mapping);
viewResolver.setContentNegotiationManager(new ContentNegotiationManager(paramStrategy));
ViewResolver viewResolverMock = createMock(ViewResolver.class);
ViewResolver viewResolverMock = mock(ViewResolver.class);
viewResolver.setViewResolvers(Collections.singletonList(viewResolverMock));
viewResolver.afterPropertiesSet();
View viewMock = createMock("application_xls", View.class);
View viewMock = mock(View.class, "application_xls");
String viewName = "view";
Locale locale = Locale.ENGLISH;
expect(viewResolverMock.resolveViewName(viewName, locale)).andReturn(null);
expect(viewResolverMock.resolveViewName(viewName + ".xls", locale)).andReturn(viewMock);
expect(viewMock.getContentType()).andReturn("application/vnd.ms-excel").anyTimes();
replay(viewResolverMock, viewMock);
given(viewResolverMock.resolveViewName(viewName, locale)).willReturn(null);
given(viewResolverMock.resolveViewName(viewName + ".xls", locale)).willReturn(viewMock);
given(viewMock.getContentType()).willReturn("application/vnd.ms-excel");
View result = viewResolver.resolveViewName(viewName, locale);
assertSame("Invalid view", viewMock, result);
verify(viewResolverMock, viewMock);
}
@Test
@@ -189,58 +171,49 @@ public class ContentNegotiatingViewResolverTests {
FixedContentNegotiationStrategy fixedStrategy = new FixedContentNegotiationStrategy(mediaType);
viewResolver.setContentNegotiationManager(new ContentNegotiationManager(fixedStrategy));
ViewResolver viewResolverMock1 = createMock("viewResolver1", ViewResolver.class);
ViewResolver viewResolverMock2 = createMock("viewResolver2", ViewResolver.class);
ViewResolver viewResolverMock1 = mock(ViewResolver.class, "viewResolver1");
ViewResolver viewResolverMock2 = mock(ViewResolver.class, "viewResolver2");
viewResolver.setViewResolvers(Arrays.asList(viewResolverMock1, viewResolverMock2));
viewResolver.afterPropertiesSet();
View viewMock1 = createMock("application_xml", View.class);
View viewMock2 = createMock("text_html", View.class);
View viewMock1 = mock(View.class, "application_xml");
View viewMock2 = mock(View.class, "text_html");
String viewName = "view";
Locale locale = Locale.ENGLISH;
expect(viewResolverMock1.resolveViewName(viewName, locale)).andReturn(viewMock1);
expect(viewResolverMock2.resolveViewName(viewName, locale)).andReturn(viewMock2);
expect(viewMock1.getContentType()).andReturn("application/xml").anyTimes();
expect(viewMock2.getContentType()).andReturn("text/html;charset=ISO-8859-1").anyTimes();
replay(viewResolverMock1, viewResolverMock2, viewMock1, viewMock2);
given(viewResolverMock1.resolveViewName(viewName, locale)).willReturn(viewMock1);
given(viewResolverMock2.resolveViewName(viewName, locale)).willReturn(viewMock2);
given(viewMock1.getContentType()).willReturn("application/xml");
given(viewMock2.getContentType()).willReturn("text/html;charset=ISO-8859-1");
View result = viewResolver.resolveViewName(viewName, locale);
assertSame("Invalid view", viewMock1, result);
verify(viewResolverMock1, viewResolverMock2, viewMock1, viewMock2);
}
@Test
public void resolveViewNameAcceptHeader() throws Exception {
request.addHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
ViewResolver viewResolverMock1 = createMock(ViewResolver.class);
ViewResolver viewResolverMock2 = createMock(ViewResolver.class);
ViewResolver viewResolverMock1 = mock(ViewResolver.class);
ViewResolver viewResolverMock2 = mock(ViewResolver.class);
viewResolver.setViewResolvers(Arrays.asList(viewResolverMock1, viewResolverMock2));
viewResolver.afterPropertiesSet();
View viewMock1 = createMock("application_xml", View.class);
View viewMock2 = createMock("text_html", View.class);
View viewMock1 = mock(View.class, "application_xml");
View viewMock2 = mock(View.class, "text_html");
String viewName = "view";
Locale locale = Locale.ENGLISH;
expect(viewResolverMock1.resolveViewName(viewName, locale)).andReturn(viewMock1);
expect(viewResolverMock2.resolveViewName(viewName, locale)).andReturn(viewMock2);
expect(viewMock1.getContentType()).andReturn("application/xml").anyTimes();
expect(viewMock2.getContentType()).andReturn("text/html;charset=ISO-8859-1").anyTimes();
replay(viewResolverMock1, viewResolverMock2, viewMock1, viewMock2);
given(viewResolverMock1.resolveViewName(viewName, locale)).willReturn(viewMock1);
given(viewResolverMock2.resolveViewName(viewName, locale)).willReturn(viewMock2);
given(viewMock1.getContentType()).willReturn("application/xml");
given(viewMock2.getContentType()).willReturn("text/html;charset=ISO-8859-1");
View result = viewResolver.resolveViewName(viewName, locale);
assertSame("Invalid view", viewMock2, result);
verify(viewResolverMock1, viewResolverMock2, viewMock1, viewMock2);
}
// SPR-9160
@@ -251,26 +224,23 @@ public class ContentNegotiatingViewResolverTests {
viewResolver.setContentNegotiationManager(new ContentNegotiationManager(new HeaderContentNegotiationStrategy()));
ViewResolver htmlViewResolver = createMock(ViewResolver.class);
ViewResolver jsonViewResolver = createMock(ViewResolver.class);
ViewResolver htmlViewResolver = mock(ViewResolver.class);
ViewResolver jsonViewResolver = mock(ViewResolver.class);
viewResolver.setViewResolvers(Arrays.asList(htmlViewResolver, jsonViewResolver));
View htmlView = createMock("text_html", View.class);
View jsonViewMock = createMock("application_json", View.class);
View htmlView = mock(View.class, "text_html");
View jsonViewMock = mock(View.class, "application_json");
String viewName = "view";
Locale locale = Locale.ENGLISH;
expect(htmlViewResolver.resolveViewName(viewName, locale)).andReturn(htmlView);
expect(jsonViewResolver.resolveViewName(viewName, locale)).andReturn(jsonViewMock);
expect(htmlView.getContentType()).andReturn("text/html").anyTimes();
expect(jsonViewMock.getContentType()).andReturn("application/json").anyTimes();
replay(htmlViewResolver, jsonViewResolver, htmlView, jsonViewMock);
given(htmlViewResolver.resolveViewName(viewName, locale)).willReturn(htmlView);
given(jsonViewResolver.resolveViewName(viewName, locale)).willReturn(jsonViewMock);
given(htmlView.getContentType()).willReturn("text/html");
given(jsonViewMock.getContentType()).willReturn("application/json");
View result = viewResolver.resolveViewName(viewName, locale);
assertSame("Invalid view", jsonViewMock, result);
verify(htmlViewResolver, jsonViewResolver, htmlView, jsonViewMock);
}
// SPR-9807
@@ -279,40 +249,36 @@ public class ContentNegotiatingViewResolverTests {
public void resolveViewNameAcceptHeaderWithSuffix() throws Exception {
request.addHeader("Accept", "application/vnd.example-v2+xml");
ViewResolver viewResolverMock = createMock(ViewResolver.class);
ViewResolver viewResolverMock = mock(ViewResolver.class);
viewResolver.setViewResolvers(Arrays.asList(viewResolverMock));
viewResolver.afterPropertiesSet();
View viewMock = createMock("application_xml", View.class);
View viewMock = mock(View.class, "application_xml");
String viewName = "view";
Locale locale = Locale.ENGLISH;
expect(viewResolverMock.resolveViewName(viewName, locale)).andReturn(viewMock);
expect(viewMock.getContentType()).andReturn("application/*+xml").anyTimes();
replay(viewResolverMock, viewMock);
given(viewResolverMock.resolveViewName(viewName, locale)).willReturn(viewMock);
given(viewMock.getContentType()).willReturn("application/*+xml");
View result = viewResolver.resolveViewName(viewName, locale);
assertSame("Invalid view", viewMock, result);
assertEquals(new MediaType("application", "vnd.example-v2+xml"), request.getAttribute(View.SELECTED_CONTENT_TYPE));
verify(viewResolverMock, viewMock);
}
@Test
public void resolveViewNameAcceptHeaderDefaultView() throws Exception {
request.addHeader("Accept", "application/json");
ViewResolver viewResolverMock1 = createMock(ViewResolver.class);
ViewResolver viewResolverMock2 = createMock(ViewResolver.class);
ViewResolver viewResolverMock1 = mock(ViewResolver.class);
ViewResolver viewResolverMock2 = mock(ViewResolver.class);
viewResolver.setViewResolvers(Arrays.asList(viewResolverMock1, viewResolverMock2));
View viewMock1 = createMock("application_xml", View.class);
View viewMock2 = createMock("text_html", View.class);
View viewMock3 = createMock("application_json", View.class);
View viewMock1 = mock(View.class, "application_xml");
View viewMock2 = mock(View.class, "text_html");
View viewMock3 = mock(View.class, "application_json");
List<View> defaultViews = new ArrayList<View>();
defaultViews.add(viewMock3);
@@ -323,49 +289,41 @@ public class ContentNegotiatingViewResolverTests {
String viewName = "view";
Locale locale = Locale.ENGLISH;
expect(viewResolverMock1.resolveViewName(viewName, locale)).andReturn(viewMock1);
expect(viewResolverMock2.resolveViewName(viewName, locale)).andReturn(viewMock2);
expect(viewMock1.getContentType()).andReturn("application/xml").anyTimes();
expect(viewMock2.getContentType()).andReturn("text/html;charset=ISO-8859-1").anyTimes();
expect(viewMock3.getContentType()).andReturn("application/json").anyTimes();
replay(viewResolverMock1, viewResolverMock2, viewMock1, viewMock2, viewMock3);
given(viewResolverMock1.resolveViewName(viewName, locale)).willReturn(viewMock1);
given(viewResolverMock2.resolveViewName(viewName, locale)).willReturn(viewMock2);
given(viewMock1.getContentType()).willReturn("application/xml");
given(viewMock2.getContentType()).willReturn("text/html;charset=ISO-8859-1");
given(viewMock3.getContentType()).willReturn("application/json");
View result = viewResolver.resolveViewName(viewName, locale);
assertSame("Invalid view", viewMock3, result);
verify(viewResolverMock1, viewResolverMock2, viewMock1, viewMock2, viewMock3);
}
@Test
public void resolveViewNameFilename() throws Exception {
request.setRequestURI("/test.html");
ViewResolver viewResolverMock1 = createMock("viewResolver1", ViewResolver.class);
ViewResolver viewResolverMock2 = createMock("viewResolver2", ViewResolver.class);
ViewResolver viewResolverMock1 = mock(ViewResolver.class, "viewResolver1");
ViewResolver viewResolverMock2 = mock(ViewResolver.class, "viewResolver2");
viewResolver.setViewResolvers(Arrays.asList(viewResolverMock1, viewResolverMock2));
viewResolver.afterPropertiesSet();
View viewMock1 = createMock("application_xml", View.class);
View viewMock2 = createMock("text_html", View.class);
View viewMock1 = mock(View.class, "application_xml");
View viewMock2 = mock(View.class, "text_html");
String viewName = "view";
Locale locale = Locale.ENGLISH;
expect(viewResolverMock1.resolveViewName(viewName, locale)).andReturn(viewMock1);
expect(viewResolverMock1.resolveViewName(viewName + ".html", locale)).andReturn(null);
expect(viewResolverMock2.resolveViewName(viewName, locale)).andReturn(null);
expect(viewResolverMock2.resolveViewName(viewName + ".html", locale)).andReturn(viewMock2);
expect(viewMock1.getContentType()).andReturn("application/xml").anyTimes();
expect(viewMock2.getContentType()).andReturn("text/html;charset=ISO-8859-1").anyTimes();
replay(viewResolverMock1, viewResolverMock2, viewMock1, viewMock2);
given(viewResolverMock1.resolveViewName(viewName, locale)).willReturn(viewMock1);
given(viewResolverMock1.resolveViewName(viewName + ".html", locale)).willReturn(null);
given(viewResolverMock2.resolveViewName(viewName, locale)).willReturn(null);
given(viewResolverMock2.resolveViewName(viewName + ".html", locale)).willReturn(viewMock2);
given(viewMock1.getContentType()).willReturn("application/xml");
given(viewMock2.getContentType()).willReturn("text/html;charset=ISO-8859-1");
View result = viewResolver.resolveViewName(viewName, locale);
assertSame("Invalid view", viewMock2, result);
verify(viewResolverMock1, viewResolverMock2, viewMock1, viewMock2);
}
@Test
@@ -376,13 +334,13 @@ public class ContentNegotiatingViewResolverTests {
PathExtensionContentNegotiationStrategy pathStrategy = new PathExtensionContentNegotiationStrategy(mapping);
viewResolver.setContentNegotiationManager(new ContentNegotiationManager(pathStrategy));
ViewResolver viewResolverMock1 = createMock(ViewResolver.class);
ViewResolver viewResolverMock2 = createMock(ViewResolver.class);
ViewResolver viewResolverMock1 = mock(ViewResolver.class);
ViewResolver viewResolverMock2 = mock(ViewResolver.class);
viewResolver.setViewResolvers(Arrays.asList(viewResolverMock1, viewResolverMock2));
View viewMock1 = createMock("application_xml", View.class);
View viewMock2 = createMock("text_html", View.class);
View viewMock3 = createMock("application_json", View.class);
View viewMock1 = mock(View.class, "application_xml");
View viewMock2 = mock(View.class, "text_html");
View viewMock3 = mock(View.class, "application_json");
List<View> defaultViews = new ArrayList<View>();
defaultViews.add(viewMock3);
@@ -393,45 +351,37 @@ public class ContentNegotiatingViewResolverTests {
String viewName = "view";
Locale locale = Locale.ENGLISH;
expect(viewResolverMock1.resolveViewName(viewName, locale)).andReturn(viewMock1);
expect(viewResolverMock1.resolveViewName(viewName + ".json", locale)).andReturn(null);
expect(viewResolverMock2.resolveViewName(viewName, locale)).andReturn(viewMock2);
expect(viewResolverMock2.resolveViewName(viewName + ".json", locale)).andReturn(null);
expect(viewMock1.getContentType()).andReturn("application/xml").anyTimes();
expect(viewMock2.getContentType()).andReturn("text/html;charset=ISO-8859-1").anyTimes();
expect(viewMock3.getContentType()).andReturn("application/json").anyTimes();
replay(viewResolverMock1, viewResolverMock2, viewMock1, viewMock2, viewMock3);
given(viewResolverMock1.resolveViewName(viewName, locale)).willReturn(viewMock1);
given(viewResolverMock1.resolveViewName(viewName + ".json", locale)).willReturn(null);
given(viewResolverMock2.resolveViewName(viewName, locale)).willReturn(viewMock2);
given(viewResolverMock2.resolveViewName(viewName + ".json", locale)).willReturn(null);
given(viewMock1.getContentType()).willReturn("application/xml");
given(viewMock2.getContentType()).willReturn("text/html;charset=ISO-8859-1");
given(viewMock3.getContentType()).willReturn("application/json");
View result = viewResolver.resolveViewName(viewName, locale);
assertSame("Invalid view", viewMock3, result);
verify(viewResolverMock1, viewResolverMock2, viewMock1, viewMock2, viewMock3);
}
@Test
public void resolveViewContentTypeNull() throws Exception {
request.addHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
ViewResolver viewResolverMock = createMock(ViewResolver.class);
ViewResolver viewResolverMock = mock(ViewResolver.class);
viewResolver.setViewResolvers(Collections.singletonList(viewResolverMock));
viewResolver.afterPropertiesSet();
View viewMock = createMock("application_xml", View.class);
View viewMock = mock(View.class, "application_xml");
String viewName = "view";
Locale locale = Locale.ENGLISH;
expect(viewResolverMock.resolveViewName(viewName, locale)).andReturn(viewMock);
expect(viewMock.getContentType()).andReturn(null).anyTimes();
replay(viewResolverMock, viewMock);
given(viewResolverMock.resolveViewName(viewName, locale)).willReturn(viewMock);
given(viewMock.getContentType()).willReturn(null);
View result = viewResolver.resolveViewName(viewName, locale);
assertNull("Invalid view", result);
verify(viewResolverMock, viewMock);
}
@Test
@@ -445,11 +395,11 @@ public class ContentNegotiatingViewResolverTests {
UrlBasedViewResolver urlViewResolver = new InternalResourceViewResolver();
urlViewResolver.setApplicationContext(webAppContext);
ViewResolver xmlViewResolver = createMock(ViewResolver.class);
ViewResolver xmlViewResolver = mock(ViewResolver.class);
viewResolver.setViewResolvers(Arrays.<ViewResolver>asList(xmlViewResolver, urlViewResolver));
View xmlView = createMock("application_xml", View.class);
View jsonView = createMock("application_json", View.class);
View xmlView = mock(View.class, "application_xml");
View jsonView = mock(View.class, "application_json");
viewResolver.setDefaultViews(Arrays.asList(jsonView));
viewResolver.afterPropertiesSet();
@@ -457,40 +407,32 @@ public class ContentNegotiatingViewResolverTests {
String viewName = "redirect:anotherTest";
Locale locale = Locale.ENGLISH;
expect(xmlViewResolver.resolveViewName(viewName, locale)).andReturn(xmlView);
expect(jsonView.getContentType()).andReturn("application/json").anyTimes();
replay(xmlViewResolver, xmlView, jsonView);
given(xmlViewResolver.resolveViewName(viewName, locale)).willReturn(xmlView);
given(jsonView.getContentType()).willReturn("application/json");
View actualView = viewResolver.resolveViewName(viewName, locale);
assertEquals("Invalid view", RedirectView.class, actualView.getClass());
verify(xmlViewResolver, xmlView, jsonView);
}
@Test
public void resolveViewNoMatch() throws Exception {
request.addHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9");
ViewResolver viewResolverMock = createMock(ViewResolver.class);
ViewResolver viewResolverMock = mock(ViewResolver.class);
viewResolver.setViewResolvers(Collections.singletonList(viewResolverMock));
viewResolver.afterPropertiesSet();
View viewMock = createMock("application_xml", View.class);
View viewMock = mock(View.class, "application_xml");
String viewName = "view";
Locale locale = Locale.ENGLISH;
expect(viewResolverMock.resolveViewName(viewName, locale)).andReturn(viewMock);
expect(viewMock.getContentType()).andReturn("application/pdf").anyTimes();
replay(viewResolverMock, viewMock);
given(viewResolverMock.resolveViewName(viewName, locale)).willReturn(viewMock);
given(viewMock.getContentType()).willReturn("application/pdf");
View result = viewResolver.resolveViewName(viewName, locale);
assertNull("Invalid view", result);
verify(viewResolverMock, viewMock);
}
@Test
@@ -498,28 +440,24 @@ public class ContentNegotiatingViewResolverTests {
viewResolver.setUseNotAcceptableStatusCode(true);
request.addHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9");
ViewResolver viewResolverMock = createMock(ViewResolver.class);
ViewResolver viewResolverMock = mock(ViewResolver.class);
viewResolver.setViewResolvers(Collections.singletonList(viewResolverMock));
viewResolver.afterPropertiesSet();
View viewMock = createMock("application_xml", View.class);
View viewMock = mock(View.class, "application_xml");
String viewName = "view";
Locale locale = Locale.ENGLISH;
expect(viewResolverMock.resolveViewName(viewName, locale)).andReturn(viewMock);
expect(viewMock.getContentType()).andReturn("application/pdf").anyTimes();
replay(viewResolverMock, viewMock);
given(viewResolverMock.resolveViewName(viewName, locale)).willReturn(viewMock);
given(viewMock.getContentType()).willReturn("application/pdf");
View result = viewResolver.resolveViewName(viewName, locale);
assertNotNull("Invalid view", result);
MockHttpServletResponse response = new MockHttpServletResponse();
result.render(null, request, response);
assertEquals("Invalid status code set", 406, response.getStatus());
verify(viewResolverMock, viewMock);
}
@Test

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2013 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,11 +16,6 @@
package org.springframework.web.servlet.view;
import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.expectLastCall;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
@@ -36,6 +31,8 @@ import org.springframework.mock.web.test.MockServletContext;
import org.springframework.web.servlet.View;
import org.springframework.web.util.WebUtils;
import static org.mockito.BDDMockito.*;
/**
* @author Rod Johnson
* @author Juergen Hoeller
@@ -150,19 +147,9 @@ public class InternalResourceViewTests extends TestCase {
String url = "forward-to";
HttpServletRequest request = createMock(HttpServletRequest.class);
request.getAttribute(View.PATH_VARIABLES);
expectLastCall().andReturn(null);
Set<String> keys = model.keySet();
for (Iterator<String> iter = keys.iterator(); iter.hasNext();) {
String key = iter.next();
request.setAttribute(key, model.get(key));
expectLastCall().times(1);
}
request.getRequestDispatcher(url);
expectLastCall().andReturn(new MockRequestDispatcher(url));
replay(request);
HttpServletRequest request = mock(HttpServletRequest.class);
given(request.getAttribute(View.PATH_VARIABLES)).willReturn(null);
given(request.getRequestDispatcher(url)).willReturn(new MockRequestDispatcher(url));
MockHttpServletResponse response = new MockHttpServletResponse();
InternalResourceView v = new InternalResourceView();
@@ -172,7 +159,12 @@ public class InternalResourceViewTests extends TestCase {
// Can now try multiple tests
v.render(model, request, response);
assertEquals(url, response.getIncludedUrl());
verify(request);
Set<String> keys = model.keySet();
for (Iterator<String> iter = keys.iterator(); iter.hasNext();) {
String key = iter.next();
verify(request).setAttribute(key, model.get(key));
}
}
public void testIncludeOnAttribute() throws Exception {
@@ -183,21 +175,11 @@ public class InternalResourceViewTests extends TestCase {
String url = "forward-to";
HttpServletRequest request = createMock(HttpServletRequest.class);
request.getAttribute(View.PATH_VARIABLES);
expectLastCall().andReturn(null);
Set<String> keys = model.keySet();
for (Iterator<String> iter = keys.iterator(); iter.hasNext();) {
String key = iter.next();
request.setAttribute(key, model.get(key));
expectLastCall().times(1);
}
HttpServletRequest request = mock(HttpServletRequest.class);
given(request.getAttribute(View.PATH_VARIABLES)).willReturn(null);
request.getAttribute(WebUtils.INCLUDE_REQUEST_URI_ATTRIBUTE);
expectLastCall().andReturn("somepath");
request.getRequestDispatcher(url);
expectLastCall().andReturn(new MockRequestDispatcher(url));
replay(request);
given(request.getAttribute(WebUtils.INCLUDE_REQUEST_URI_ATTRIBUTE)).willReturn("somepath");
given(request.getRequestDispatcher(url)).willReturn(new MockRequestDispatcher(url));
MockHttpServletResponse response = new MockHttpServletResponse();
InternalResourceView v = new InternalResourceView();
@@ -206,7 +188,12 @@ public class InternalResourceViewTests extends TestCase {
// Can now try multiple tests
v.render(model, request, response);
assertEquals(url, response.getIncludedUrl());
verify(request);
Set<String> keys = model.keySet();
for (Iterator<String> iter = keys.iterator(); iter.hasNext();) {
String key = iter.next();
verify(request).setAttribute(key, model.get(key));
}
}
public void testIncludeOnCommitted() throws Exception {
@@ -217,21 +204,11 @@ public class InternalResourceViewTests extends TestCase {
String url = "forward-to";
HttpServletRequest request = createMock(HttpServletRequest.class);
request.getAttribute(View.PATH_VARIABLES);
expectLastCall().andReturn(null);
Set<String> keys = model.keySet();
for (Iterator<String> iter = keys.iterator(); iter.hasNext();) {
String key = iter.next();
request.setAttribute(key, model.get(key));
expectLastCall().times(1);
}
HttpServletRequest request = mock(HttpServletRequest.class);
given(request.getAttribute(View.PATH_VARIABLES)).willReturn(null);
request.getAttribute(WebUtils.INCLUDE_REQUEST_URI_ATTRIBUTE);
expectLastCall().andReturn(null);
request.getRequestDispatcher(url);
expectLastCall().andReturn(new MockRequestDispatcher(url));
replay(request);
given(request.getAttribute(WebUtils.INCLUDE_REQUEST_URI_ATTRIBUTE)).willReturn(null);
given(request.getRequestDispatcher(url)).willReturn(new MockRequestDispatcher(url));
MockHttpServletResponse response = new MockHttpServletResponse();
response.setCommitted(true);
@@ -241,7 +218,12 @@ public class InternalResourceViewTests extends TestCase {
// Can now try multiple tests
v.render(model, request, response);
assertEquals(url, response.getIncludedUrl());
verify(request);
Set<String> keys = model.keySet();
for (Iterator<String> iter = keys.iterator(); iter.hasNext();) {
String key = iter.next();
verify(request).setAttribute(key, model.get(key));
}
}
}

View File

@@ -16,14 +16,6 @@
package org.springframework.web.servlet.view;
import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.createNiceMock;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -34,13 +26,12 @@ import javax.servlet.http.HttpServletResponse;
import junit.framework.AssertionFailedError;
import org.easymock.EasyMock;
import org.junit.Test;
import org.springframework.tests.sample.beans.TestBean;
import org.springframework.http.HttpStatus;
import org.springframework.mock.web.test.MockHttpServletRequest;
import org.springframework.mock.web.test.MockHttpServletResponse;
import org.springframework.mock.web.test.MockServletContext;
import org.springframework.tests.sample.beans.TestBean;
import org.springframework.ui.ModelMap;
import org.springframework.web.context.ContextLoader;
import org.springframework.web.context.support.StaticWebApplicationContext;
@@ -53,6 +44,9 @@ import org.springframework.web.servlet.support.RequestDataValueProcessorWrapper;
import org.springframework.web.servlet.support.SessionFlashMapManager;
import org.springframework.web.util.WebUtils;
import static org.junit.Assert.*;
import static org.mockito.BDDMockito.*;
/**
* Tests for redirect view, and query string construction.
* Doesn't test URL encoding, although it does check that it's called.
@@ -156,7 +150,7 @@ public class RedirectViewTests {
wac.setServletContext(new MockServletContext());
wac.refresh();
RequestDataValueProcessor mockProcessor = createMock(RequestDataValueProcessor.class);
RequestDataValueProcessor mockProcessor = mock(RequestDataValueProcessor.class);
wac.getBean(RequestDataValueProcessorWrapper.class).setRequestDataValueProcessor(mockProcessor);
RedirectView rv = new RedirectView();
@@ -167,12 +161,11 @@ public class RedirectViewTests {
request.setAttribute(DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE, wac);
HttpServletResponse response = new MockHttpServletResponse();
EasyMock.expect(mockProcessor.processUrl(request, "/path")).andReturn("/path?key=123");
EasyMock.replay(mockProcessor);
given(mockProcessor.processUrl(request, "/path")).willReturn("/path?key=123");
rv.render(new ModelMap(), request, response);
EasyMock.verify(mockProcessor);
verify(mockProcessor).processUrl(request, "/path");
}
@@ -186,7 +179,7 @@ public class RedirectViewTests {
contextLoader.initWebApplicationContext(servletContext);
try {
RequestDataValueProcessor mockProcessor = createMock(RequestDataValueProcessor.class);
RequestDataValueProcessor mockProcessor = mock(RequestDataValueProcessor.class);
wac.getBean(RequestDataValueProcessorWrapper.class).setRequestDataValueProcessor(mockProcessor);
RedirectView rv = new RedirectView();
@@ -195,12 +188,11 @@ public class RedirectViewTests {
MockHttpServletRequest request = createRequest();
HttpServletResponse response = new MockHttpServletResponse();
EasyMock.expect(mockProcessor.processUrl(request, "/path")).andReturn("/path?key=123");
EasyMock.replay(mockProcessor);
given(mockProcessor.processUrl(request, "/path")).willReturn("/path?key=123");
rv.render(new ModelMap(), request, response);
EasyMock.verify(mockProcessor);
verify(mockProcessor).processUrl(request, "/path");
}
finally {
contextLoader.closeWebApplicationContext(servletContext);
@@ -363,32 +355,28 @@ public class RedirectViewTests {
rv.setContextRelative(contextRelative);
rv.setExposeModelAttributes(exposeModelAttributes);
HttpServletRequest request = createNiceMock("request", HttpServletRequest.class);
HttpServletRequest request = mock(HttpServletRequest.class, "request");
if (exposeModelAttributes) {
expect(request.getCharacterEncoding()).andReturn(WebUtils.DEFAULT_CHARACTER_ENCODING);
given(request.getCharacterEncoding()).willReturn(WebUtils.DEFAULT_CHARACTER_ENCODING);
}
if (contextRelative) {
expectedUrlForEncoding = "/context" + expectedUrlForEncoding;
expect(request.getContextPath()).andReturn("/context");
given(request.getContextPath()).willReturn("/context");
}
expect(request.getAttribute(DispatcherServlet.OUTPUT_FLASH_MAP_ATTRIBUTE)).andReturn(new FlashMap());
given(request.getAttribute(DispatcherServlet.OUTPUT_FLASH_MAP_ATTRIBUTE)).willReturn(new FlashMap());
FlashMapManager flashMapManager = new SessionFlashMapManager();
expect(request.getAttribute(DispatcherServlet.FLASH_MAP_MANAGER_ATTRIBUTE)).andReturn(flashMapManager);
given(request.getAttribute(DispatcherServlet.FLASH_MAP_MANAGER_ATTRIBUTE)).willReturn(flashMapManager);
HttpServletResponse response = createMock("response", HttpServletResponse.class);
expect(response.encodeRedirectURL(expectedUrlForEncoding)).andReturn(expectedUrlForEncoding);
HttpServletResponse response = mock(HttpServletResponse.class, "response");
given(response.encodeRedirectURL(expectedUrlForEncoding)).willReturn(expectedUrlForEncoding);
response.sendRedirect(expectedUrlForEncoding);
replay(request, response);
rv.render(map, request, response);
if (exposeModelAttributes) {
assertTrue("queryProperties() should have been called.", rv.queryPropertiesCalled);
}
verify(request, response);
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2013 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.
@@ -23,16 +23,10 @@ import java.io.Writer;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import freemarker.ext.servlet.AllHttpScopesHashModel;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import org.easymock.MockControl;
import static org.junit.Assert.*;
import org.junit.Test;
import org.springframework.context.ApplicationContextException;
import org.springframework.mock.web.test.MockHttpServletRequest;
import org.springframework.mock.web.test.MockHttpServletResponse;
@@ -46,6 +40,14 @@ import org.springframework.web.servlet.view.AbstractView;
import org.springframework.web.servlet.view.InternalResourceView;
import org.springframework.web.servlet.view.RedirectView;
import freemarker.ext.servlet.AllHttpScopesHashModel;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import static org.junit.Assert.*;
import static org.mockito.BDDMockito.*;
/**
* @author Juergen Hoeller
* @since 14.03.2004
@@ -56,15 +58,9 @@ public class FreeMarkerViewTests {
public void testNoFreeMarkerConfig() throws Exception {
FreeMarkerView fv = new FreeMarkerView();
MockControl wmc = MockControl.createControl(WebApplicationContext.class);
WebApplicationContext wac = (WebApplicationContext) wmc.getMock();
wac.getBeansOfType(FreeMarkerConfig.class, true, false);
wmc.setReturnValue(new HashMap());
wac.getParentBeanFactory();
wmc.setReturnValue(null);
wac.getServletContext();
wmc.setReturnValue(new MockServletContext());
wmc.replay();
WebApplicationContext wac = mock(WebApplicationContext.class);
given(wac.getBeansOfType(FreeMarkerConfig.class, true, false)).willReturn(new HashMap<String, FreeMarkerConfig>());
given(wac.getServletContext()).willReturn(new MockServletContext());
fv.setUrl("anythingButNull");
try {
@@ -76,8 +72,6 @@ public class FreeMarkerViewTests {
// Check there's a helpful error message
assertTrue(ex.getMessage().indexOf("FreeMarkerConfig") != -1);
}
wmc.verify();
}
@Test
@@ -97,21 +91,15 @@ public class FreeMarkerViewTests {
public void testValidTemplateName() throws Exception {
FreeMarkerView fv = new FreeMarkerView();
MockControl wmc = MockControl.createNiceControl(WebApplicationContext.class);
WebApplicationContext wac = (WebApplicationContext) wmc.getMock();
WebApplicationContext wac = mock(WebApplicationContext.class);
MockServletContext sc = new MockServletContext();
wac.getBeansOfType(FreeMarkerConfig.class, true, false);
Map configs = new HashMap();
FreeMarkerConfigurer configurer = new FreeMarkerConfigurer();
configurer.setConfiguration(new TestConfiguration());
configs.put("configurer", configurer);
wmc.setReturnValue(configs);
wac.getParentBeanFactory();
wmc.setReturnValue(null);
wac.getServletContext();
wmc.setReturnValue(sc, 2);
wmc.replay();
given(wac.getBeansOfType(FreeMarkerConfig.class, true, false)).willReturn(configs);
given(wac.getServletContext()).willReturn(sc);
fv.setUrl("templateName");
fv.setApplicationContext(wac);
@@ -126,7 +114,6 @@ public class FreeMarkerViewTests {
model.put("myattr", "myvalue");
fv.render(model, request, response);
wmc.verify();
assertEquals(AbstractView.DEFAULT_CONTENT_TYPE, response.getContentType());
}
@@ -134,21 +121,15 @@ public class FreeMarkerViewTests {
public void testKeepExistingContentType() throws Exception {
FreeMarkerView fv = new FreeMarkerView();
MockControl wmc = MockControl.createNiceControl(WebApplicationContext.class);
WebApplicationContext wac = (WebApplicationContext) wmc.getMock();
WebApplicationContext wac = mock(WebApplicationContext.class);
MockServletContext sc = new MockServletContext();
wac.getBeansOfType(FreeMarkerConfig.class, true, false);
Map configs = new HashMap();
FreeMarkerConfigurer configurer = new FreeMarkerConfigurer();
configurer.setConfiguration(new TestConfiguration());
configs.put("configurer", configurer);
wmc.setReturnValue(configs);
wac.getParentBeanFactory();
wmc.setReturnValue(null);
wac.getServletContext();
wmc.setReturnValue(sc, 2);
wmc.replay();
given(wac.getBeansOfType(FreeMarkerConfig.class, true, false)).willReturn(configs);
given(wac.getServletContext()).willReturn(sc);
fv.setUrl("templateName");
fv.setApplicationContext(wac);
@@ -164,7 +145,6 @@ public class FreeMarkerViewTests {
model.put("myattr", "myvalue");
fv.render(model, request, response);
wmc.verify();
assertEquals("myContentType", response.getContentType());
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2013 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.
@@ -32,15 +32,16 @@ import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.data.JRAbstractBeanDataSourceProvider;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import org.easymock.MockControl;
import org.junit.Ignore;
import org.junit.Ignore;
import org.springframework.context.ApplicationContextException;
import org.springframework.mock.web.test.MockServletContext;
import org.springframework.ui.jasperreports.PersonBean;
import org.springframework.web.context.support.StaticWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;
import static org.mockito.BDDMockito.*;
/**
* @author Rob Harrop
* @author Juergen Hoeller
@@ -372,11 +373,8 @@ public abstract class AbstractJasperReportsViewTests extends AbstractJasperRepor
}
private DataSource getMockJdbcDataSource() throws SQLException {
MockControl ctl = MockControl.createControl(DataSource.class);
DataSource ds = (DataSource) ctl.getMock();
ds.getConnection();
ctl.setThrowable(new SQLException());
ctl.replay();
DataSource ds = mock(DataSource.class);
given(ds.getConnection()).willThrow(new SQLException());
return ds;
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2013 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,13 +16,6 @@
package org.springframework.web.servlet.view.json;
import static org.easymock.EasyMock.createMock;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
@@ -56,6 +49,9 @@ import com.fasterxml.jackson.databind.ser.BeanSerializerFactory;
import com.fasterxml.jackson.databind.ser.SerializerFactory;
import com.fasterxml.jackson.databind.ser.Serializers;
import static org.junit.Assert.*;
import static org.mockito.BDDMockito.*;
/**
* @author Jeremy Grelle
* @author Arjen Poutsma
@@ -93,7 +89,7 @@ public class MappingJackson2JsonViewTests {
public void renderSimpleMap() throws Exception {
Map<String, Object> model = new HashMap<String, Object>();
model.put("bindingResult", createMock("binding_result", BindingResult.class));
model.put("bindingResult", mock(BindingResult.class, "binding_result"));
model.put("foo", "bar");
view.setUpdateContentLength(true);
@@ -133,7 +129,7 @@ public class MappingJackson2JsonViewTests {
view.setDisableCaching(false);
Map<String, Object> model = new HashMap<String, Object>();
model.put("bindingResult", createMock("binding_result", BindingResult.class));
model.put("bindingResult", mock(BindingResult.class, "binding_result"));
model.put("foo", "bar");
view.render(model, request, response);
@@ -154,7 +150,7 @@ public class MappingJackson2JsonViewTests {
Object bean = new TestBeanSimple();
Map<String, Object> model = new HashMap<String, Object>();
model.put("bindingResult", createMock("binding_result", BindingResult.class));
model.put("bindingResult", mock(BindingResult.class, "binding_result"));
model.put("foo", bean);
view.setUpdateContentLength(true);

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2013 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,13 +16,6 @@
package org.springframework.web.servlet.view.json;
import static org.easymock.EasyMock.createMock;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
@@ -48,6 +41,9 @@ import org.springframework.mock.web.test.MockHttpServletResponse;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import static org.junit.Assert.*;
import static org.mockito.BDDMockito.*;
/**
* @author Jeremy Grelle
* @author Arjen Poutsma
@@ -84,7 +80,7 @@ public class MappingJacksonJsonViewTests {
public void renderSimpleMap() throws Exception {
Map<String, Object> model = new HashMap<String, Object>();
model.put("bindingResult", createMock("binding_result", BindingResult.class));
model.put("bindingResult", mock(BindingResult.class, "binding_result"));
model.put("foo", "bar");
view.setUpdateContentLength(true);
@@ -108,7 +104,7 @@ public class MappingJacksonJsonViewTests {
view.setDisableCaching(false);
Map<String, Object> model = new HashMap<String, Object>();
model.put("bindingResult", createMock("binding_result", BindingResult.class));
model.put("bindingResult", mock(BindingResult.class, "binding_result"));
model.put("foo", "bar");
view.render(model, request, response);
@@ -129,7 +125,7 @@ public class MappingJacksonJsonViewTests {
Object bean = new TestBeanSimple();
Map<String, Object> model = new HashMap<String, Object>();
model.put("bindingResult", createMock("binding_result", BindingResult.class));
model.put("bindingResult", mock(BindingResult.class, "binding_result"));
model.put("foo", bean);
view.setUpdateContentLength(true);

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2013 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,15 +16,6 @@
package org.springframework.web.servlet.view.velocity;
import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.expectLastCall;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.io.IOException;
import java.util.HashMap;
import java.util.Locale;
@@ -53,6 +44,9 @@ import org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver;
import org.springframework.web.servlet.support.RequestDataValueProcessor;
import org.springframework.web.servlet.view.AbstractView;
import static org.junit.Assert.*;
import static org.mockito.BDDMockito.*;
/**
* @author Rod Johnson
* @author Juergen Hoeller
@@ -63,12 +57,8 @@ public class VelocityViewTests {
@Test
public void testNoVelocityConfig() throws Exception {
VelocityView vv = new VelocityView();
WebApplicationContext wac = createMock(WebApplicationContext.class);
wac.getBeansOfType(VelocityConfig.class, true, false);
expectLastCall().andReturn(new HashMap<String, Object>());
wac.getParentBeanFactory();
expectLastCall().andReturn(null);
replay(wac);
WebApplicationContext wac = mock(WebApplicationContext.class);
given(wac.getBeansOfType(VelocityConfig.class, true, false)).willReturn(new HashMap<String, VelocityConfig>());
vv.setUrl("anythingButNull");
try {
@@ -79,8 +69,6 @@ public class VelocityViewTests {
// Check there's a helpful error message
assertTrue(ex.getMessage().contains("VelocityConfig"));
}
verify(wac);
}
@Test
@@ -131,7 +119,7 @@ public class VelocityViewTests {
final String templateName = "test.vm";
WebApplicationContext wac = createMock(WebApplicationContext.class);
WebApplicationContext wac = mock(WebApplicationContext.class);
MockServletContext sc = new MockServletContext();
sc.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, wac);
@@ -142,17 +130,12 @@ public class VelocityViewTests {
return new TestVelocityEngine(templateName, expectedTemplate);
}
};
wac.getBeansOfType(VelocityConfig.class, true, false);
Map<String, Object> configurers = new HashMap<String, Object>();
Map<String, VelocityConfig> configurers = new HashMap<String, VelocityConfig>();
configurers.put("velocityConfigurer", vc);
expectLastCall().andReturn(configurers);
wac.getParentBeanFactory();
expectLastCall().andReturn(null);
wac.getServletContext();
expectLastCall().andReturn(sc).times(3);
wac.getBean("requestDataValueProcessor", RequestDataValueProcessor.class);
expectLastCall().andReturn(null);
replay(wac);
given(wac.getBeansOfType(VelocityConfig.class, true, false)).willReturn(configurers);
given(wac.getServletContext()).willReturn(sc);
given(wac.getBean("requestDataValueProcessor",
RequestDataValueProcessor.class)).willReturn(null);
HttpServletRequest request = new MockHttpServletRequest();
final HttpServletResponse expectedResponse = new MockHttpServletResponse();
@@ -182,15 +165,13 @@ public class VelocityViewTests {
assertNotNull(mergeTemplateFailureException);
assertEquals(ex, mergeTemplateFailureException);
}
verify(wac);
}
@Test
public void testKeepExistingContentType() throws Exception {
final String templateName = "test.vm";
WebApplicationContext wac = createMock(WebApplicationContext.class);
WebApplicationContext wac = mock(WebApplicationContext.class);
MockServletContext sc = new MockServletContext();
sc.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, wac);
@@ -201,17 +182,12 @@ public class VelocityViewTests {
return new TestVelocityEngine(templateName, expectedTemplate);
}
};
wac.getBeansOfType(VelocityConfig.class, true, false);
Map<String, Object> configurers = new HashMap<String, Object>();
Map<String, VelocityConfig> configurers = new HashMap<String, VelocityConfig>();
configurers.put("velocityConfigurer", vc);
expectLastCall().andReturn(configurers);
wac.getParentBeanFactory();
expectLastCall().andReturn(null);
wac.getServletContext();
expectLastCall().andReturn(sc).times(3);
wac.getBean("requestDataValueProcessor", RequestDataValueProcessor.class);
expectLastCall().andReturn(null);
replay(wac);
given(wac.getBeansOfType(VelocityConfig.class, true, false)).willReturn(configurers);
given(wac.getServletContext()).willReturn(sc);
given(wac.getBean("requestDataValueProcessor",
RequestDataValueProcessor.class)).willReturn(null);
HttpServletRequest request = new MockHttpServletRequest();
final HttpServletResponse expectedResponse = new MockHttpServletResponse();
@@ -233,7 +209,6 @@ public class VelocityViewTests {
vv.setApplicationContext(wac);
vv.render(new HashMap<String, Object>(), request, expectedResponse);
verify(wac);
assertEquals("myContentType", expectedResponse.getContentType());
}
@@ -241,11 +216,8 @@ public class VelocityViewTests {
public void testExposeHelpers() throws Exception {
final String templateName = "test.vm";
WebApplicationContext wac = createMock(WebApplicationContext.class);
wac.getParentBeanFactory();
expectLastCall().andReturn(null);
wac.getServletContext();
expectLastCall().andReturn(new MockServletContext());
WebApplicationContext wac = mock(WebApplicationContext.class);
given(wac.getServletContext()).willReturn(new MockServletContext());
final Template expectedTemplate = new Template();
VelocityConfig vc = new VelocityConfig() {
@@ -254,22 +226,16 @@ public class VelocityViewTests {
return new TestVelocityEngine(templateName, expectedTemplate);
}
};
wac.getBeansOfType(VelocityConfig.class, true, false);
Map<String, Object> configurers = new HashMap<String, Object>();
Map<String, VelocityConfig> configurers = new HashMap<String, VelocityConfig>();
configurers.put("velocityConfigurer", vc);
expectLastCall().andReturn(configurers);
replay(wac);
given(wac.getBeansOfType(VelocityConfig.class, true, false)).willReturn(configurers);
// let it ask for locale
HttpServletRequest req = createMock(HttpServletRequest.class);
req.getAttribute(View.PATH_VARIABLES);
expectLastCall().andReturn(null);
req.getAttribute(DispatcherServlet.LOCALE_RESOLVER_ATTRIBUTE);
expectLastCall().andReturn(new AcceptHeaderLocaleResolver());
req.getLocale();
expectLastCall().andReturn(Locale.CANADA);
replay(req);
HttpServletRequest req = mock(HttpServletRequest.class);
given(req.getAttribute(View.PATH_VARIABLES)).willReturn(null);
given(req.getAttribute(DispatcherServlet.LOCALE_RESOLVER_ATTRIBUTE)).willReturn(new AcceptHeaderLocaleResolver());
given(req.getLocale()).willReturn(Locale.CANADA);
final HttpServletResponse expectedResponse = new MockHttpServletResponse();
@@ -308,8 +274,6 @@ public class VelocityViewTests {
vv.render(new HashMap<String, Object>(), req, expectedResponse);
verify(wac);
verify(req);
assertEquals(AbstractView.DEFAULT_CONTENT_TYPE, expectedResponse.getContentType());
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2013 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.
@@ -18,18 +18,19 @@ package org.springframework.web.servlet.view.xml;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.xml.transform.stream.StreamResult;
import static org.easymock.EasyMock.*;
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
import org.springframework.mock.web.test.MockHttpServletRequest;
import org.springframework.mock.web.test.MockHttpServletResponse;
import org.springframework.oxm.Marshaller;
import static org.junit.Assert.*;
import static org.mockito.BDDMockito.*;
/**
* @author Arjen Poutsma
*/
@@ -41,7 +42,7 @@ public class MarshallingViewTests {
@Before
public void createView() throws Exception {
marshallerMock = createMock(Marshaller.class);
marshallerMock = mock(Marshaller.class);
view = new MarshallingView(marshallerMock);
}
@@ -71,14 +72,12 @@ public class MarshallingViewTests {
MockHttpServletRequest request = new MockHttpServletRequest();
MockHttpServletResponse response = new MockHttpServletResponse();
expect(marshallerMock.supports(Object.class)).andReturn(true);
given(marshallerMock.supports(Object.class)).willReturn(true);
marshallerMock.marshal(eq(toBeMarshalled), isA(StreamResult.class));
replay(marshallerMock);
view.render(model, request, response);
assertEquals("Invalid content type", "application/xml", response.getContentType());
assertEquals("Invalid content length", 0, response.getContentLength());
verify(marshallerMock);
}
@Test
@@ -92,7 +91,6 @@ public class MarshallingViewTests {
MockHttpServletRequest request = new MockHttpServletRequest();
MockHttpServletResponse response = new MockHttpServletResponse();
replay(marshallerMock);
try {
view.render(model, request, response);
fail("ServletException expected");
@@ -101,7 +99,6 @@ public class MarshallingViewTests {
// expected
}
assertEquals("Invalid content length", 0, response.getContentLength());
verify(marshallerMock);
}
@Test
@@ -113,7 +110,6 @@ public class MarshallingViewTests {
MockHttpServletRequest request = new MockHttpServletRequest();
MockHttpServletResponse response = new MockHttpServletResponse();
replay(marshallerMock);
try {
view.render(model, request, response);
fail("ServletException expected");
@@ -122,7 +118,6 @@ public class MarshallingViewTests {
// expected
}
assertEquals("Invalid content length", 0, response.getContentLength());
verify(marshallerMock);
}
@Test
@@ -136,9 +131,8 @@ public class MarshallingViewTests {
MockHttpServletRequest request = new MockHttpServletRequest();
MockHttpServletResponse response = new MockHttpServletResponse();
expect(marshallerMock.supports(Object.class)).andReturn(false);
given(marshallerMock.supports(Object.class)).willReturn(false);
replay(marshallerMock);
try {
view.render(model, request, response);
fail("ServletException expected");
@@ -146,7 +140,6 @@ public class MarshallingViewTests {
catch (ServletException ex) {
// expected
}
verify(marshallerMock);
}
@Test
@@ -159,14 +152,12 @@ public class MarshallingViewTests {
MockHttpServletRequest request = new MockHttpServletRequest();
MockHttpServletResponse response = new MockHttpServletResponse();
expect(marshallerMock.supports(Object.class)).andReturn(true);
marshallerMock.marshal(eq(toBeMarshalled), isA(StreamResult.class));
given(marshallerMock.supports(Object.class)).willReturn(true);
replay(marshallerMock);
view.render(model, request, response);
assertEquals("Invalid content type", "application/xml", response.getContentType());
assertEquals("Invalid content length", 0, response.getContentLength());
verify(marshallerMock);
verify(marshallerMock).marshal(eq(toBeMarshalled), isA(StreamResult.class));
}
@Test
@@ -179,9 +170,8 @@ public class MarshallingViewTests {
MockHttpServletRequest request = new MockHttpServletRequest();
MockHttpServletResponse response = new MockHttpServletResponse();
expect(marshallerMock.supports(Object.class)).andReturn(false);
given(marshallerMock.supports(Object.class)).willReturn(false);
replay(marshallerMock);
try {
view.render(model, request, response);
fail("ServletException expected");
@@ -189,7 +179,6 @@ public class MarshallingViewTests {
catch (ServletException ex) {
// expected
}
verify(marshallerMock);
}
}