View Javadoc

1   package com.atlassian.plugins.rest.common.feature.jersey;
2   
3   import com.sun.jersey.api.NotFoundException;
4   import org.junit.Test;
5   import org.mockito.InjectMocks;
6   
7   import static com.atlassian.plugins.rest.common.feature.jersey.test.DarkFeatureTestResource.FEATURE_KEY;
8   import static org.hamcrest.MatcherAssert.assertThat;
9   import static org.hamcrest.Matchers.equalTo;
10  
11  public class DarkFeatureResourceFilterTest extends AbstractDarkFeatureResourceFilterTest {
12      @InjectMocks
13      private DarkFeatureResourceFilter classUnderTest;
14  
15      @Test
16      public void testFilterWithNoAnnotations() {
17          setResourceAnnotated(false);
18          setMethodAnnotated(false);
19  
20          assertThat(classUnderTest.filter(request), equalTo(request));
21      }
22  
23      @Test
24      public void testFilterWithResourceAnnotationAndFeatureEnabled() {
25          setFeatureEnabled(true);
26          setResourceAnnotated(true);
27          setMethodAnnotated(false);
28          setResourceAnnotation(FEATURE_KEY);
29  
30          assertThat(classUnderTest.filter(request), equalTo(request));
31      }
32  
33      @Test(expected = NotFoundException.class)
34      public void testFilterWithResourceAnnotationAndFeatureDisabled() {
35          setFeatureEnabled(false);
36          setResourceAnnotated(true);
37          setMethodAnnotated(false);
38          setResourceAnnotation(FEATURE_KEY);
39  
40          classUnderTest.filter(request);
41      }
42  
43      @Test
44      public void testFilterWithMethodAnnotationAndFeatureEnabled() {
45          setFeatureEnabled(true);
46          setResourceAnnotated(false);
47          setMethodAnnotated(true);
48  
49          assertThat(classUnderTest.filter(request), equalTo(request));
50      }
51  
52      @Test(expected = NotFoundException.class)
53      public void testFilterWithMethodAnnotationAndFeatureDisabled() {
54          setFeatureEnabled(false);
55          setResourceAnnotated(false);
56          setMethodAnnotated(true);
57  
58          classUnderTest.filter(request);
59      }
60  
61      @Test
62      public void testFilterWithMultipleKeysRequiredAndAllEnabled() {
63          setResourceAnnotated(true);
64          setResourceAnnotation("feature1", "feature2");
65          setFeatureEnabled("feature1", true);
66          setFeatureEnabled("feature2", true);
67  
68          assertThat(classUnderTest.filter(request), equalTo(request));
69      }
70  
71      @Test(expected = NotFoundException.class)
72      public void testFilterWithMultipleKeysRequiredAndNotAllEnabled() {
73          setResourceAnnotated(true);
74          setResourceAnnotation("feature1", "feature2");
75          setFeatureEnabled("feature1", true);
76          setFeatureEnabled("feature2", false);
77  
78          classUnderTest.filter(request);
79      }
80  }