Add status and error messages to /trace

[Fixes #57949108] [bs-323] Make sure /trace shows error responses
This commit is contained in:
Dave Syer
2013-10-01 14:48:07 -04:00
parent 1bdb2ce1c2
commit f7fa63bcb4
4 changed files with 79 additions and 10 deletions

View File

@@ -16,6 +16,10 @@
package org.springframework.boot.sample.ops;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@@ -43,10 +47,6 @@ import org.springframework.security.crypto.codec.Base64;
import org.springframework.web.client.DefaultResponseErrorHandler;
import org.springframework.web.client.RestTemplate;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
/**
* Basic integration tests for service demo application.
*
@@ -134,13 +134,27 @@ public class SampleActuatorApplicationTests {
@Test
public void testErrorPage() throws Exception {
ResponseEntity<String> entity = getRestTemplate().getForEntity(
"http://localhost:8080/health", String.class);
assertEquals(HttpStatus.OK, entity.getStatusCode());
assertEquals("ok", entity.getBody());
}
@Test
public void testTrace() throws Exception {
getRestTemplate().getForEntity(
"http://localhost:8080/health", String.class);
@SuppressWarnings("rawtypes")
ResponseEntity<Map> entity = getRestTemplate("user", getPassword()).getForEntity(
"http://localhost:8080/foo", Map.class);
assertEquals(HttpStatus.INTERNAL_SERVER_ERROR, entity.getStatusCode());
ResponseEntity<List> entity = getRestTemplate("user", getPassword()).getForEntity(
"http://localhost:8080/trace", List.class);
assertEquals(HttpStatus.OK, entity.getStatusCode());
@SuppressWarnings("unchecked")
Map<String, Object> body = entity.getBody();
assertEquals(500, body.get("status"));
List<Map<String,Object>> list = (List<Map<String, Object>>) entity.getBody();
Map<String, Object> trace = list.get(list.size()-1);
@SuppressWarnings("unchecked")
Map<String, Object> map = (Map<String, Object>) ((Map<String, Object>) ((Map<String, Object>)
trace.get("info")).get("headers")).get("response");
assertEquals("200", map.get("status"));
}
@Test