Skip to content

Commit ba1d3a0

Browse files
committed
iluwatar#354 Added Configuration Based Example of Feature Toggle
1 parent d627b7a commit ba1d3a0

File tree

4 files changed

+61
-2
lines changed

4 files changed

+61
-2
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.iluwatar.featuretoggle.pattern.propertiesversion;
2+
3+
import com.iluwatar.featuretoggle.pattern.Service;
4+
import com.iluwatar.featuretoggle.user.User;
5+
6+
import java.util.Properties;
7+
8+
public class PropertiesFeatureToggleVersion implements Service {
9+
10+
private Properties properties;
11+
12+
public PropertiesFeatureToggleVersion(final Properties properties) {
13+
this.properties = properties;
14+
}
15+
16+
@Override
17+
public String getWelcomeMessage(final User user) {
18+
19+
final boolean enhancedWelcome = (boolean) properties.get("enhancedWelcome");
20+
21+
if (enhancedWelcome) {
22+
return "Welcome " + user + ". You're using the enhanced welcome message.";
23+
}
24+
25+
return "Welcome to the application.";
26+
}
27+
}

feature-toggle/src/main/java/com/iluwatar/featuretoggle/pattern/tieredversion/TieredFeatureToggleVersion.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ public class TieredFeatureToggleVersion implements Service {
99
@Override
1010
public String getWelcomeMessage(User user) {
1111
if (UserGroup.isPaid(user)) {
12-
return "You're amazing " + user.getName() + ". Thanks for paying for this awesome software.";
12+
return "You're amazing " + user + ". Thanks for paying for this awesome software.";
1313
}
1414

1515
return "I suppose you can use this software.";

feature-toggle/src/main/java/com/iluwatar/featuretoggle/user/User.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ public User(String name) {
88
this.name = name;
99
}
1010

11-
public String getName() {
11+
@Override
12+
public String toString() {
1213
return name;
1314
}
1415
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
2+
package com.iluwatar.featuretoggle.pattern.propertiesversion;
3+
4+
import com.iluwatar.featuretoggle.pattern.Service;
5+
import com.iluwatar.featuretoggle.user.User;
6+
import org.junit.Test;
7+
8+
import java.util.Properties;
9+
10+
import static org.junit.Assert.assertEquals;
11+
12+
public class PropertiesFeatureToggleVersionTest {
13+
14+
@Test
15+
public void testFeatureTurnedOn() throws Exception {
16+
final Properties properties = new Properties();
17+
properties.put("enhancedWelcome",true);
18+
Service service = new PropertiesFeatureToggleVersion(properties);
19+
final String welcomeMessage = service.getWelcomeMessage(new User("Jamie No Code"));
20+
assertEquals("Welcome Jamie No Code. You're using the enhanced welcome message.",welcomeMessage);
21+
}
22+
23+
@Test
24+
public void testFeatureTurnedOff() throws Exception {
25+
final Properties properties = new Properties();
26+
properties.put("enhancedWelcome",false);
27+
Service service = new PropertiesFeatureToggleVersion(properties);
28+
final String welcomeMessage = service.getWelcomeMessage(new User("Jamie No Code"));
29+
assertEquals("Welcome to the application.",welcomeMessage);
30+
}
31+
}

0 commit comments

Comments
 (0)