package thredds.server.radar;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
import org.springframework.test.web.servlet.RequestBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;
import thredds.junit4.SpringJUnit4ParameterizedClassRunner;
import thredds.mock.web.MockTdsContextLoader;
import thredds.util.ContentType;
import java.util.Arrays;
import java.util.Collection;
/**
* Test RadarServer sanity check
*
* @author caron
* @since 11/15/13
*/
//@RunWith(SpringJUnit4ParameterizedClassRunner.class)
//@WebAppConfiguration
//@ContextConfiguration(locations = {"/WEB-INF/applicationContext-tdsConfig.xml"}, loader = MockTdsContextLoader.class)
public class TestRadarServerUrls {
//@Autowired
private WebApplicationContext wac;
private MockMvc mockMvc;
//@Before
public void setup() {
this.mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
}
//@SpringJUnit4ParameterizedClassRunner.Parameters
public static Collection<Object[]> getTestParameters() {
return Arrays.asList(new Object[][]{
{"/radarServer/nexrad/level2/IDD/dataset.xml", null},
{"/radarServer/nexrad/level2/IDD/stations.xml", null},
{"/radarServer/nexrad/level2/IDD?stn=KDGX&time_start=2014-06-05T12:47:17&time_end=2014-06-05T16:07:17", null},
//{"/radarServer/nexrad/level2/IDD", "stn=KDGX&time=present"},
{"/radarServer/nexrad/level3/IDD/catalog.xml", null},
{"/radarServer/nexrad/level3/IDD/dataset.xml", null},
{"/radarServer/nexrad/level3/IDD/stations.xml", null},
//{"/radarServer/nexrad/level3/IDD","stn=UDX&var=N0R&time=present"},
{"/radarServer/nexrad/level3/IDD/N0R/catalog.xml", null},
{"/radarServer/nexrad/level3/IDD/N0R/UDX/catalog.xml", null},
{"/radarServer/nexrad/level3/IDD/N0R/UDX/20131114/catalog.xml", null},
{"/radarServer/nexrad/level3/IDD/dataset.xml", null},
{"/radarServer/nexrad/level3/IDD/stations.xml", null},
//{"/radarServer/nexrad/level3/IDD", "north=50.00&south=20.00&west=-127&east=-66&time=present&var=KPAH"},
/* {"/radarServer/terminal/level3/IDD/dataset.xml", null},
{"/radarServer/terminal/level3/IDD/stations.xml", null},
{"/radarServer/terminal/level3/IDD", "stn=ORD&var=NTP&time=present"},
{"/radarServer/terminal/level3/IDD", "stn=OKC&time=present&var=NTP"}, */
});
}
String path, query;
public TestRadarServerUrls(String path, String query) {
this.path = path;
this.query = query;
}
//@Test //LOOK BAIL out
public void radarRequest() throws Exception {
String url = (query == null) ? path : path + "?" + query;
RequestBuilder rb = MockMvcRequestBuilders.get(url).servletPath(path);
System.err.printf("url = %s%n", url);
MvcResult result = this.mockMvc.perform(rb)
.andExpect(MockMvcResultMatchers.status().is(200))
// .andExpect(MockMvcResultMatchers.content().contentType(ContentType.xml.getContentHeader()))
.andReturn();
System.err.printf("content for %s=%n%s%n", url, result.getResponse().getContentAsString());
}
}