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 }