|
From: SVN c. m. f. t. SWORD-A. p. <swo...@li...> - 2012-03-25 15:48:27
|
Revision: 486
http://sword-app.svn.sourceforge.net/sword-app/?rev=486&view=rev
Author: richard-jones
Date: 2012-03-25 15:48:21 +0000 (Sun, 25 Mar 2012)
Log Message:
-----------
add more advanced deposit receipt tests, and fix associated bugs. In addition, add auto-lookup on deposit receipts for appropriate methods
Modified Paths:
--------------
JavaClient2.0/src/main/java/org/swordapp/client/DepositReceipt.java
JavaClient2.0/src/main/java/org/swordapp/client/SWORDClient.java
JavaClient2.0/src/test/java/org/swordapp/client/test/SSSSemiUnits.java
Modified: JavaClient2.0/src/main/java/org/swordapp/client/DepositReceipt.java
===================================================================
--- JavaClient2.0/src/main/java/org/swordapp/client/DepositReceipt.java 2012-03-24 13:05:46 UTC (rev 485)
+++ JavaClient2.0/src/main/java/org/swordapp/client/DepositReceipt.java 2012-03-25 15:48:21 UTC (rev 486)
@@ -171,7 +171,7 @@
List<Element> allextensions = this.entry.getExtensions();
for (Element el : allextensions)
{
- if (el.getQName().toString().startsWith(UriRegistry.DC_NAMESPACE))
+ if (el.getQName().toString().startsWith("{" + UriRegistry.DC_NAMESPACE))
{
dc.add(el);
}
Modified: JavaClient2.0/src/main/java/org/swordapp/client/SWORDClient.java
===================================================================
--- JavaClient2.0/src/main/java/org/swordapp/client/SWORDClient.java 2012-03-24 13:05:46 UTC (rev 485)
+++ JavaClient2.0/src/main/java/org/swordapp/client/SWORDClient.java 2012-03-25 15:48:21 UTC (rev 486)
@@ -352,6 +352,11 @@
public SwordResponse replaceMedia(DepositReceipt receipt, Deposit deposit, AuthCredentials auth)
throws SWORDClientException, SWORDError, ProtocolViolationException
{
+ if (receipt.getEditMediaLink() == null)
+ {
+ receipt = this.getDepositReceipt(receipt.getLocation(), auth);
+ }
+
String url = null;
SwordIdentifier eml = receipt.getEditMediaLink();
if (eml != null)
@@ -464,6 +469,10 @@
public SwordResponse replace(DepositReceipt receipt, Deposit deposit, AuthCredentials auth)
throws SWORDClientException, SWORDError, ProtocolViolationException
{
+ if (receipt.getEditLink() == null)
+ {
+ receipt = this.getDepositReceipt(receipt.getLocation(), auth);
+ }
return this.replace(receipt.getEditLink().getHref(), deposit, auth);
}
@@ -576,12 +585,20 @@
public SwordResponse deleteContent(DepositReceipt receipt, AuthCredentials auth)
throws SWORDClientException, SWORDError, ProtocolViolationException
{
+ if (receipt.getEditMediaLink() == null)
+ {
+ receipt = this.getDepositReceipt(receipt.getLocation(), auth);
+ }
return this.delete(receipt.getEditMediaLink().getHref(), auth);
}
public SwordResponse deleteContainer(DepositReceipt receipt, AuthCredentials auth)
throws SWORDClientException, SWORDError, ProtocolViolationException
{
+ if (receipt.getEditLink() == null)
+ {
+ receipt = this.getDepositReceipt(receipt.getLocation(), auth);
+ }
return this.delete(receipt.getEditLink().getHref(), auth);
}
@@ -656,6 +673,10 @@
public SwordResponse addToMediaResource(DepositReceipt receipt, Deposit deposit, AuthCredentials auth)
throws SWORDClientException, SWORDError, ProtocolViolationException
{
+ if (receipt.getEditMediaLink() == null)
+ {
+ receipt = this.getDepositReceipt(receipt.getLocation(), auth);
+ }
return this.addToMediaResource(receipt.getEditMediaLink().getHref(), deposit, auth);
}
@@ -774,6 +795,10 @@
public DepositReceipt addToContainer(DepositReceipt receipt, Deposit deposit, AuthCredentials auth)
throws SWORDClientException, SWORDError, ProtocolViolationException
{
+ if (receipt.getEditLink() == null)
+ {
+ receipt = this.getDepositReceipt(receipt.getLocation(), auth);
+ }
return this.addToContainer(receipt.getEditLink().getHref(), deposit, auth);
}
@@ -948,6 +973,11 @@
public DepositReceipt complete(DepositReceipt receipt, AuthCredentials auth)
throws SWORDClientException, ProtocolViolationException, SWORDError
{
+ if (receipt.getEditLink() == null)
+ {
+ receipt = this.getDepositReceipt(receipt.getLocation(), auth);
+ }
+
String url = null;
SwordIdentifier el = receipt.getEditLink();
if (el != null)
@@ -1187,6 +1217,11 @@
public Statement getStatement(DepositReceipt receipt, String type, AuthCredentials auth)
throws SWORDClientException, StatementParseException, ProtocolViolationException, SWORDError
{
+ if (receipt.getStatementLink(type) == null)
+ {
+ receipt = this.getDepositReceipt(receipt.getLocation(), auth);
+ }
+
SwordIdentifier si = receipt.getStatementLink(type);
if (si == null)
{
Modified: JavaClient2.0/src/test/java/org/swordapp/client/test/SSSSemiUnits.java
===================================================================
--- JavaClient2.0/src/test/java/org/swordapp/client/test/SSSSemiUnits.java 2012-03-24 13:05:46 UTC (rev 485)
+++ JavaClient2.0/src/test/java/org/swordapp/client/test/SSSSemiUnits.java 2012-03-25 15:48:21 UTC (rev 486)
@@ -1,5 +1,6 @@
package org.swordapp.client.test;
+import org.apache.abdera.model.Element;
import org.apache.commons.codec.digest.DigestUtils;
import org.junit.Before;
import org.junit.Test;
@@ -8,6 +9,7 @@
import org.swordapp.client.ClientConfiguration;
import org.swordapp.client.Deposit;
import org.swordapp.client.DepositReceipt;
+import org.swordapp.client.EntryPart;
import org.swordapp.client.OreStatement;
import org.swordapp.client.SWORDClient;
import org.swordapp.client.SWORDCollection;
@@ -15,6 +17,7 @@
import org.swordapp.client.ServerResource;
import org.swordapp.client.ServiceDocument;
import org.swordapp.client.Statement;
+import org.swordapp.client.SwordResponse;
import org.swordapp.client.UriRegistry;
import java.io.FileInputStream;
@@ -123,33 +126,82 @@
ServiceDocument sd = client.getServiceDocument(this.sdIRI, new AuthCredentials(this.user, this.pass));
SWORDCollection col = sd.getWorkspaces().get(0).getCollections().get(0);
- Deposit deposit = new Deposit();
- deposit.setFile(new FileInputStream(this.file));
- deposit.setMimeType("application/zip");
- deposit.setFilename("example.zip");
- deposit.setPackaging(UriRegistry.PACKAGE_SIMPLE_ZIP);
- deposit.setMd5(this.fileMd5);
+ Deposit media = new Deposit();
+ media.setFile(new FileInputStream(this.file));
+ media.setMimeType("application/zip");
+ media.setFilename("example.zip");
+ media.setPackaging(UriRegistry.PACKAGE_SIMPLE_ZIP);
+ media.setMd5(this.fileMd5);
- DepositReceipt receipt = client.deposit(col, deposit, new AuthCredentials(this.user, this.pass));
+ DepositReceipt receipt = client.deposit(col, media, new AuthCredentials(this.user, this.pass, this.obo));
- // check all of the methods on the receipt
+ assertEquals(receipt.getStatusCode(), 201);
+ assertTrue(receipt.getLocation() != null);
+ assertEquals(receipt.getDerivedResourceLinks().size(), 4);
+ assertTrue(receipt.getOriginalDepositLink() != null);
+
assertTrue(receipt.getEditMediaLink() != null);
- assertTrue(receipt.getLocation() != null);
- assertEquals(receipt.getStatusCode(), 201);
assertTrue(receipt.getAtomStatementLink() != null);
assertEquals(receipt.getContentLink().getType(), "application/zip");
- assertEquals(receipt.getDerivedResourceLinks().size(), 4);
assertTrue(receipt.getEditLink() != null);
assertTrue(receipt.getOREStatementLink() != null);
- assertTrue(receipt.getOriginalDepositLink() != null);
assertEquals(receipt.getPackaging().size(), 1);
assertTrue(receipt.getPackaging().contains(UriRegistry.PACKAGE_SIMPLE_ZIP));
assertTrue(receipt.getSplashPageLink() != null);
assertTrue(receipt.getStatementLink("application/rdf+xml") != null);
assertTrue(receipt.getStatementLink("application/atom+xml;type=feed") != null);
assertTrue(receipt.getSwordEditLink() != null);
+ assertEquals(receipt.getTreatment(), "Treatment description");
+ assertEquals(receipt.getVerboseDescription(), "SSS has done this, that and the other to process the deposit");
+
+ EntryPart ep = new EntryPart();
+ ep.addDublinCore("title", "An entry only deposit");
+ ep.addDublinCore("abstract", "abstract");
+ ep.addDublinCore("identifier", "http://whatever/");
+
+ Deposit metadata = new Deposit();
+ metadata.setEntryPart(ep);
+
+ SwordResponse response = client.replace(receipt, metadata, new AuthCredentials(this.user, this.pass, this.obo));
+ assertEquals(response.getStatusCode(), 200);
+
+ receipt = client.getDepositReceipt(receipt.getLocation(), new AuthCredentials(this.user, this.pass, this.obo));
+
+ assertTrue(receipt.getEditMediaLink() != null);
+ assertTrue(receipt.getAtomStatementLink() != null);
+ assertEquals(receipt.getContentLink().getType(), "application/zip");
+ assertTrue(receipt.getEditLink() != null);
+ assertTrue(receipt.getOREStatementLink() != null);
+ assertEquals(receipt.getPackaging().size(), 1);
+ assertTrue(receipt.getPackaging().contains(UriRegistry.PACKAGE_SIMPLE_ZIP));
+ assertTrue(receipt.getSplashPageLink() != null);
+ assertTrue(receipt.getStatementLink("application/rdf+xml") != null);
+ assertTrue(receipt.getStatementLink("application/atom+xml;type=feed") != null);
+ assertTrue(receipt.getSwordEditLink() != null);
assertTrue(receipt.getTreatment() != null);
assertTrue(receipt.getVerboseDescription() != null);
+
+ List<Element> dcs = receipt.getDublinCore();
+ int count = 0;
+ for (Element dc : dcs)
+ {
+ if (dc.getQName().getLocalPart().equals("title"))
+ {
+ assertEquals(dc.getText(), "An entry only deposit");
+ count++;
+ }
+ if (dc.getQName().getLocalPart().equals("abstract"))
+ {
+ assertEquals(dc.getText(), "abstract");
+ count++;
+ }
+ if (dc.getQName().getLocalPart().equals("identifier"))
+ {
+ assertEquals(dc.getText(), "http://whatever/");
+ count++;
+ }
+ }
+ assertEquals(count, 3);
}
@Test
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|