#354 Some clean up and show the difference between paid and free a bit more.

This commit is contained in:
Joseph McCarthy 2016-01-26 18:58:35 +00:00
parent a1ede8980f
commit 32f9cf3ab1
6 changed files with 27 additions and 30 deletions

View File

@ -2,10 +2,9 @@ package com.iluwatar.featuretoggle.pattern;
import com.iluwatar.featuretoggle.user.User; import com.iluwatar.featuretoggle.user.User;
/**
* Created by joseph on 26/01/16.
*/
public interface Service { public interface Service {
public String getWelcomeMessage(User user); String getWelcomeMessage(User user);
} }

View File

@ -4,15 +4,12 @@ import com.iluwatar.featuretoggle.pattern.Service;
import com.iluwatar.featuretoggle.user.User; import com.iluwatar.featuretoggle.user.User;
import com.iluwatar.featuretoggle.user.UserGroup; import com.iluwatar.featuretoggle.user.UserGroup;
/**
* Created by joseph on 26/01/16.
*/
public class TieredFeatureToggleVersion implements Service { public class TieredFeatureToggleVersion implements Service {
@Override @Override
public String getWelcomeMessage(User user) { public String getWelcomeMessage(User user) {
if(UserGroup.isPaid(user)){ if(UserGroup.isPaid(user)){
return "You're amazing thanks for paying for this awesome software."; return "You're amazing " + user.getName() + ". Thanks for paying for this awesome software.";
} }
return "I suppose you can use this software."; return "I suppose you can use this software.";

View File

@ -1,7 +1,14 @@
package com.iluwatar.featuretoggle.user; package com.iluwatar.featuretoggle.user;
/**
* Created by joseph on 26/01/16.
*/
public class User { public class User {
private String name;
public User(String name) {
this.name = name;
}
public String getName() {
return name;
}
} }

View File

@ -3,9 +3,6 @@ package com.iluwatar.featuretoggle.user;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
/**
* Created by joseph on 26/01/16.
*/
public class UserGroup { public class UserGroup {
private static List<User> freeGroup = new ArrayList<>(); private static List<User> freeGroup = new ArrayList<>();

View File

@ -8,32 +8,29 @@ import org.junit.Test;
import static org.junit.Assert.*; import static org.junit.Assert.*;
/**
* Created by joseph on 26/01/16.
*/
public class TieredFeatureToggleVersionTest { public class TieredFeatureToggleVersionTest {
User paidUser = new User(); final User paidUser = new User("Jamie Coder");
User freeUser = new User(); final User freeUser = new User("Alan Defect");
final Service service = new TieredFeatureToggleVersion();
@Before @Before
public void setUp() throws Exception { public void setUp() throws Exception {
UserGroup.addUserToPaidGroup(paidUser); UserGroup.addUserToPaidGroup(paidUser);
UserGroup.addUserToFreeGroup(freeUser); UserGroup.addUserToFreeGroup(freeUser);
} }
@Test @Test
public void testGetWelcomeMessageForPaidUser() throws Exception { public void testGetWelcomeMessageForPaidUser() throws Exception {
Service service = new TieredFeatureToggleVersion(); final String welcomeMessage = service.getWelcomeMessage(paidUser);
String welcomeMessage = service.getWelcomeMessage(paidUser); final String expected = "You're amazing Jamie Coder. Thanks for paying for this awesome software.";
assertEquals("You're amazing thanks for paying for this awesome software.",welcomeMessage); assertEquals(expected,welcomeMessage);
} }
@Test @Test
public void testGetWelcomeMessageForFreeUser() throws Exception { public void testGetWelcomeMessageForFreeUser() throws Exception {
Service service = new TieredFeatureToggleVersion(); final String welcomeMessage = service.getWelcomeMessage(freeUser);
String welcomeMessage = service.getWelcomeMessage(freeUser); final String expected = "I suppose you can use this software.";
assertEquals("I suppose you can use this software.",welcomeMessage); assertEquals(expected,welcomeMessage);
} }
} }

View File

@ -9,28 +9,28 @@ public class UserGroupTest {
@Test @Test
public void testAddUserToFreeGroup() throws Exception { public void testAddUserToFreeGroup() throws Exception {
User user = new User(); User user = new User("Free User");
UserGroup.addUserToFreeGroup(user); UserGroup.addUserToFreeGroup(user);
assertFalse(UserGroup.isPaid(user)); assertFalse(UserGroup.isPaid(user));
} }
@Test @Test
public void testAddUserToPaidGroup() throws Exception { public void testAddUserToPaidGroup() throws Exception {
User user = new User(); User user = new User("Paid User");
UserGroup.addUserToPaidGroup(user); UserGroup.addUserToPaidGroup(user);
assertTrue(UserGroup.isPaid(user)); assertTrue(UserGroup.isPaid(user));
} }
@Test(expected = IllegalArgumentException.class) @Test(expected = IllegalArgumentException.class)
public void testAddUserToPaidWhenOnFree() throws Exception { public void testAddUserToPaidWhenOnFree() throws Exception {
User user = new User(); User user = new User("Paid User");
UserGroup.addUserToFreeGroup(user); UserGroup.addUserToFreeGroup(user);
UserGroup.addUserToPaidGroup(user); UserGroup.addUserToPaidGroup(user);
} }
@Test(expected = IllegalArgumentException.class) @Test(expected = IllegalArgumentException.class)
public void testAddUserToFreeWhenOnPaid() throws Exception { public void testAddUserToFreeWhenOnPaid() throws Exception {
User user = new User(); User user = new User("Free User");
UserGroup.addUserToPaidGroup(user); UserGroup.addUserToPaidGroup(user);
UserGroup.addUserToFreeGroup(user); UserGroup.addUserToFreeGroup(user);
} }