Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 16 additions & 5 deletions src/main/java/EventListener.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
public class EventListener {
public class EventListener extends Thread {

private String messageToListenFor;
private String messageToReplyWith;
Expand All @@ -17,16 +17,27 @@ public EventListener(String message, String reply, Tracker tracker) {
}

public void run() {
while (!readyToQuit()) {
if (shouldReply()){
eventTracker.handle(messageToReplyWith, ); //pass in instance of event handler
//the Handler should print out the reply
}
}
}

public Boolean readyToQuit() {
return null;
public Boolean readyToQuit() { // return true if there is a "quit" event in the event tracker
if (eventTracker.)
return false;
}

public Boolean shouldReply() {
return null;
public Boolean shouldReply() { // return true if the event tracker has a message the listener is listening for
if (messageToListenFor == "test"){
return true;
}
return false;
}

public void reply() {
System.out.println(messageToReplyWith);
}
}
21 changes: 19 additions & 2 deletions src/main/java/EventTracker.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class EventTracker implements Tracker {

Expand All @@ -12,17 +13,33 @@ private EventTracker() {
}

synchronized public static EventTracker getInstance() {
return null;
return INSTANCE;
}

public Map<String, Integer> getTracker() { return tracker; }

synchronized public void push(String message) {
Integer value = tracker.get(message);
value++;
tracker.put(message, value);
}

synchronized public Boolean has(String message) {
return null;
for (String k : tracker.keySet()){
if (k.equals(message)){
Integer value = tracker.get(message);
if (value != null && value > 0) return true;
}
}
return false;
}

synchronized public void handle(String message, EventHandler e) {
// run the event handler's handle function (??)

Integer value = tracker.get(message);
value--; // decrement the integer associated with the message passed in
tracker.put(message, value);
}

// Do not use this. This constructor is for tests only
Expand Down
9 changes: 6 additions & 3 deletions src/test/java/EventListenerTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import java.util.List;
import java.util.Map;

public class EventListenerTest {
public class EventListenerTest extends Thread {

@Test
public void readToQuit() {
Expand Down Expand Up @@ -37,18 +37,21 @@ class TrackerMock implements Tracker {
public boolean itemWasPushed;
public boolean eventWasHandled;

@Override
public Map<String, Integer> tracker() {
//return EvenTracker HashMap?
return null;
}

@Override
public void push(String message) {
//add message to EventTracker Hashmap as key, return true;
//(if already in hashmap, increment counter value)
itemWasPushed = true;
}

@Override
public boolean has(String message) {
public Boolean has(String message) {
//if message is a Key in hashmap, return true;
return true;
}

Expand Down
2 changes: 1 addition & 1 deletion src/test/java/EventTrackerTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public void tracker() {

eventTracker.push("test");

Assert.assertEquals(testList, eventTracker.tracker());
Assert.assertEquals(testList, eventTracker.getTracker());

}

Expand Down