Skip to content

Commit

Permalink
feat: add NO_WEB profile
Browse files Browse the repository at this point in the history
  • Loading branch information
kristian committed Oct 4, 2021
1 parent 2e4c793 commit a2c3a5d
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 26 deletions.
6 changes: 5 additions & 1 deletion src/main/java/io/neonbee/NeonBeeProfile.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
*/
@SuppressWarnings("checkstyle:JavadocVariable")
public enum NeonBeeProfile {
WEB, CORE, STABLE, INCUBATOR, ALL;
WEB, CORE, STABLE, INCUBATOR, NO_WEB, ALL;

/**
* Returns true if this profile is inside the passed active profiles.
Expand All @@ -24,6 +24,10 @@ public enum NeonBeeProfile {
* @return true if this profile is active
*/
public boolean isActive(List<NeonBeeProfile> activeProfiles) {
if (activeProfiles.contains(NO_WEB) && this == WEB) {
return false;
}

return activeProfiles.contains(ALL) || activeProfiles.contains(this) || this == ALL;
}

Expand Down
61 changes: 36 additions & 25 deletions src/test/java/io/neonbee/NeonBeeProfileTest.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
package io.neonbee;

import static com.google.common.truth.Truth.assertThat;
import static io.neonbee.NeonBeeProfile.ALL;
import static io.neonbee.NeonBeeProfile.CORE;
import static io.neonbee.NeonBeeProfile.INCUBATOR;
import static io.neonbee.NeonBeeProfile.NO_WEB;
import static io.neonbee.NeonBeeProfile.STABLE;
import static io.neonbee.NeonBeeProfile.WEB;
import static io.neonbee.NeonBeeProfile.parseProfiles;

import java.util.List;

Expand All @@ -15,40 +22,44 @@ class NeonBeeProfileTest {
@Test
@DisplayName("is profile active")
void isActive() {
assertThat(NeonBeeProfile.CORE.isActive(List.<NeonBeeProfile>of(NeonBeeProfile.ALL))).isTrue();
assertThat(NeonBeeProfile.STABLE.isActive(List.<NeonBeeProfile>of(NeonBeeProfile.ALL))).isTrue();
assertThat(NeonBeeProfile.CORE.isActive(List.<NeonBeeProfile>of(NeonBeeProfile.CORE))).isTrue();
assertThat(NeonBeeProfile.STABLE.isActive(List.<NeonBeeProfile>of(NeonBeeProfile.STABLE, NeonBeeProfile.CORE)))
.isTrue();
assertThat(
NeonBeeProfile.INCUBATOR.isActive(List.<NeonBeeProfile>of(NeonBeeProfile.STABLE, NeonBeeProfile.ALL)))
.isTrue();
assertThat(
NeonBeeProfile.CORE.isActive(List.<NeonBeeProfile>of(NeonBeeProfile.STABLE, NeonBeeProfile.INCUBATOR)))
.isFalse();
assertThat(NeonBeeProfile.ALL.isActive(List.<NeonBeeProfile>of(NeonBeeProfile.STABLE))).isTrue();
assertThat(CORE.isActive(List.<NeonBeeProfile>of(ALL))).isTrue();
assertThat(STABLE.isActive(List.<NeonBeeProfile>of(ALL))).isTrue();
assertThat(WEB.isActive(List.<NeonBeeProfile>of(ALL))).isTrue();

// NO_WEB should always take precedence
assertThat(WEB.isActive(List.<NeonBeeProfile>of(ALL, NO_WEB))).isFalse();
assertThat(WEB.isActive(List.<NeonBeeProfile>of(NO_WEB, ALL))).isFalse();
assertThat(CORE.isActive(List.<NeonBeeProfile>of(NO_WEB))).isFalse();
assertThat(STABLE.isActive(List.<NeonBeeProfile>of(NO_WEB, ALL))).isTrue();

assertThat(CORE.isActive(List.<NeonBeeProfile>of(CORE))).isTrue();
assertThat(STABLE.isActive(List.<NeonBeeProfile>of(STABLE, CORE))).isTrue();
assertThat(INCUBATOR.isActive(List.<NeonBeeProfile>of(STABLE, ALL))).isTrue();
assertThat(CORE.isActive(List.<NeonBeeProfile>of(STABLE, INCUBATOR))).isFalse();

assertThat(ALL.isActive(List.<NeonBeeProfile>of(STABLE))).isTrue();
}

@Test
void parseActiveProfile() {
List<NeonBeeProfile> profiles = NeonBeeProfile.parseProfiles("");
assertThat(profiles).contains(NeonBeeProfile.ALL);
List<NeonBeeProfile> profiles = parseProfiles("");
assertThat(profiles).contains(ALL);
assertThat(profiles).hasSize(1);
profiles = NeonBeeProfile.parseProfiles("CORE");
assertThat(profiles).contains(NeonBeeProfile.CORE);
profiles = parseProfiles("CORE");
assertThat(profiles).contains(CORE);
assertThat(profiles).hasSize(1);
profiles = NeonBeeProfile.parseProfiles("CORE,STABLE");
assertThat(profiles).contains(NeonBeeProfile.CORE);
assertThat(profiles).contains(NeonBeeProfile.STABLE);
profiles = parseProfiles("CORE,STABLE");
assertThat(profiles).contains(CORE);
assertThat(profiles).contains(STABLE);
assertThat(profiles).hasSize(2);
profiles = NeonBeeProfile.parseProfiles("CORE,anything");
assertThat(profiles).contains(NeonBeeProfile.CORE);
profiles = parseProfiles("CORE,anything");
assertThat(profiles).contains(CORE);
assertThat(profiles).hasSize(1);
profiles = NeonBeeProfile.parseProfiles("anything");
assertThat(profiles).contains(NeonBeeProfile.ALL);
profiles = parseProfiles("anything");
assertThat(profiles).contains(ALL);
assertThat(profiles).hasSize(1);
profiles = NeonBeeProfile.parseProfiles("");
assertThat(profiles).contains(NeonBeeProfile.ALL);
profiles = parseProfiles("");
assertThat(profiles).contains(ALL);
assertThat(profiles).hasSize(1);
}
}

0 comments on commit a2c3a5d

Please sign in to comment.