Browse Source

Add WebMvcAutoConfigurationTests

[Fixes #53027833]
pull/9/head
Dave Syer 13 years ago
parent
commit
b2873fbc2d
  1. 98
      spring-autoconfigure/src/test/java/org/springframework/autoconfigure/web/WebMvcAutoConfigurationTests.java

98
spring-autoconfigure/src/test/java/org/springframework/autoconfigure/web/WebMvcAutoConfigurationTests.java

@ -16,17 +16,107 @@ @@ -16,17 +16,107 @@
package org.springframework.autoconfigure.web;
import org.junit.Ignore;
import org.springframework.autoconfigure.web.WebMvcAutoConfiguration;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.junit.After;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.springframework.bootstrap.context.embedded.AnnotationConfigEmbeddedWebApplicationContext;
import org.springframework.bootstrap.context.embedded.EmbeddedServletContainerCustomizerBeanPostProcessor;
import org.springframework.bootstrap.context.embedded.EmbeddedServletContainerFactory;
import org.springframework.bootstrap.context.embedded.MockEmbeddedServletContainerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.HandlerAdapter;
import org.springframework.web.servlet.HandlerMapping;
import org.springframework.web.servlet.View;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.view.AbstractView;
import static org.junit.Assert.assertEquals;
/**
* Tests for {@link WebMvcAutoConfiguration}.
*
* @author Phillip Webb
* @author Dave Syer
*/
@Ignore
public class WebMvcAutoConfigurationTests {
// FIXME
private static final MockEmbeddedServletContainerFactory containerFactory = new MockEmbeddedServletContainerFactory();
@Rule
public ExpectedException thrown = ExpectedException.none();
private AnnotationConfigEmbeddedWebApplicationContext context;
@After
public void close() {
if (this.context != null) {
this.context.close();
}
}
@Test
public void handerAdaptersCreated() throws Exception {
this.context = new AnnotationConfigEmbeddedWebApplicationContext();
this.context.register(Config.class, WebMvcAutoConfiguration.class);
this.context.refresh();
assertEquals(3, this.context.getBeanNamesForType(HandlerAdapter.class).length);
}
@Test
public void handerMappingsCreated() throws Exception {
this.context = new AnnotationConfigEmbeddedWebApplicationContext();
this.context.register(Config.class, WebMvcAutoConfiguration.class);
this.context.refresh();
assertEquals(6, this.context.getBeanNamesForType(HandlerMapping.class).length);
}
@Test
public void viewResolversCreatedIfViewsPresent() throws Exception {
this.context = new AnnotationConfigEmbeddedWebApplicationContext();
this.context.register(Config.class, ViewConfig.class,
WebMvcAutoConfiguration.class);
this.context.refresh();
assertEquals(2, this.context.getBeanNamesForType(ViewResolver.class).length);
}
@Configuration
protected static class ViewConfig {
@Bean
public View jsonView() {
return new AbstractView() {
@Override
protected void renderMergedOutputModel(Map<String, Object> model,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
response.getOutputStream().write("Hello World".getBytes());
}
};
}
}
@Configuration
protected static class Config {
@Bean
public EmbeddedServletContainerFactory containerFactory() {
return containerFactory;
}
@Bean
public EmbeddedServletContainerCustomizerBeanPostProcessor embeddedServletContainerCustomizerBeanPostProcessor() {
return new EmbeddedServletContainerCustomizerBeanPostProcessor();
}
}
}

Loading…
Cancel
Save