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 new file mode 100644 index 000000000..058a8f59a --- /dev/null +++ b/feature-toggle/src/main/java/com/iluwatar/featuretoggle/pattern/Service.java @@ -0,0 +1,11 @@ +package com.iluwatar.featuretoggle.pattern; + +import com.iluwatar.featuretoggle.user.User; + +/** + * Created by joseph on 26/01/16. + */ +public interface Service { + + public String getWelcomeMessage(User user); +} 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 new file mode 100644 index 000000000..3a27453b1 --- /dev/null +++ b/feature-toggle/src/main/java/com/iluwatar/featuretoggle/pattern/tieredversion/TieredFeatureToggleVersion.java @@ -0,0 +1,21 @@ +package com.iluwatar.featuretoggle.pattern.tieredversion; + +import com.iluwatar.featuretoggle.pattern.Service; +import com.iluwatar.featuretoggle.user.User; +import com.iluwatar.featuretoggle.user.UserGroup; + +/** + * Created by joseph on 26/01/16. + */ +public class TieredFeatureToggleVersion implements Service { + + @Override + public String getWelcomeMessage(User user) { + if(UserGroup.isPaid(user)){ + return "You're amazing thanks for paying for this awesome software."; + } + + return "I suppose you can use this software."; + } + +} diff --git a/feature-toggle/src/main/test/com/iluwatar/featuretoggle/pattern/tieredversion/TieredFeatureToggleVersionTest.java b/feature-toggle/src/main/test/com/iluwatar/featuretoggle/pattern/tieredversion/TieredFeatureToggleVersionTest.java new file mode 100644 index 000000000..b793c4614 --- /dev/null +++ b/feature-toggle/src/main/test/com/iluwatar/featuretoggle/pattern/tieredversion/TieredFeatureToggleVersionTest.java @@ -0,0 +1,39 @@ +package com.iluwatar.featuretoggle.pattern.tieredversion; + +import com.iluwatar.featuretoggle.pattern.Service; +import com.iluwatar.featuretoggle.user.User; +import com.iluwatar.featuretoggle.user.UserGroup; +import org.junit.Before; +import org.junit.Test; + +import static org.junit.Assert.*; + +/** + * Created by joseph on 26/01/16. + */ +public class TieredFeatureToggleVersionTest { + + User paidUser = new User(); + User freeUser = new User(); + + @Before + public void setUp() throws Exception { + UserGroup.addUserToPaidGroup(paidUser); + UserGroup.addUserToFreeGroup(freeUser); + + } + + @Test + public void testGetWelcomeMessageForPaidUser() throws Exception { + Service service = new TieredFeatureToggleVersion(); + String welcomeMessage = service.getWelcomeMessage(paidUser); + assertEquals("You're amazing thanks for paying for this awesome software.",welcomeMessage); + } + + @Test + public void testGetWelcomeMessageForFreeUser() throws Exception { + Service service = new TieredFeatureToggleVersion(); + String welcomeMessage = service.getWelcomeMessage(freeUser); + assertEquals("I suppose you can use this software.",welcomeMessage); + } +} \ No newline at end of file