Java tutorial
/* * Copyright (C) 2010 Benoit Guerout <bguerout at gmail dot com> * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package fr.keemto.web; import org.codehaus.jackson.JsonFactory; import org.codehaus.jackson.JsonNode; import org.codehaus.jackson.JsonParser; import org.codehaus.jackson.map.ObjectMapper; import org.junit.Before; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.http.converter.json.MappingJacksonHttpMessageConverter; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; import org.springframework.web.servlet.HandlerMapping; import org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import static org.mockito.MockitoAnnotations.initMocks; public abstract class ControllerTestCase { protected AnnotationMethodHandlerAdapter handlerAdapter; protected MockHttpServletRequest request; protected MockHttpServletResponse response; @Before public void setUp() throws Exception { initMocks(this); request = new MockHttpServletRequest(); response = new MockHttpServletResponse(); handlerAdapter = new AnnotationMethodHandlerAdapter(); addJackonMessageConverter(); request.setAttribute(HandlerMapping.INTROSPECT_TYPE_LEVEL_MAPPING, true); } private void addJackonMessageConverter() { List<HttpMessageConverter<?>> httpMessageConverters = new ArrayList<HttpMessageConverter<?>>( Arrays.asList(handlerAdapter.getMessageConverters())); httpMessageConverters.add(new MappingJacksonHttpMessageConverter()); HttpMessageConverter[] converters = httpMessageConverters .toArray(new HttpMessageConverter[httpMessageConverters.size()]); handlerAdapter.setMessageConverters(converters); } protected JsonNode toJsonNode(String json) throws IOException { ObjectMapper mapper = new ObjectMapper(); JsonFactory jsonFactory = mapper.getJsonFactory(); JsonParser jp = jsonFactory.createJsonParser(json); return jp.readValueAsTree(); } protected JsonNode toJsonNode(File jsonFile) throws IOException { ObjectMapper mapper = new ObjectMapper(); JsonFactory jsonFactory = mapper.getJsonFactory(); JsonParser jp = jsonFactory.createJsonParser(jsonFile); return jp.readValueAsTree(); } protected File getJsonFile(String fileName) { return new File("src/test/resources/web/" + fileName); } protected String getJsonFileAsString(String fileName) throws IOException { return toJsonNode(getJsonFile(fileName)).toString(); } }