From 4a49f82f2366e9e39f7298a11e7e09de6e82401c Mon Sep 17 00:00:00 2001 From: Joseph McCarthy Date: Tue, 26 Jan 2016 21:18:47 +0000 Subject: [PATCH] #354 add general boolean method to services for feature status. Change user.toString --- .../featuretoggle/pattern/Service.java | 2 ++ .../PropertiesFeatureToggleVersion.java | 25 +++++++++++++++---- .../TieredFeatureToggleVersion.java | 5 ++++ .../PropertiesFeatureToggleVersionTest.java | 4 +++ .../TieredFeatureToggleVersionTest.java | 6 +++++ 5 files changed, 37 insertions(+), 5 deletions(-) diff --git a/feature-toggle/src/main/java/com/iluwatar/featuretoggle/pattern/Service.java b/feature-toggle/src/main/java/com/iluwatar/featuretoggle/pattern/Service.java index 843ee173f..c3849a45f 100644 --- a/feature-toggle/src/main/java/com/iluwatar/featuretoggle/pattern/Service.java +++ b/feature-toggle/src/main/java/com/iluwatar/featuretoggle/pattern/Service.java @@ -7,4 +7,6 @@ public interface Service { String getWelcomeMessage(User user); + boolean isEnhanced(); + } diff --git a/feature-toggle/src/main/java/com/iluwatar/featuretoggle/pattern/propertiesversion/PropertiesFeatureToggleVersion.java b/feature-toggle/src/main/java/com/iluwatar/featuretoggle/pattern/propertiesversion/PropertiesFeatureToggleVersion.java index bccf5bd6f..aa795b975 100644 --- a/feature-toggle/src/main/java/com/iluwatar/featuretoggle/pattern/propertiesversion/PropertiesFeatureToggleVersion.java +++ b/feature-toggle/src/main/java/com/iluwatar/featuretoggle/pattern/propertiesversion/PropertiesFeatureToggleVersion.java @@ -7,21 +7,36 @@ import java.util.Properties; public class PropertiesFeatureToggleVersion implements Service { - private Properties properties; + private boolean isEnhanced; + /** + * + * @param properties {@link Properties} used to configure the service and toggle features. + */ public PropertiesFeatureToggleVersion(final Properties properties) { - this.properties = properties; + if (properties == null) { + throw new IllegalArgumentException("No Properties Provided."); + } else { + try { + isEnhanced = (boolean) properties.get("enhancedWelcome"); + } catch (Exception e) { + throw new IllegalArgumentException("Invalid Enhancement Settings Provided."); + } + } } @Override public String getWelcomeMessage(final User user) { - final boolean enhancedWelcome = (boolean) properties.get("enhancedWelcome"); - - if (enhancedWelcome) { + if (isEnhanced()) { return "Welcome " + user + ". You're using the enhanced welcome message."; } return "Welcome to the application."; } + + @Override + public boolean isEnhanced() { + return isEnhanced; + } } diff --git a/feature-toggle/src/main/java/com/iluwatar/featuretoggle/pattern/tieredversion/TieredFeatureToggleVersion.java b/feature-toggle/src/main/java/com/iluwatar/featuretoggle/pattern/tieredversion/TieredFeatureToggleVersion.java index 330015ac3..2942618f1 100644 --- a/feature-toggle/src/main/java/com/iluwatar/featuretoggle/pattern/tieredversion/TieredFeatureToggleVersion.java +++ b/feature-toggle/src/main/java/com/iluwatar/featuretoggle/pattern/tieredversion/TieredFeatureToggleVersion.java @@ -15,4 +15,9 @@ public class TieredFeatureToggleVersion implements Service { return "I suppose you can use this software."; } + @Override + public boolean isEnhanced() { + return true; + } + } diff --git a/feature-toggle/src/test/java/com/iluwatar/featuretoggle/pattern/propertiesversion/PropertiesFeatureToggleVersionTest.java b/feature-toggle/src/test/java/com/iluwatar/featuretoggle/pattern/propertiesversion/PropertiesFeatureToggleVersionTest.java index de10480c3..7a07193c8 100644 --- a/feature-toggle/src/test/java/com/iluwatar/featuretoggle/pattern/propertiesversion/PropertiesFeatureToggleVersionTest.java +++ b/feature-toggle/src/test/java/com/iluwatar/featuretoggle/pattern/propertiesversion/PropertiesFeatureToggleVersionTest.java @@ -8,6 +8,8 @@ import org.junit.Test; import java.util.Properties; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; public class PropertiesFeatureToggleVersionTest { @@ -16,6 +18,7 @@ public class PropertiesFeatureToggleVersionTest { final Properties properties = new Properties(); properties.put("enhancedWelcome",true); Service service = new PropertiesFeatureToggleVersion(properties); + assertTrue(service.isEnhanced()); final String welcomeMessage = service.getWelcomeMessage(new User("Jamie No Code")); assertEquals("Welcome Jamie No Code. You're using the enhanced welcome message.",welcomeMessage); } @@ -25,6 +28,7 @@ public class PropertiesFeatureToggleVersionTest { final Properties properties = new Properties(); properties.put("enhancedWelcome",false); Service service = new PropertiesFeatureToggleVersion(properties); + assertFalse(service.isEnhanced()); final String welcomeMessage = service.getWelcomeMessage(new User("Jamie No Code")); assertEquals("Welcome to the application.",welcomeMessage); } diff --git a/feature-toggle/src/test/java/com/iluwatar/featuretoggle/pattern/tieredversion/TieredFeatureToggleVersionTest.java b/feature-toggle/src/test/java/com/iluwatar/featuretoggle/pattern/tieredversion/TieredFeatureToggleVersionTest.java index bf9487a2d..f96e99ba0 100644 --- a/feature-toggle/src/test/java/com/iluwatar/featuretoggle/pattern/tieredversion/TieredFeatureToggleVersionTest.java +++ b/feature-toggle/src/test/java/com/iluwatar/featuretoggle/pattern/tieredversion/TieredFeatureToggleVersionTest.java @@ -7,6 +7,7 @@ import org.junit.Before; import org.junit.Test; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class TieredFeatureToggleVersionTest { @@ -33,4 +34,9 @@ public class TieredFeatureToggleVersionTest { final String expected = "I suppose you can use this software."; assertEquals(expected, welcomeMessage); } + + @Test + public void testIsEnhancedAlwaysTrueAsTiered() throws Exception { + assertTrue(service.isEnhanced()); + } } \ No newline at end of file