From 72733acfc67055300a3ebf5352d2467ca8c4ad19 Mon Sep 17 00:00:00 2001 From: Joseph McCarthy Date: Tue, 26 Jan 2016 18:41:08 +0000 Subject: [PATCH] #354 added usergroup for version of feature toggle --- feature-toggle/pom.xml | 8 ++++ .../com/iluwatar/featuretoggle/user/User.java | 7 ++++ .../featuretoggle/user/UserGroup.java | 37 +++++++++++++++++++ .../featuretoggle/user/UserGroupTest.java | 37 +++++++++++++++++++ 4 files changed, 89 insertions(+) create mode 100644 feature-toggle/src/main/java/com/iluwatar/featuretoggle/user/User.java create mode 100644 feature-toggle/src/main/java/com/iluwatar/featuretoggle/user/UserGroup.java create mode 100644 feature-toggle/src/main/test/com/iluwatar/featuretoggle/user/UserGroupTest.java diff --git a/feature-toggle/pom.xml b/feature-toggle/pom.xml index 249d999a1..9a2b04de3 100644 --- a/feature-toggle/pom.xml +++ b/feature-toggle/pom.xml @@ -13,4 +13,12 @@ feature-toggle + + + junit + junit + test + + + \ No newline at end of file diff --git a/feature-toggle/src/main/java/com/iluwatar/featuretoggle/user/User.java b/feature-toggle/src/main/java/com/iluwatar/featuretoggle/user/User.java new file mode 100644 index 000000000..f25747997 --- /dev/null +++ b/feature-toggle/src/main/java/com/iluwatar/featuretoggle/user/User.java @@ -0,0 +1,7 @@ +package com.iluwatar.featuretoggle.user; + +/** + * Created by joseph on 26/01/16. + */ +public class User { +} diff --git a/feature-toggle/src/main/java/com/iluwatar/featuretoggle/user/UserGroup.java b/feature-toggle/src/main/java/com/iluwatar/featuretoggle/user/UserGroup.java new file mode 100644 index 000000000..315c88b45 --- /dev/null +++ b/feature-toggle/src/main/java/com/iluwatar/featuretoggle/user/UserGroup.java @@ -0,0 +1,37 @@ +package com.iluwatar.featuretoggle.user; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by joseph on 26/01/16. + */ +public class UserGroup { + + private static List freeGroup = new ArrayList<>(); + private static List paidGroup = new ArrayList<>(); + + public static void addUserToFreeGroup(final User user){ + if(paidGroup.contains(user)){ + throw new IllegalArgumentException("User all ready member of paid group."); + }else{ + if(!freeGroup.contains(user)){ + freeGroup.add(user); + } + } + } + + public static void addUserToPaidGroup(final User user){ + if(freeGroup.contains(user)){ + throw new IllegalArgumentException("User all ready member of free group."); + }else{ + if(!paidGroup.contains(user)){ + paidGroup.add(user); + } + } + } + + public static boolean isPaid(User user) { + return paidGroup.contains(user); + } +} diff --git a/feature-toggle/src/main/test/com/iluwatar/featuretoggle/user/UserGroupTest.java b/feature-toggle/src/main/test/com/iluwatar/featuretoggle/user/UserGroupTest.java new file mode 100644 index 000000000..f74d79064 --- /dev/null +++ b/feature-toggle/src/main/test/com/iluwatar/featuretoggle/user/UserGroupTest.java @@ -0,0 +1,37 @@ +package com.iluwatar.featuretoggle.user; + +import org.junit.Test; + +import static junit.framework.TestCase.assertFalse; +import static org.junit.Assert.assertTrue; + +public class UserGroupTest { + + @Test + public void testAddUserToFreeGroup() throws Exception { + User user = new User(); + UserGroup.addUserToFreeGroup(user); + assertFalse(UserGroup.isPaid(user)); + } + + @Test + public void testAddUserToPaidGroup() throws Exception { + User user = new User(); + UserGroup.addUserToPaidGroup(user); + assertTrue(UserGroup.isPaid(user)); + } + + @Test(expected = IllegalArgumentException.class) + public void testAddUserToPaidWhenOnFree() throws Exception { + User user = new User(); + UserGroup.addUserToFreeGroup(user); + UserGroup.addUserToPaidGroup(user); + } + + @Test(expected = IllegalArgumentException.class) + public void testAddUserToFreeWhenOnPaid() throws Exception { + User user = new User(); + UserGroup.addUserToPaidGroup(user); + UserGroup.addUserToFreeGroup(user); + } +} \ No newline at end of file