View Javadoc

1   package com.atlassian.plugins.rest.common.error.jersey;
2   
3   import javax.ws.rs.core.HttpHeaders;
4   import javax.ws.rs.core.MediaType;
5   import javax.ws.rs.core.Request;
6   
7   import com.google.common.collect.ImmutableList;
8   import com.sun.jersey.core.header.InBoundHeaders;
9   import com.sun.jersey.spi.container.ContainerRequest;
10  import com.sun.jersey.spi.container.WebApplication;
11  
12  import org.junit.Test;
13  
14  import static org.mockito.Mockito.when;
15  
16  import static org.junit.Assert.assertEquals;
17  import static org.junit.Assert.assertNotNull;
18  import static org.junit.Assert.assertNull;
19  import static org.mockito.Mockito.mock;
20  
21  public class UncaughtExceptionEntityTest {
22      @Test
23      public void stackTraceIsNotNull() {
24          assertNotNull(new UncaughtExceptionEntity(new Throwable()).getStackTrace());
25      }
26  
27      @Test
28      public void messagesAreTakenFromThrowables() {
29          assertNull(new UncaughtExceptionEntity(new Throwable()).getMessage());
30          assertEquals("Message",
31                  new UncaughtExceptionEntity(new Throwable("Message")).getMessage());
32      }
33  
34      @Test
35      public void defaultConstructorSucceeds() {
36          UncaughtExceptionEntity uee = new UncaughtExceptionEntity();
37          assertNull(uee.getMessage());
38      }
39  
40      @Test
41      public void defaultIsXmlWithRealContainerRequestImplementation() {
42          WebApplication wa = mock(WebApplication.class);
43          InBoundHeaders headers = mock(InBoundHeaders.class);
44  
45          Request req = new ContainerRequest(wa, null, null, null, headers, null);
46  
47          MediaType mt = UncaughtExceptionEntity.variantFor(req);
48  
49          assertEquals(MediaType.APPLICATION_XML_TYPE,
50                  new MediaType(mt.getType(), mt.getSubtype()));
51      }
52  
53      @Test
54      public void textPlainIncludeCharsetParameterWithRealContainerRequestImplementation() {
55          WebApplication wa = mock(WebApplication.class);
56          InBoundHeaders headers = mock(InBoundHeaders.class);
57  
58          when(headers.get(HttpHeaders.ACCEPT)).thenReturn(ImmutableList.of("text/plain"));
59  
60          Request req = new ContainerRequest(wa, null, null, null, headers, null);
61  
62          MediaType mt = UncaughtExceptionEntity.variantFor(req);
63  
64          assertEquals(MediaType.valueOf("text/plain; charset=utf-8"), mt);
65      }
66  }