Skip to content
Snippets Groups Projects
Commit 51d41dfe authored by Stefan E. Funk's avatar Stefan E. Funk
Browse files

Add test for concurrent GetRecord use

parent 57dc322b
No related branches found
No related tags found
No related merge requests found
......@@ -40,7 +40,7 @@ public final class DublinCoreBuilder {
/**
* <p>
* Takes a Stringlist containing the contributors and build the specific dublinCore element for
* Takes a string list containing the contributors and build the specific dublinCore element for
* each
* </p>
*
......@@ -59,7 +59,7 @@ public final class DublinCoreBuilder {
/**
* <p>
* Takes a Stringlist containing the creators and build the specific dublinCore element for each
* Takes a string list containing the creators and build the specific dublinCore element for each
* </p>
*
* @param creators
......@@ -76,7 +76,7 @@ public final class DublinCoreBuilder {
/**
* <P>
* Takes a Stringlist containing the coverages and build the specific dublinCore element for each
* Takes a string list containing the coverages and build the specific dublinCore element for each
* </p>
*
* @param coverages
......@@ -93,7 +93,7 @@ public final class DublinCoreBuilder {
/**
* <p>
* Takes a Stringlist containing the dates and build the specific dublinCore element for each
* Takes a string list containing the dates and build the specific dublinCore element for each
* </p>
*
* @param dates
......@@ -110,7 +110,7 @@ public final class DublinCoreBuilder {
/**
* <p>
* Takes a Stringlist containing the descriptions and build the specific dublinCore element for
* Takes a string list containing the descriptions and build the specific dublinCore element for
* each
* </p>
*
......@@ -129,7 +129,7 @@ public final class DublinCoreBuilder {
/**
* <p>
* Takes a Stringlist containing the formats and build the specific dublinCore element for each
* Takes a string list containing the formats and build the specific dublinCore element for each
* </p>
*
* @param formats
......@@ -146,7 +146,7 @@ public final class DublinCoreBuilder {
/**
* <p>
* Takes a Stringlist containing the identifiers and build the specific dublinCore element for
* Takes a string list containing the identifiers and build the specific dublinCore element for
* each
* </p>
*
......@@ -164,7 +164,7 @@ public final class DublinCoreBuilder {
/**
* <p>
* Takes a Stringlist containing the languages and build the specific dublinCore element for each
* Takes a string list containing the languages and build the specific dublinCore element for each
* </p>
*
* @param languages
......@@ -181,7 +181,8 @@ public final class DublinCoreBuilder {
/**
* <p>
* Takes a Stringlist containing the publishers and build the specific dublinCore element for each
* Takes a string list containing the publishers and build the specific dublinCore element for
* each
* </p>
*
* @param publishers
......@@ -198,7 +199,7 @@ public final class DublinCoreBuilder {
/**
* <p>
* Takes a Stringlist containing the relations and build the specific dublinCore element for each
* Takes a string list containing the relations and build the specific dublinCore element for each
* </p>
*
* @param relations
......@@ -215,7 +216,7 @@ public final class DublinCoreBuilder {
/**
* <p>
* Takes a Stringlist containing the rights and build the specific dublinCore element for each
* Takes a string list containing the rights and build the specific dublinCore element for each
* </p>
*
* @param rights
......@@ -232,7 +233,7 @@ public final class DublinCoreBuilder {
/**
* <p>
* Takes a Stringlist containing the sources and build the specific dublinCore element for each
* Takes a string list containing the sources and build the specific dublinCore element for each
* </p>
*
* @param sources
......@@ -249,7 +250,7 @@ public final class DublinCoreBuilder {
/**
* <p>
* Takes a Stringlist containing the subjects and build the specific dublinCore element for each
* Takes a string list containing the subjects and build the specific dublinCore element for each
* </p>
*
* @param subjects
......@@ -266,7 +267,7 @@ public final class DublinCoreBuilder {
/**
* <p>
* Takes a Stringlist containing the titles and build the specific dublinCore element for each
* Takes a string list containing the titles and build the specific dublinCore element for each
* </p>
*
* @param titles
......@@ -283,7 +284,7 @@ public final class DublinCoreBuilder {
/**
* <p>
* Takes a Stringlist containing the types and build the specific dublinCore element for each
* Takes a string list containing the types and build the specific dublinCore element for each
* </p>
*
* @param types
......
......@@ -493,6 +493,90 @@ public class OaiPmhTextgridOnlineTests {
System.out.println(OK + ": [B1]=" + f1.get() + ", [B2]=" + f2.get() + ", [B3]=" + f3.get());
}
/**
* @throws IOException
* @throws InterruptedException
* @throws ExecutionException
*/
@Test
public void testConcurrentlyOAIDCGetRecord() throws InterruptedException, ExecutionException {
System.out.println(TESTING + "testConcurrentlyOAIDCGetRecord()");
for (int i = 0; i < 9; i++) {
System.out.println("\tThis is loop " + (i + 1));
String id1 = "textgrid:mq05.0";
String id2 = "textgrid:jgv6.0";
String id3 = "textgrid:w7rz.0";
String id4 = "textgrid:w36b.0";
String id5 = "textgrid:mcdv.0";
String id6 = "textgrid:v0qx.0";
String id7 = "textgrid:xkck.0";
String id8 = "textgrid:t3m1.0";
String id9 = "textgrid:10rsq.0";
String idA = "textgrid:mq06.0";
String idB = "textgrid:jgv7.0";
String idC = "textgrid:w7rd.0";
String idD = "textgrid:w361.0";
String idE = "textgrid:mcd7.0";
String idF = "textgrid:v0qa.0";
String idG = "textgrid:xkc8.0";
String idH = "textgrid:t3m2.0";
String idI = "textgrid:10rjq.0";
ExecutorService executor = Executors.newFixedThreadPool(2);
if (!host.contains("dev.textgridlab.org")) {
Future<Boolean> f1 = executor.submit(new OaiPmhGetRecordTestThread(VERB_GET_RECORD,
id1, OAI_DC_PREFIX, "[GR1]"));
Future<Boolean> f2 = executor.submit(new OaiPmhGetRecordTestThread(VERB_GET_RECORD,
id2, OAI_DC_PREFIX, "[GR2]"));
Future<Boolean> f3 = executor.submit(new OaiPmhGetRecordTestThread(VERB_GET_RECORD,
id3, OAI_DC_PREFIX, "[GR3]"));
Future<Boolean> f4 = executor.submit(new OaiPmhGetRecordTestThread(VERB_GET_RECORD,
id4, OAI_DC_PREFIX, "[GR4]"));
Future<Boolean> f5 = executor.submit(new OaiPmhGetRecordTestThread(VERB_GET_RECORD,
id5, OAI_DC_PREFIX, "[GR5]"));
Future<Boolean> f6 = executor.submit(new OaiPmhGetRecordTestThread(VERB_GET_RECORD,
id6, OAI_DC_PREFIX, "[GR6]"));
Future<Boolean> f7 = executor.submit(new OaiPmhGetRecordTestThread(VERB_GET_RECORD,
id7, OAI_DC_PREFIX, "[GR7]"));
Future<Boolean> f8 = executor.submit(new OaiPmhGetRecordTestThread(VERB_GET_RECORD,
id8, OAI_DC_PREFIX, "[GR8]"));
Future<Boolean> f9 = executor.submit(new OaiPmhGetRecordTestThread(VERB_GET_RECORD,
id9, OAI_DC_PREFIX, "[GR9]"));
Future<Boolean> fA = executor.submit(new OaiPmhGetRecordTestThread(VERB_GET_RECORD,
idA, OAI_DC_PREFIX, "[GRA]"));
Future<Boolean> fB = executor.submit(new OaiPmhGetRecordTestThread(VERB_GET_RECORD,
idB, OAI_DC_PREFIX, "[GRB]"));
Future<Boolean> fC = executor.submit(new OaiPmhGetRecordTestThread(VERB_GET_RECORD,
idC, OAI_DC_PREFIX, "[GRC]"));
Future<Boolean> fD = executor.submit(new OaiPmhGetRecordTestThread(VERB_GET_RECORD,
idD, OAI_DC_PREFIX, "[GRD]"));
Future<Boolean> fE = executor.submit(new OaiPmhGetRecordTestThread(VERB_GET_RECORD,
idE, OAI_DC_PREFIX, "[GRE]"));
Future<Boolean> fF = executor.submit(new OaiPmhGetRecordTestThread(VERB_GET_RECORD,
idF, OAI_DC_PREFIX, "[GRF]"));
Future<Boolean> fG = executor.submit(new OaiPmhGetRecordTestThread(VERB_GET_RECORD,
idG, OAI_DC_PREFIX, "[GRG]"));
Future<Boolean> fH = executor.submit(new OaiPmhGetRecordTestThread(VERB_GET_RECORD,
idH, OAI_DC_PREFIX, "[GRH]"));
Future<Boolean> fI = executor.submit(new OaiPmhGetRecordTestThread(VERB_GET_RECORD,
idI, OAI_DC_PREFIX, "[GRI]"));
executor.shutdown();
System.out.println(OK + ": [GR1]=" + f1.get() + ", [GR2]=" + f2.get() + ", [GR3]="
+ f3.get() + ", [GR4]=" + f4.get() + ", [GR5]=" + f5.get() + ", [GR6]=" + f6.get()
+ ", [GR7]=" + f7.get() + ", [GR8]=" + f8.get() + ", [GR9]=" + f9.get());
} else {
System.out.println(NOT_TESTED);
}
}
}
// **
// PRIVATE METHODS
// **
......@@ -758,4 +842,52 @@ public class OaiPmhTextgridOnlineTests {
}
/**
* <p>
* Starts a new OAI-PMH thread.
* </p>
*/
private class OaiPmhGetRecordTestThread implements Callable<Boolean> {
protected String verb;
protected String identifier;
protected String metadataPrefix;
protected String threadName;
/**
* @param theVerb
* @param theIdentifier
* @param theMetadataPrefix
* @param theThreadName
*/
public OaiPmhGetRecordTestThread(String theVerb, String theIdentifier, String theMetadataPrefix,
String theThreadName) {
this.verb = theVerb;
this.identifier = theIdentifier;
this.metadataPrefix = theMetadataPrefix;
this.threadName = theThreadName;
}
/*
* (non-Javadoc)
*
* @see java.util.concurrent.Callable#call()
*/
public Boolean call() throws IOException {
String url = host + "oai?verb=" + VERB_GET_RECORD + "&identifier=" + this.identifier
+ "&metadataPrefix=" + this.metadataPrefix;
TGHttpResponse httpResponse = getHttpResponse(url, this.threadName);
int status = httpResponse.getStatusCode();
String response = IOUtils.readStringFromStream(httpResponse.getInputstream());
System.out.println("\t" + this.threadName + " response: " + response);
return true;
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment