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 }