View Javadoc

1   package com.atlassian.sal.api.features;
2   
3   import org.junit.Test;
4   
5   import java.util.Collections;
6   import java.util.Set;
7   
8   import static com.atlassian.sal.api.features.FeatureKeyScopePredicate.filterBy;
9   import static org.hamcrest.Matchers.containsInAnyOrder;
10  import static org.hamcrest.Matchers.empty;
11  import static org.hamcrest.Matchers.is;
12  import static org.junit.Assert.assertThat;
13  
14  public class TestEnabledDarkFeaturesBuilder
15  {
16      private static final String FEATURE_KEY = "feature.key";
17      private static final Set<String> ENABLED_FEATURES = Collections.singleton(FEATURE_KEY);
18  
19      @Test
20      public void unmodifiableFeaturesEnabledForAllUsers()
21      {
22          final EnabledDarkFeatures enabledDarkFeatures = new EnabledDarkFeaturesBuilder().unmodifiableFeaturesEnabledForAllUsers(ENABLED_FEATURES).build();
23          assertThat(enabledDarkFeatures.getFeatureKeys(filterBy(FeatureKeyScope.ALL_USERS_READ_ONLY)), containsInAnyOrder(FEATURE_KEY));
24      }
25  
26      @Test
27      public void unmodifiableFeaturesEnabledForAllUsersCanHandleNull()
28      {
29          final EnabledDarkFeatures enabledDarkFeatures = new EnabledDarkFeaturesBuilder().unmodifiableFeaturesEnabledForAllUsers(null).build();
30          assertThat(enabledDarkFeatures.getFeatureKeys(), is(empty()));
31      }
32  
33      @Test
34      public void featuresEnabledForAllUsers()
35      {
36          final EnabledDarkFeatures enabledDarkFeatures = new EnabledDarkFeaturesBuilder().featuresEnabledForAllUsers(ENABLED_FEATURES).build();
37          assertThat(enabledDarkFeatures.getFeatureKeys(filterBy(FeatureKeyScope.ALL_USERS)), containsInAnyOrder(FEATURE_KEY));
38      }
39  
40      @Test
41      public void featuresEnabledForAllUsersCanHandleNull()
42      {
43          final EnabledDarkFeatures enabledDarkFeatures = new EnabledDarkFeaturesBuilder().featuresEnabledForAllUsers(null).build();
44          assertThat(enabledDarkFeatures.getFeatureKeys(), is(empty()));
45      }
46  
47      @Test
48      public void featuresEnabledForCurrentUser()
49      {
50          final EnabledDarkFeatures enabledDarkFeatures = new EnabledDarkFeaturesBuilder().featuresEnabledForCurrentUser(ENABLED_FEATURES).build();
51          assertThat(enabledDarkFeatures.getFeatureKeys(filterBy(FeatureKeyScope.CURRENT_USER_ONLY)), containsInAnyOrder(FEATURE_KEY));
52      }
53  
54      @Test
55      public void featuresEnabledForCurrentUserCanHandleNull()
56      {
57          final EnabledDarkFeatures enabledDarkFeatures = new EnabledDarkFeaturesBuilder().featuresEnabledForCurrentUser(null).build();
58          assertThat(enabledDarkFeatures.getFeatureKeys(), is(empty()));
59      }
60  
61      @Test
62      public void noFeaturesEnabledAtAll()
63      {
64          final EnabledDarkFeatures enabledDarkFeatures = new EnabledDarkFeaturesBuilder().build();
65          assertThat(enabledDarkFeatures.getFeatureKeys(), is(empty()));
66      }
67  
68  }