Skip to content

Commit 6db3b8a

Browse files
committed
working on multihop scenarios
1 parent 8cca667 commit 6db3b8a

File tree

3 files changed

+87
-18
lines changed

3 files changed

+87
-18
lines changed

src/net/sharksystem/cmdline/CmdLineUI.java

Lines changed: 33 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,13 @@ public class CmdLineUI {
2626
private final PrintStream consoleOutput;
2727
private final BufferedReader userInput;
2828

29+
public static final String TESTS_ROOT_FOLDER = "tests";
30+
private Map<String, MultiASAPEngineFS> engines = new HashMap();
31+
private String getStorageKey(String owner, String appName) {
32+
return owner + ":" + appName;
33+
}
34+
private Map<String, ASAPStorage> storages = new HashMap();
35+
2936
public static void main(String[] args) {
3037
PrintStream os = System.out;
3138

@@ -41,6 +48,11 @@ public CmdLineUI(PrintStream os, InputStream is) {
4148
this.userInput = new BufferedReader(new InputStreamReader(is));
4249
}
4350

51+
public CmdLineUI(PrintStream out) {
52+
this.consoleOutput = out;
53+
this.userInput = null;
54+
}
55+
4456
public void printUsage() {
4557
StringBuilder b = new StringBuilder();
4658

@@ -186,7 +198,7 @@ public void runCommandLoop() {
186198
case CREATE_ASAP_MESSAGE:
187199
this.doCreateASAPMessage(parameterString); break;
188200
case RESET_ASAP_STORAGES:
189-
ASAPEngineFS.removeFolder("tests"); break;
201+
this.doResetASAPStorages(); break;
190202
case "q": // convenience
191203
case EXIT:
192204
this.doKill("all");
@@ -223,7 +235,11 @@ private void startChannel(String name, TCPChannel channel, String engineName) th
223235
this.channels.put(name, channel);
224236
}
225237

226-
private void doConnect(String parameterString) {
238+
////////////////////////////////////////////////////////////////////////////////////////////////////////
239+
// method implementations //
240+
////////////////////////////////////////////////////////////////////////////////////////////////////////
241+
242+
public void doConnect(String parameterString) {
227243
StringTokenizer st = new StringTokenizer(parameterString);
228244

229245
try {
@@ -251,7 +267,7 @@ private void doConnect(String parameterString) {
251267
}
252268
}
253269

254-
private void doOpen(String parameterString) {
270+
public void doOpen(String parameterString) {
255271
StringTokenizer st = new StringTokenizer(parameterString);
256272

257273
try {
@@ -270,7 +286,7 @@ private void doOpen(String parameterString) {
270286
}
271287
}
272288

273-
private void doList() {
289+
public void doList() {
274290
System.out.println("connections:");
275291
for(String connectionName : this.channels.keySet()) {
276292
System.out.println(connectionName);
@@ -285,7 +301,7 @@ private void doList() {
285301
}
286302
}
287303

288-
private void doKill(String parameterString) {
304+
public void doKill(String parameterString) {
289305
StringTokenizer st = new StringTokenizer(parameterString);
290306

291307
try {
@@ -315,7 +331,7 @@ private void doKill(String parameterString) {
315331
}
316332
}
317333

318-
private void doSetWaiting(String parameterString) {
334+
public void doSetWaiting(String parameterString) {
319335
StringTokenizer st = new StringTokenizer(parameterString);
320336

321337
try {
@@ -328,9 +344,7 @@ private void doSetWaiting(String parameterString) {
328344
}
329345
}
330346

331-
public static final String TESTS_ROOT_FOLDER = "tests";
332-
private Map<String, MultiASAPEngineFS> engines = new HashMap();
333-
private void doCreateASAPMultiEngine(String parameterString) {
347+
public void doCreateASAPMultiEngine(String parameterString) {
334348
StringTokenizer st = new StringTokenizer(parameterString);
335349

336350
try {
@@ -348,12 +362,7 @@ private void doCreateASAPMultiEngine(String parameterString) {
348362
}
349363
}
350364

351-
private String getStorageKey(String owner, String appName) {
352-
return owner + ":" + appName;
353-
}
354-
355-
private Map<String, ASAPStorage> storages = new HashMap();
356-
private void doCreateASAPStorage(String parameterString) {
365+
public void doCreateASAPStorage(String parameterString) {
357366
StringTokenizer st = new StringTokenizer(parameterString);
358367

359368
try {
@@ -374,7 +383,7 @@ private void doCreateASAPStorage(String parameterString) {
374383
}
375384
}
376385

377-
private void doCreateASAPMessage(String parameterString) {
386+
public void doCreateASAPMessage(String parameterString) {
378387
StringTokenizer st = new StringTokenizer(parameterString);
379388

380389
try {
@@ -397,5 +406,12 @@ private void doCreateASAPMessage(String parameterString) {
397406
this.printUsage(CREATE_ASAP_MESSAGE, e.getLocalizedMessage());
398407
}
399408
}
400-
}
401409

410+
public void doResetASAPStorages() {
411+
ASAPEngineFS.removeFolder("tests");
412+
}
413+
414+
public ASAPStorage getStorage(String storageName) {
415+
return this.storages.get(storageName);
416+
}
417+
}

test/net/sharksystem/asap/CommunicationTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import net.sharksystem.asap.util.ASAPChunkReceivedTester;
88
import net.sharksystem.asap.util.ASAPEngineThread;
9+
import net.sharksystem.cmdline.CmdLineUI;
910
import net.sharksystem.cmdline.TCPChannel;
1011
import org.junit.Test;
1112
import org.junit.Assert;
@@ -521,5 +522,4 @@ public void killOpenConnection() throws IOException, ASAPException, InterruptedE
521522

522523
// check results
523524
}
524-
525525
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package net.sharksystem.asap;
2+
3+
import net.sharksystem.cmdline.CmdLineUI;
4+
import org.junit.Test;
5+
6+
import java.io.IOException;
7+
8+
public class MultihopTests {
9+
/**
10+
* Create three storages and engine and let hop one message from a to c
11+
* @throws IOException
12+
* @throws ASAPException
13+
* @throws InterruptedException
14+
*/
15+
@Test
16+
public void twoHops() throws IOException, ASAPException, InterruptedException {
17+
CmdLineUI ui = new CmdLineUI(System.out);
18+
19+
ui.doResetASAPStorages();
20+
21+
// create storages
22+
ui.doCreateASAPStorage("Alice twoHops");
23+
ui.doCreateASAPStorage("Bob twoHops");
24+
ui.doCreateASAPStorage("Clara twoHops");
25+
26+
// add message to alice storage
27+
ui.doCreateASAPMessage("Alice twoHops abcChat HiClara");
28+
29+
// connect alice with bob
30+
ui.doCreateASAPMultiEngine("Alice");
31+
ui.doOpen("7070 Alice");
32+
ui.doCreateASAPMultiEngine("Bob");
33+
ui.doConnect("7070 Bob");
34+
35+
// wait a moment
36+
Thread.sleep(1000);
37+
38+
// kill connections
39+
ui.doKill("all");
40+
41+
ui.doCreateASAPMultiEngine("Clara");
42+
ui.doOpen("7070 Clara");
43+
ui.doConnect("7070 Bob");
44+
45+
// wait a moment
46+
Thread.sleep(1000);
47+
48+
// get Clara storage
49+
ASAPStorage clara = ui.getStorage("Clara");
50+
ASAPChunkStorage claraBob = clara.getIncomingChunkStorage("Bob");
51+
claraBob.getChunk("abcChat", clara.getEra() - 1);
52+
}
53+
}

0 commit comments

Comments
 (0)