Skip to content

Commit 12544ca

Browse files
author
WSSIA
committed
Changes based on review feedback.
1 parent 69cab15 commit 12544ca

File tree

4 files changed

+60
-8
lines changed

4 files changed

+60
-8
lines changed

event-asynchronous/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ layout: pattern
33
title: Event-based Asynchronous
44
folder: event-asynchronous
55
permalink: /patterns/event-asynchronous/
6-
categories: Other
6+
categories: Concurrency
77
tags:
88
- difficulty-intermediate
99
- performance

event-asynchronous/src/main/java/com/iluwatar/event/asynchronous/App.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -106,23 +106,23 @@ public void quickRun() {
106106
try {
107107
// Create an Asynchronous event.
108108
int aEventId = eventManager.createAsync(60);
109-
System.out.println("Event [" + aEventId + "] has been created.");
109+
System.out.println("Async Event [" + aEventId + "] has been created.");
110110
eventManager.start(aEventId);
111-
System.out.println("Event [" + aEventId + "] has been started.");
111+
System.out.println("Async Event [" + aEventId + "] has been started.");
112112

113113
// Create a Synchronous event.
114114
int sEventId = eventManager.create(60);
115-
System.out.println("Event [" + sEventId + "] has been created.");
115+
System.out.println("Sync Event [" + sEventId + "] has been created.");
116116
eventManager.start(sEventId);
117-
System.out.println("Event [" + sEventId + "] has been started.");
117+
System.out.println("Sync Event [" + sEventId + "] has been started.");
118118

119119
eventManager.status(aEventId);
120120
eventManager.status(sEventId);
121121

122122
eventManager.cancel(aEventId);
123-
System.out.println("Event [" + aEventId + "] has been stopped.");
123+
System.out.println("Async Event [" + aEventId + "] has been stopped.");
124124
eventManager.cancel(sEventId);
125-
System.out.println("Event [" + sEventId + "] has been stopped.");
125+
System.out.println("Sync Event [" + sEventId + "] has been stopped.");
126126

127127
} catch (MaxNumOfEventsAllowedException | LongRunningEventException | EventDoesNotExistException
128128
| InvalidOperationException e) {

event-asynchronous/src/main/java/com/iluwatar/event/asynchronous/Event.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public void run() {
7575
long endTime = currentTime + (eventTime * 1000);
7676
while (System.currentTimeMillis() < endTime) {
7777
try {
78-
Thread.sleep(5000); // Sleep for 5 seconds.
78+
Thread.sleep(1000); // Sleep for 1 second.
7979
} catch (InterruptedException e) {
8080
return;
8181
}

event-asynchronous/src/test/java/com/iluwatar/event/asynchronous/EventAsynchronousTest.java

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,4 +79,56 @@ public void testUnsuccessfulSynchronousEvent() throws InvalidOperationException
7979
System.out.println(e.getMessage());
8080
}
8181
}
82+
83+
@Test
84+
public void testFullSynchronousEvent() {
85+
EventManager eventManager = new EventManager();
86+
try {
87+
int eventTime = 5;
88+
89+
int sEventId = eventManager.create(eventTime);
90+
assertTrue(eventManager.getEventPool().size() == 1);
91+
eventManager.start(sEventId);
92+
93+
long currentTime = System.currentTimeMillis();
94+
long endTime = currentTime + (eventTime + 5 * 1000); // +5 to give a bit of buffer time for event to complete
95+
// properly.
96+
while (System.currentTimeMillis() < endTime) {
97+
}
98+
99+
assertTrue(eventManager.getEventPool().size() == 0);
100+
101+
} catch (MaxNumOfEventsAllowedException | LongRunningEventException | EventDoesNotExistException
102+
| InvalidOperationException e) {
103+
System.out.println(e.getMessage());
104+
}
105+
}
106+
107+
@Test
108+
public void testFullAsynchronousEvent() {
109+
EventManager eventManager = new EventManager();
110+
try {
111+
int eventTime = 5;
112+
113+
int aEventId1 = eventManager.createAsync(eventTime);
114+
int aEventId2 = eventManager.createAsync(eventTime);
115+
int aEventId3 = eventManager.createAsync(eventTime);
116+
assertTrue(eventManager.getEventPool().size() == 3);
117+
118+
eventManager.start(aEventId1);
119+
eventManager.start(aEventId2);
120+
eventManager.start(aEventId3);
121+
122+
long currentTime = System.currentTimeMillis();
123+
long endTime = currentTime + (eventTime + 5 * 1000); // +5 to give a bit of buffer time for event to complete
124+
// properly.
125+
while (System.currentTimeMillis() < endTime) {
126+
}
127+
128+
assertTrue(eventManager.getEventPool().size() == 0);
129+
130+
} catch (MaxNumOfEventsAllowedException | LongRunningEventException | EventDoesNotExistException e) {
131+
System.out.println(e.getMessage());
132+
}
133+
}
82134
}

0 commit comments

Comments
 (0)