se.sawano.spring.examples.jsonxmlws.RESTControllerTestIT.java Source code

Java tutorial

Introduction

Here is the source code for se.sawano.spring.examples.jsonxmlws.RESTControllerTestIT.java

Source

/**
 * Copyright 2012 Daniel Sawano
 * 
 * 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 se.sawano.spring.examples.jsonxmlws;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;

import java.net.URI;
import java.util.ArrayList;

import org.junit.Before;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.http.converter.json.MappingJacksonHttpMessageConverter;
import org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter;
import org.springframework.web.client.RestTemplate;

/**
 * Integration test for {@link RESTController}.
 * 
 * @author Daniel Sawano
 * 
 */
public class RESTControllerTestIT {
    Logger logger = LoggerFactory.getLogger(getClass());
    String baseUrl;

    @Before
    public void setUp() throws Exception {
        baseUrl = "http://localhost:9090/spring-examples-json-xml-ws/users";
    }

    @Test
    public void getUserWithJSON() {
        RestTemplate restTemplate = createJSONRestTemplate();
        User user = restTemplate.getForObject(baseUrl + "/123", User.class, (Object) null);

        assertNotNull(user);
        assertEquals(Long.valueOf(123), user.getId());
    }

    @Test
    public void getUserWithXML() throws Exception {
        RestTemplate restTemplate = createXMLRestTemplate();
        User user = restTemplate.getForObject(new URI(baseUrl + "/123"), User.class);

        assertNotNull(user);
        assertEquals(Long.valueOf(123), user.getId());
    }

    @Test
    public void getUserWithUnsupportedAccept() throws Exception {
        RestTemplate restTemplate = createStringRestTemplate();

        String user = restTemplate.getForObject(new URI(baseUrl + "/123"), String.class);

        logger.debug("Received data as: {}", user);
    }

    private RestTemplate createJSONRestTemplate() {
        ArrayList<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>();
        messageConverters.add(new MappingJacksonHttpMessageConverter());
        RestTemplate restTemplate = new RestTemplate();
        restTemplate.setMessageConverters(messageConverters);
        return restTemplate;
    }

    private RestTemplate createXMLRestTemplate() throws Exception {
        ArrayList<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>();
        messageConverters.add(new Jaxb2RootElementHttpMessageConverter());
        RestTemplate restTemplate = new RestTemplate();
        restTemplate.setMessageConverters(messageConverters);
        return restTemplate;
    }

    private RestTemplate createStringRestTemplate() throws Exception {
        ArrayList<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>();
        messageConverters.add(new StringHttpMessageConverter());
        RestTemplate restTemplate = new RestTemplate();
        restTemplate.setMessageConverters(messageConverters);
        return restTemplate;
    }
}