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
18 changes: 15 additions & 3 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,28 @@ public EventListener(String message, String reply, Tracker tracker) {
}

public void run() {
while(!readyToQuit())
{
while(shouldReply())
{
reply();
}
}
}

public Boolean readyToQuit() {
return null;

return eventTracker.has("quit");
}

public Boolean shouldReply() {
return null;

return eventTracker.has(messageToListenFor);
}

public void reply() {
eventTracker.handle(messageToListenFor, () -> {
System.out.println(messageToReplyWith);
});
}
}
27 changes: 25 additions & 2 deletions src/main/java/EventTracker.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,22 +7,45 @@ public class EventTracker implements Tracker {

private Map<String, Integer> tracker;

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

public void setTracker(Map<String, Integer> tracker) {
this.tracker = tracker;
}

private EventTracker() {
this.tracker = new HashMap<>();
}

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

synchronized public void push(String message) {
Integer x=tracker.getOrDefault(message,0);
tracker.put(message,x+1);
}

synchronized public Boolean has(String message) {
return null;
return tracker.containsKey(message);
}

synchronized public void handle(String message, EventHandler e) {
try {
// e.handle();
Integer x=tracker.getOrDefault(message,0);
if(x==1 && x!=0)
{
this.tracker.remove(message);
}
else
this.tracker.put(message,x-1);

} catch (NullPointerException n) {
System.out.println("Currently not being tracked.");
}
}

// Do not use this. This constructor is for tests only
Expand Down
5 changes: 2 additions & 3 deletions src/test/java/EventListenerTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ public class EventListenerTest {
public void readToQuit() {
TrackerMock tracker = new TrackerMock();
EventListener el = new EventListener("test", "reply", tracker);

Assert.assertTrue(el.readyToQuit());
}

Expand All @@ -37,7 +36,7 @@ class TrackerMock implements Tracker {
public boolean itemWasPushed;
public boolean eventWasHandled;

@Override
// @Override
public Map<String, Integer> tracker() {
return null;
}
Expand All @@ -48,7 +47,7 @@ public void push(String message) {
}

@Override
public boolean has(String message) {
public Boolean has(String message) {
return true;
}

Expand Down
6 changes: 2 additions & 4 deletions src/test/java/EventTrackerTest.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
import org.junit.Assert;
import org.junit.Test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;


public class EventTrackerTest {

Expand Down Expand Up @@ -32,7 +30,7 @@ public void tracker() {

eventTracker.push("test");

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

}

Expand Down