Skip to content

Commit

Permalink
fix stuff
Browse files Browse the repository at this point in the history
  • Loading branch information
pheaber committed Feb 21, 2012
1 parent 4359784 commit ffa5be3
Show file tree
Hide file tree
Showing 9 changed files with 78 additions and 33 deletions.
7 changes: 6 additions & 1 deletion Stutter/src/stutter/User.java
Expand Up @@ -5,6 +5,7 @@

import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;

public class User {

Expand Down Expand Up @@ -109,7 +110,11 @@ public int hashCode() {

@Override
public String toString() {
return "User=" + this.username;
ToStringBuilder string = new ToStringBuilder(this);
string.append("username", this.username);
string.append("emailAddress", this.emailAddress);
string.append("name", this.name);
return string.build();
}

}
44 changes: 31 additions & 13 deletions Stutter/src/stutter/client/StutterClient.java
@@ -1,31 +1,49 @@
package stutter.client;

import java.util.List;

import org.restlet.resource.ClientResource;

import stutter.Mumble;
import stutter.User;
import stutter.common.MumbleListManager;
import stutter.common.UserListManager;
import stutter.common.UserManager;

public class StutterClient {

public static void main(String[] args) {
UserManager userManagerClient = ClientResource.create("http://localhost:8182/users/farmBoy", UserManager.class);

// how cool is this, we get an instance of our interface and Restlet does the HTTP magic?!?
User got = userManagerClient.getUser();
System.out.println("Got a user: " + got);
private static final String BASE = "http://localhost:8182";

MumbleListManager mumbleManagerClient = ClientResource.create("http://localhost:8182/mumbles",
MumbleListManager.class);
public static void main(String[] args) {
// how cool is this? we get an instance of our interface and Restlet does the HTTP magic!!
UserListManager userListManagerClient = ClientResource.create(BASE + "/users", UserListManager.class);
User westley = new User("farmBoy", "westley@asyouwish.fl");
userListManagerClient.addUser(westley);

// TODO: why are these strings and not Users?
// Collection<User> users = userListManagerClient.listAll();
// for (User user : users) {
// System.out.println("Got a user: " + user);
// }

UserManager userManagerClient = ClientResource.create(BASE + "/users/farmBoy", UserManager.class);
User beforeUpdate = userManagerClient.getUser();
System.out.println("Got a user: " + beforeUpdate);

westley.setName("Westley");
userManagerClient.updateUser(westley);
User afterUpdate = userManagerClient.getUser();
System.out.println("Got an updated user: " + afterUpdate);

MumbleListManager mumbleManagerClient = ClientResource.create(BASE + "/mumbles", MumbleListManager.class);
Mumble newMessage = new Mumble(afterUpdate.getUsername(), "As you wish.");
mumbleManagerClient.newMumble(newMessage);

// TODO: why are these strings and not Mumbles?
List<Mumble> mumbles = mumbleManagerClient.listAll();
System.out.println("Got some mumbles: " + mumbles);
// List<Mumble> mumbles = mumbleManagerClient.listAll();
// for (Mumble mumble : mumbles) {
// System.out.println("Got a mumble: " + mumble);
// }

mumbleManagerClient.newMumble(got.getUsername(), "As you wish again.");
userManagerClient.removeUser();
}

}
2 changes: 1 addition & 1 deletion Stutter/src/stutter/common/MumbleListManager.java
Expand Up @@ -13,6 +13,6 @@ public interface MumbleListManager {
List<Mumble> listAll();

@Post
void newMumble(String username, String message);
void newMumble(Mumble newMumble);

}
29 changes: 17 additions & 12 deletions Stutter/src/stutter/server/FakeStorage.java
Expand Up @@ -20,17 +20,17 @@ public class FakeStorage {
private static final FakeStorage INSTANCE = new FakeStorage(new ConcurrentHashMap<String, User>(),
new ConcurrentHashMap<String, Mumble>(), new CopyOnWriteArrayList<Mumble>());

// TODO: remove me!!
static {
User westley = new User("farmBoy", "westley@asyouwish.fl", "Westley");
INSTANCE.addUser(westley);
INSTANCE.newMumble("farmBoy", "As you wish.");

User inigo = new User("inigoSeeksRevenge", "inigo.montoya@revengeismybusiness.fl", "Inigo Montoya");
INSTANCE.addUser(inigo);
INSTANCE.newMumble("inigoSeeksRevenge",
"Hello. My name is Inigo Montoya. You killed my father. Prepare to die.");
}
// handy helper to preload some data
// static {
// User westley = new User("farmBoy", "westley@asyouwish.fl", "Westley");
// INSTANCE.addUser(westley);
// INSTANCE.newMumble("farmBoy", "As you wish.");
//
// User inigo = new User("inigoSeeksRevenge", "inigo.montoya@revengeismybusiness.fl", "Inigo Montoya");
// INSTANCE.addUser(inigo);
// INSTANCE.newMumble("inigoSeeksRevenge",
// "Hello. My name is Inigo Montoya. You killed my father. Prepare to die.");
// }

public static FakeStorage getInstance() {
return INSTANCE;
Expand Down Expand Up @@ -70,7 +70,12 @@ public void updateUser(User user) {
public void removeUser(String username) {
// TODO: handle if user doesn't exist!

this.userStorage.remove(username);
User removeUser = this.userStorage.remove(username);

for (Mumble mumble : removeUser.getMumbles()) {
this.mumbleStorage.remove(mumble.getId());
this.mumbleTimeline.remove(mumble);
}
}

public void newMumble(String username, String message) {
Expand Down
6 changes: 3 additions & 3 deletions Stutter/src/stutter/server/MumbleListServerResource.java
Expand Up @@ -9,15 +9,15 @@

public class MumbleListServerResource extends ServerResource implements MumbleListManager {

// TODO: Fix for Client!
@Override
public List<Mumble> listAll() {
return FakeStorage.getInstance().listMumbles();
}

// TODO: FIX THIS
@Override
public void newMumble(String username, String message) {
FakeStorage.getInstance().newMumble(username, (String) getRequestAttributes().get("message"));
public void newMumble(Mumble newMumble) {
FakeStorage.getInstance().newMumble(newMumble.getUsername(), newMumble.getMessage());
}

}
2 changes: 1 addition & 1 deletion Stutter/src/stutter/server/RootServerResource.java
Expand Up @@ -7,7 +7,7 @@ public class RootServerResource extends ServerResource {

@Get
public String welcome() {
return "hello";
return "hello, this should probably have real stuff in it";
}

}
2 changes: 1 addition & 1 deletion Stutter/src/stutter/server/UserListServerResource.java
Expand Up @@ -9,12 +9,12 @@

public class UserListServerResource extends ServerResource implements UserListManager {

// TODO: Fix for client!
@Override
public Collection<User> listAll() {
return FakeStorage.getInstance().listUsers();
}

// TODO: FIX THIS
@Override
public void addUser(User user) {
FakeStorage.getInstance().addUser(user);
Expand Down
1 change: 0 additions & 1 deletion Stutter/src/stutter/server/UserServerResource.java
Expand Up @@ -24,7 +24,6 @@ public User getUser() {
return FakeStorage.getInstance().getUser(this.username);
}

// TODO: FIX THIS
@Override
public void updateUser(User user) {
FakeStorage.getInstance().updateUser(user);
Expand Down
18 changes: 18 additions & 0 deletions Stutter/tests/stutter/server/FakeStorageTest.java
Expand Up @@ -82,6 +82,24 @@ public void removeUser() {
assertTrue("Didn't remove user!", this.userStorage.isEmpty());
}

@Test
public void removeUserAlsoRemovesMumbles() {
// add in the test data
User testUser = new User(TEST_USERNAME, TEST_EMAIL_ADDRESS);
this.userStorage.put(TEST_USERNAME, testUser);
Mumble testMumble = MumbleTestUtil.buildMumble(TEST_MUMBLE_ID, testUser, TEST_MESSAGE);
testUser.addMumble(testMumble);
this.mumbleStorage.put(TEST_MUMBLE_ID, testMumble);
this.mumbleTimeline.add(testMumble);

this.storage.removeUser(TEST_USERNAME);

// make sure it's gone
assertTrue("Didn't remove user!", this.userStorage.isEmpty());
assertTrue("Didn't remove from mumble storage!", this.mumbleStorage.isEmpty());
assertTrue("Didn't remove from mumble timeline!", this.mumbleTimeline.isEmpty());
}

@Test
public void newMumble() {
// add in the test data
Expand Down

0 comments on commit ffa5be3

Please sign in to comment.