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      private static final String FEATURE_KEY = "feature.key";
16      private static final Set<String> ENABLED_FEATURES = Collections.singleton(FEATURE_KEY);
17  
18      @Test
19      public void unmodifiableFeaturesEnabledForAllUsers() {
20          final EnabledDarkFeatures enabledDarkFeatures = new EnabledDarkFeaturesBuilder().unmodifiableFeaturesEnabledForAllUsers(ENABLED_FEATURES).build();
21          assertThat(enabledDarkFeatures.getFeatureKeys(filterBy(FeatureKeyScope.ALL_USERS_READ_ONLY)), containsInAnyOrder(FEATURE_KEY));
22      }
23  
24      @Test
25      public void unmodifiableFeaturesEnabledForAllUsersCanHandleNull() {
26          final EnabledDarkFeatures enabledDarkFeatures = new EnabledDarkFeaturesBuilder().unmodifiableFeaturesEnabledForAllUsers(null).build();
27          assertThat(enabledDarkFeatures.getFeatureKeys(), is(empty()));
28      }
29  
30      @Test
31      public void featuresEnabledForAllUsers() {
32          final EnabledDarkFeatures enabledDarkFeatures = new EnabledDarkFeaturesBuilder().featuresEnabledForAllUsers(ENABLED_FEATURES).build();
33          assertThat(enabledDarkFeatures.getFeatureKeys(filterBy(FeatureKeyScope.ALL_USERS)), containsInAnyOrder(FEATURE_KEY));
34      }
35  
36      @Test
37      public void featuresEnabledForAllUsersCanHandleNull() {
38          final EnabledDarkFeatures enabledDarkFeatures = new EnabledDarkFeaturesBuilder().featuresEnabledForAllUsers(null).build();
39          assertThat(enabledDarkFeatures.getFeatureKeys(), is(empty()));
40      }
41  
42      @Test
43      public void featuresEnabledForCurrentUser() {
44          final EnabledDarkFeatures enabledDarkFeatures = new EnabledDarkFeaturesBuilder().featuresEnabledForCurrentUser(ENABLED_FEATURES).build();
45          assertThat(enabledDarkFeatures.getFeatureKeys(filterBy(FeatureKeyScope.CURRENT_USER_ONLY)), containsInAnyOrder(FEATURE_KEY));
46      }
47  
48      @Test
49      public void featuresEnabledForCurrentUserCanHandleNull() {
50          final EnabledDarkFeatures enabledDarkFeatures = new EnabledDarkFeaturesBuilder().featuresEnabledForCurrentUser(null).build();
51          assertThat(enabledDarkFeatures.getFeatureKeys(), is(empty()));
52      }
53  
54      @Test
55      public void noFeaturesEnabledAtAll() {
56          final EnabledDarkFeatures enabledDarkFeatures = new EnabledDarkFeaturesBuilder().build();
57          assertThat(enabledDarkFeatures.getFeatureKeys(), is(empty()));
58      }
59  
60  }