Update Spring MVC Java config for ResourceResolvers

This commit is contained in:
Rossen Stoyanchev
2013-10-01 14:43:38 -04:00
parent 02cb86659d
commit f8e1f06d08
7 changed files with 145 additions and 50 deletions

View File

@@ -16,11 +16,12 @@
package org.springframework.web.servlet.config.annotation;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import java.util.Arrays;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
import org.springframework.mock.web.test.MockHttpServletRequest;
import org.springframework.mock.web.test.MockHttpServletResponse;
import org.springframework.mock.web.test.MockServletContext;
@@ -28,6 +29,10 @@ import org.springframework.web.context.support.GenericWebApplicationContext;
import org.springframework.web.servlet.HandlerMapping;
import org.springframework.web.servlet.handler.SimpleUrlHandlerMapping;
import org.springframework.web.servlet.resource.ResourceHttpRequestHandler;
import org.springframework.web.servlet.resource.ResourceResolver;
import org.springframework.web.servlet.resource.ResourceTransformer;
import static org.junit.Assert.*;
/**
* Test fixture with a {@link ResourceHandlerRegistry}.
@@ -84,6 +89,29 @@ public class ResourceHandlerRegistryTests {
assertEquals(0, registry.getHandlerMapping().getOrder());
}
@Test
public void hasMappingForPattern() {
assertTrue(registry.hasMappingForPattern("/resources/**"));
assertFalse(registry.hasMappingForPattern("/whatever"));
}
@Test
public void resourceResolversAndTransformers() {
ResourceResolver resolver = Mockito.mock(ResourceResolver.class);
List<ResourceResolver> resolvers = Arrays.<ResourceResolver>asList(resolver);
registry.setResourceResolvers(resolvers);
ResourceTransformer transformer = Mockito.mock(ResourceTransformer.class);
List<ResourceTransformer> transformers = Arrays.asList(transformer);
registry.setResourceTransformers(transformers);
SimpleUrlHandlerMapping hm = (SimpleUrlHandlerMapping) registry.getHandlerMapping();
ResourceHttpRequestHandler handler = (ResourceHttpRequestHandler) hm.getUrlMap().values().iterator().next();
assertEquals(resolvers, handler.getResourceResolvers());
assertEquals(transformers, handler.getResourceTransformers());
}
private ResourceHttpRequestHandler getHandler(String pathPattern) {
SimpleUrlHandlerMapping handlerMapping = (SimpleUrlHandlerMapping) registry.getHandlerMapping();
return (ResourceHttpRequestHandler) handlerMapping.getUrlMap().get(pathPattern);

View File

@@ -17,7 +17,6 @@
package org.springframework.web.servlet.resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -26,7 +25,6 @@ import org.junit.Before;
import org.junit.Test;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.web.servlet.handler.SimpleUrlHandlerMapping;
import static org.junit.Assert.*;
@@ -38,9 +36,9 @@ import static org.junit.Assert.*;
*/
public class ResourceUrlGeneratorTests {
ResourceHttpRequestHandler handler;
private ResourceHttpRequestHandler handler;
SimpleUrlHandlerMapping mapping;
private Map<String, ResourceHttpRequestHandler> handlerMap;
ResourceUrlGenerator generator;
@@ -51,18 +49,15 @@ public class ResourceUrlGeneratorTests {
locations.add(new ClassPathResource("test/", getClass()));
locations.add(new ClassPathResource("testalternatepath/", getClass()));
Map<String, ResourceHttpRequestHandler> urlMap = new HashMap<String, ResourceHttpRequestHandler>();
handler = new ResourceHttpRequestHandler();
handler.setLocations(locations);
urlMap.put("/resources/**", handler);
this.handler = new ResourceHttpRequestHandler();
this.handler.setLocations(locations);
mapping = new SimpleUrlHandlerMapping();
mapping.setUrlMap(urlMap);
this.handlerMap = new HashMap<String, ResourceHttpRequestHandler>();
this.handlerMap.put("/resources/**", handler);
}
private void initGenerator() {
generator = new ResourceUrlGenerator();
generator.setResourceHandlerMappings(Collections.singletonList(this.mapping));
this.generator = new ResourceUrlGenerator(handlerMap);
}
@Test