#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;
/**
* Created by joseph on 26/01/16.
*/
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.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 "You're amazing " + user.getName() + ". Thanks for paying for this awesome software.";
}
return "I suppose you can use this software.";

View File

@ -1,7 +1,14 @@
package com.iluwatar.featuretoggle.user;
/**
* Created by joseph on 26/01/16.
*/
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.List;
/**
* Created by joseph on 26/01/16.
*/
public class UserGroup {
private static List<User> freeGroup = new ArrayList<>();

View File

@ -8,32 +8,29 @@ 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();
final User paidUser = new User("Jamie Coder");
final User freeUser = new User("Alan Defect");
final Service service = new TieredFeatureToggleVersion();
@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);
final String welcomeMessage = service.getWelcomeMessage(paidUser);
final String expected = "You're amazing Jamie Coder. Thanks for paying for this awesome software.";
assertEquals(expected,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);
final String welcomeMessage = service.getWelcomeMessage(freeUser);
final String expected = "I suppose you can use this software.";
assertEquals(expected,welcomeMessage);
}
}

View File

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