|
From: SVN c. m. f. t. SWORD-A. p. <swo...@li...> - 2012-03-17 10:23:06
|
Revision: 477
http://sword-app.svn.sourceforge.net/sword-app/?rev=477&view=rev
Author: richard-jones
Date: 2012-03-17 10:22:59 +0000 (Sat, 17 Mar 2012)
Log Message:
-----------
add swordidentifier class which normalises the interface to the various Link and IRI objects which Abdera provides, and use this class throughout the relevant interfaces; associated tests included
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/main/java/org/swordapp/client/SwordCli.java
JavaClient2.0/src/test/java/org/swordapp/client/test/ClientTests.java
JavaClient2.0/src/test/java/org/swordapp/client/test/SSSSemiUnits.java
JavaClient2.0/src/test/java/org/swordapp/client/test/SpecTests.java
Added Paths:
-----------
JavaClient2.0/src/main/java/org/swordapp/client/SwordIdentifier.java
Modified: JavaClient2.0/src/main/java/org/swordapp/client/DepositReceipt.java
===================================================================
--- JavaClient2.0/src/main/java/org/swordapp/client/DepositReceipt.java 2012-03-16 16:23:32 UTC (rev 476)
+++ JavaClient2.0/src/main/java/org/swordapp/client/DepositReceipt.java 2012-03-17 10:22:59 UTC (rev 477)
@@ -43,27 +43,22 @@
return entry;
}
- public Link getEditLink()
+ public SwordIdentifier getEditLink()
{
- return this.entry.getEditLink();
+ return new SwordIdentifier(this.entry.getEditLink());
}
- public IRI getContentSrc()
+ public SwordIdentifier getContentLink()
{
- return this.entry.getContentSrc();
+ return new SwordIdentifier(this.entry.getContentSrc(), this.entry.getContentMimeType());
}
- public MimeType getContentMimeType()
+ public SwordIdentifier getEditMediaLink()
{
- return this.entry.getContentMimeType();
+ return new SwordIdentifier(this.entry.getEditMediaLink());
}
- public Link getEditMediaLink()
- {
- return this.entry.getEditMediaLink();
- }
-
- public Link getEditMediaLink(String type)
+ public SwordIdentifier getEditMediaLink(String type)
throws SWORDClientException
{
try
@@ -76,7 +71,7 @@
if ("edit-media".equals(link.getRel()) &&
link.getMimeType().toString().equals(mt.toString()))
{
- return link;
+ return new SwordIdentifier(link);
}
}
}
@@ -88,14 +83,14 @@
}
}
- public Link getEditMediaLink(String type, String hreflang)
+ public SwordIdentifier getEditMediaLink(String type, String hreflang)
{
- return this.entry.getEditMediaLink(type, hreflang);
+ return new SwordIdentifier(this.entry.getEditMediaLink(type, hreflang));
}
- public Link getSwordEditLink()
+ public SwordIdentifier getSwordEditLink()
{
- return this.entry.getLink(UriRegistry.REL_SWORD_EDIT);
+ return new SwordIdentifier(this.entry.getLink(UriRegistry.REL_SWORD_EDIT));
}
public String getTreatment()
@@ -129,7 +124,7 @@
return packages;
}
- public Link getStatementLink(String type)
+ public SwordIdentifier getStatementLink(String type)
throws SWORDClientException
{
try
@@ -141,7 +136,7 @@
if (statementRel.equals(link.getRel()) &&
link.getMimeType().toString().equals(mt.toString()))
{
- return link;
+ return new SwordIdentifier(link);
}
}
return null;
@@ -152,16 +147,16 @@
}
}
- public Link getOREStatementLink()
+ public SwordIdentifier getOREStatementLink()
throws SWORDClientException
{
return this.getStatementLink("application/rdf+xml");
}
- public Link getAtomStatementLink()
+ public SwordIdentifier getAtomStatementLink()
throws SWORDClientException
{
- Link stmt = this.getStatementLink("application/atom+xml;type=feed");
+ SwordIdentifier stmt = this.getStatementLink("application/atom+xml;type=feed");
if (stmt == null)
{
// try an alternative mimetype
@@ -184,23 +179,29 @@
return dc;
}
- public IRI getSplashPageIRI()
+ public SwordIdentifier getSplashPageLink()
{
Link alt = this.entry.getAlternateLink();
if (alt != null)
{
- return alt.getHref();
+ return new SwordIdentifier(alt);
}
return null;
}
- public Link getOriginalDepositLink()
+ public SwordIdentifier getOriginalDepositLink()
{
- return this.entry.getLink(UriRegistry.REL_ORIGINAL_DEPOSIT);
+ return new SwordIdentifier(this.entry.getLink(UriRegistry.REL_ORIGINAL_DEPOSIT));
}
- public List<Link> getDerivedResourceLinks()
+ public List<SwordIdentifier> getDerivedResourceLinks()
{
- return this.entry.getLinks(UriRegistry.REL_DERIVED_RESOURCE);
+ List<SwordIdentifier> sis = new ArrayList<SwordIdentifier>();
+ List<Link> links = this.entry.getLinks(UriRegistry.REL_DERIVED_RESOURCE);
+ for (Link link : links)
+ {
+ sis.add(new SwordIdentifier(link));
+ }
+ return sis;
}
}
Modified: JavaClient2.0/src/main/java/org/swordapp/client/SWORDClient.java
===================================================================
--- JavaClient2.0/src/main/java/org/swordapp/client/SWORDClient.java 2012-03-16 16:23:32 UTC (rev 476)
+++ JavaClient2.0/src/main/java/org/swordapp/client/SWORDClient.java 2012-03-17 10:22:59 UTC (rev 477)
@@ -1,6 +1,7 @@
package org.swordapp.client;
import org.apache.abdera.Abdera;
+import org.apache.abdera.i18n.iri.IRI;
import org.apache.abdera.model.Document;
import org.apache.abdera.model.Element;
import org.apache.abdera.model.Entry;
@@ -343,12 +344,13 @@
throws SWORDClientException, SWORDError, ProtocolViolationException
{
String url = null;
- Link eml = receipt.getEditMediaLink();
+ SwordIdentifier eml = receipt.getEditMediaLink();
if (eml != null)
{
- url = eml.getHref().toString();
+ url = eml.getHref();
+ return this.replaceMedia(url, deposit, auth);
}
- return this.replaceMedia(url, deposit, auth);
+ return null;
}
public SwordResponse replaceMedia(String editMediaURL, Deposit deposit, AuthCredentials auth)
@@ -882,12 +884,13 @@
throws SWORDClientException, ProtocolViolationException, SWORDError
{
String url = null;
- Link eml = receipt.getEditMediaLink();
+ SwordIdentifier eml = receipt.getEditMediaLink();
if (eml != null)
{
- url = eml.getHref().toString();
+ url = eml.getHref();
+ return this.complete(url, auth);
}
- return this.complete(url, auth);
+ return null;
}
public DepositReceipt complete(String editURL, AuthCredentials auth)
@@ -1182,7 +1185,25 @@
}
}
- public Content getContent(String contentURL, String mimeType)
+ public Content getContent(SwordIdentifier contentId)
+ throws SWORDClientException, ProtocolViolationException, SWORDError
+ {
+ return this.getContent(contentId.getHref(), contentId.getType(), UriRegistry.PACKAGE_SIMPLE_ZIP, null);
+ }
+
+ public Content getContent(SwordIdentifier contentId, AuthCredentials auth)
+ throws SWORDClientException, ProtocolViolationException, SWORDError
+ {
+ return this.getContent(contentId.getHref(), contentId.getType(), UriRegistry.PACKAGE_SIMPLE_ZIP, auth);
+ }
+
+ public Content getContent(SwordIdentifier contentId, String packaging, AuthCredentials auth)
+ throws SWORDClientException, ProtocolViolationException, SWORDError
+ {
+ return this.getContent(contentId.getHref(), contentId.getType(), packaging, auth);
+ }
+
+ public Content getContent(String contentURL, String mimeType)
throws SWORDClientException, ProtocolViolationException, SWORDError
{
return this.getContent(contentURL, mimeType, UriRegistry.PACKAGE_SIMPLE_ZIP, null);
@@ -1260,7 +1281,7 @@
{
throw new SWORDClientException(e);
}
- if (feedType.toString().equals(responseType.toString())) // urgh, but such is life
+ if (responseType != null && feedType.toString().equals(responseType.toString())) // urgh, but such is life
{
log.info("Content retrieved from " + url.toString() + " is an Atom Feed");
Document<Feed> doc = resp.getDocument();
Modified: JavaClient2.0/src/main/java/org/swordapp/client/SwordCli.java
===================================================================
--- JavaClient2.0/src/main/java/org/swordapp/client/SwordCli.java 2012-03-16 16:23:32 UTC (rev 476)
+++ JavaClient2.0/src/main/java/org/swordapp/client/SwordCli.java 2012-03-17 10:22:59 UTC (rev 477)
@@ -139,9 +139,9 @@
}
}
- Link oreStatementLink = receipt.getStatementLink("application/rdf+xml");
+ SwordIdentifier oreStatementLink = receipt.getStatementLink("application/rdf+xml");
String oreUri = oreStatementLink.getHref().toString();
- Link feedStatementLink = receipt.getStatementLink("application/atom+xml;type=feed");
+ SwordIdentifier feedStatementLink = receipt.getStatementLink("application/atom+xml;type=feed");
String feedUri = feedStatementLink.getHref().toString();
Statement oreStmt = client.getStatement(oreUri, new OreStatement(), auth);
@@ -339,7 +339,7 @@
}
}
- Link eml = receipt.getEditMediaLink();
+ SwordIdentifier eml = receipt.getEditMediaLink();
String emiri = eml.getHref().toString();
InputStream is2 = new FileInputStream(new File(exampleZip));
@@ -417,7 +417,7 @@
}
}
- Link eml = receipt.getEditMediaLink();
+ SwordIdentifier eml = receipt.getEditMediaLink();
String emiri = eml.getHref().toString();
SwordResponse resp = client.delete(emiri, auth);
@@ -522,7 +522,7 @@
}
}
- Link eml = receipt.getEditMediaLink("application/zip");
+ SwordIdentifier eml = receipt.getEditMediaLink("application/zip");
String emiri = eml.getHref().toString();
InputStream is2 = new FileInputStream(new File(exampleZip));
@@ -554,12 +554,11 @@
}
}
- String contentSrc = receipt.getContentSrc().toString();
- MimeType contentMime = receipt.getContentMimeType();
- Link eml = receipt.getEditMediaLink("application/atom+xml;type=feed");
+ SwordIdentifier contentSrc = receipt.getContentLink();
+ SwordIdentifier eml = receipt.getEditMediaLink("application/atom+xml;type=feed");
String emiri = eml.getHref().toString();
- System.out.println("Content: " + contentSrc + " - " + contentMime.toString());
+ System.out.println("Content: " + contentSrc.getHref() + " - " + contentSrc.getType());
System.out.println("EM: " + emiri);
// now we need to get the content out as an atom feed
@@ -593,16 +592,15 @@
}
}
- String contentSrc = receipt.getContentSrc().toString();
- MimeType contentMime = receipt.getContentMimeType();
- Link eml = receipt.getEditMediaLink("application/zip");
+ SwordIdentifier contentSrc = receipt.getContentLink();
+ SwordIdentifier eml = receipt.getEditMediaLink("application/zip");
String emiri = eml.getHref().toString();
- System.out.println("Content: " + contentSrc + " - " + contentMime.toString());
+ System.out.println("Content: " + contentSrc.getHref() + " - " + contentSrc.getType());
System.out.println("EM: " + emiri);
// now we need to get the content out
- Content content = client.getContent(emiri, contentMime.toString(), UriRegistry.PACKAGE_SIMPLE_ZIP, auth);
+ Content content = client.getContent(emiri, contentSrc.getType(), UriRegistry.PACKAGE_SIMPLE_ZIP, auth);
System.out.println(content.getPackaging() + " - " + content.getMimeType());
}
@@ -765,7 +763,7 @@
}
}
- Link odl = receipt.getOriginalDepositLink();
+ SwordIdentifier odl = receipt.getOriginalDepositLink();
InputStream is2 = new FileInputStream(new File(docx));
Deposit d2 = factory.replaceBinary(is2, "hy.docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", UriRegistry.PACKAGE_BINARY, null, true, false);
System.out.println(odl.getHref().toString());
Added: JavaClient2.0/src/main/java/org/swordapp/client/SwordIdentifier.java
===================================================================
--- JavaClient2.0/src/main/java/org/swordapp/client/SwordIdentifier.java (rev 0)
+++ JavaClient2.0/src/main/java/org/swordapp/client/SwordIdentifier.java 2012-03-17 10:22:59 UTC (rev 477)
@@ -0,0 +1,63 @@
+package org.swordapp.client;
+
+import org.apache.abdera.i18n.iri.IRI;
+import org.apache.abdera.model.Link;
+
+import javax.activation.MimeType;
+
+public class SwordIdentifier
+{
+ private Link link = null;
+ private IRI iri = null;
+ private MimeType mimeType = null;
+
+ private String href = null;
+ private String type = null;
+ private String rel = null;
+
+ public SwordIdentifier(String href, String type, String rel)
+ {
+ this.href = href;
+ this.type = type;
+ this.rel = rel;
+ }
+
+ public SwordIdentifier(String href, String type)
+ {
+ this(href, type, null);
+ }
+
+ public SwordIdentifier(IRI iri, MimeType mimeType, String rel)
+ {
+ this(iri.toString(), mimeType != null ? mimeType.toString().replace(" ", "") : null, rel);
+
+ this.iri = iri;
+ this.mimeType = mimeType;
+ }
+
+ public SwordIdentifier(IRI iri, MimeType mimeType)
+ {
+ this(iri.toString(), mimeType != null ? mimeType.toString().replace(" ", "") : null);
+
+ this.iri = iri;
+ this.mimeType = mimeType;
+ }
+
+ public SwordIdentifier(Link link)
+ {
+ this(link.getHref(), link.getMimeType(), link.getRel());
+ this.link = link;
+ }
+
+ public String getHref() { return this.href; }
+
+ public String getType() { return this.type; }
+
+ public String getRel() { return this.rel; }
+
+ public Link getLink() { return this.link; }
+
+ public IRI getIRI() { return this.iri; }
+
+ public MimeType getMimeType() { return this.mimeType; }
+}
Modified: JavaClient2.0/src/test/java/org/swordapp/client/test/ClientTests.java
===================================================================
--- JavaClient2.0/src/test/java/org/swordapp/client/test/ClientTests.java 2012-03-16 16:23:32 UTC (rev 476)
+++ JavaClient2.0/src/test/java/org/swordapp/client/test/ClientTests.java 2012-03-17 10:22:59 UTC (rev 477)
@@ -1,12 +1,16 @@
package org.swordapp.client.test;
+import org.apache.abdera.i18n.iri.IRI;
import org.junit.*;
import static org.junit.Assert.*;
import org.swordapp.client.ClientConfiguration;
+import org.swordapp.client.Content;
import org.swordapp.client.Deposit;
import org.swordapp.client.EntryPart;
import org.swordapp.client.SWORDClient;
+import org.swordapp.client.SwordIdentifier;
+import javax.activation.MimeType;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
@@ -52,4 +56,68 @@
String s = new String(bytes);
assertEquals(s, "test");
}
+
+ @Test
+ public void contentObject()
+ throws Exception
+ {
+ Content content = new Content();
+
+ content.setInputStream(new ByteArrayInputStream("test".getBytes()));
+ content.setMimeType(new MimeType("application/atom+xml;type=feed"));
+ content.setPackaging("http://packaging/");
+
+ assertEquals(content.getMimeType().toString(), "application/atom+xml; type=feed");
+ assertEquals(content.getPackaging(), "http://packaging/");
+
+ byte[] bytes = new byte["test".getBytes().length];
+ content.getInputStream().read(bytes);
+ String s = new String(bytes);
+ assertEquals(s, "test");
+ }
+
+ @Test
+ public void identifierObject()
+ throws Exception
+ {
+ String href = "http://testing/";
+ String type = "application/atom+xml;type=feed";
+ String rel = "edit-media";
+
+ IRI iri = new IRI(href);
+ MimeType mime = new MimeType(type);
+
+ // test the different constructors
+ SwordIdentifier si = new SwordIdentifier(href, type, rel);
+ assertEquals(si.getHref(), href);
+ assertEquals(si.getType(), type);
+ assertEquals(si.getRel(), rel);
+ assertNull(si.getIRI());
+ assertNull(si.getLink());
+ assertNull(si.getMimeType());
+
+ SwordIdentifier si1 = new SwordIdentifier(href, type);
+ assertEquals(si1.getHref(), href);
+ assertEquals(si1.getType(), type);
+ assertNull(si1.getRel());
+ assertNull(si1.getIRI());
+ assertNull(si1.getLink());
+ assertNull(si1.getMimeType());
+
+ SwordIdentifier si2 = new SwordIdentifier(iri, mime, rel);
+ assertEquals(si2.getHref(), href);
+ assertEquals(si2.getType(), type);
+ assertEquals(si2.getRel(), rel);
+ assertEquals(si2.getIRI(), iri);
+ assertNull(si2.getLink());
+ assertEquals(si2.getMimeType(), mime);
+
+ SwordIdentifier si3 = new SwordIdentifier(iri, mime);
+ assertEquals(si3.getHref(), href);
+ assertEquals(si3.getType(), type);
+ assertNull(si3.getRel());
+ assertEquals(si3.getIRI(), iri);
+ assertNull(si3.getLink());
+ assertEquals(si3.getMimeType(), mime);
+ }
}
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-16 16:23:32 UTC (rev 476)
+++ JavaClient2.0/src/test/java/org/swordapp/client/test/SSSSemiUnits.java 2012-03-17 10:22:59 UTC (rev 477)
@@ -123,13 +123,13 @@
assertTrue(receipt.getLocation() != null);
assertEquals(receipt.getStatusCode(), 201);
assertTrue(receipt.getAtomStatementLink() != null);
- assertEquals(receipt.getContentMimeType().toString(), "application/zip");
+ 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.getSplashPageIRI() != null);
+ assertTrue(receipt.getSplashPageLink() != null);
assertTrue(receipt.getStatementLink("application/rdf+xml") != null);
assertTrue(receipt.getStatementLink("application/atom+xml;type=feed") != null);
assertTrue(receipt.getSwordEditLink() != null);
Modified: JavaClient2.0/src/test/java/org/swordapp/client/test/SpecTests.java
===================================================================
--- JavaClient2.0/src/test/java/org/swordapp/client/test/SpecTests.java 2012-03-16 16:23:32 UTC (rev 476)
+++ JavaClient2.0/src/test/java/org/swordapp/client/test/SpecTests.java 2012-03-17 10:22:59 UTC (rev 477)
@@ -1,20 +1,24 @@
package org.swordapp.client.test;
+import nu.xom.jaxen.function.FalseFunction;
import org.apache.commons.codec.digest.DigestUtils;
import org.junit.Test;
import org.junit.Before;
import static org.junit.Assert.*;
import org.swordapp.client.AuthCredentials;
import org.swordapp.client.ClientConfiguration;
+import org.swordapp.client.Content;
import org.swordapp.client.Deposit;
import org.swordapp.client.DepositReceipt;
import org.swordapp.client.EntryPart;
import org.swordapp.client.SWORDClient;
import org.swordapp.client.SWORDCollection;
+import org.swordapp.client.SWORDError;
import org.swordapp.client.ServiceDocument;
import org.swordapp.client.UriRegistry;
import java.io.FileInputStream;
+import java.util.List;
public class SpecTests
{
@@ -163,173 +167,214 @@
}
*/
- /* Python tests to mimic
+ @Test
+ public void basicCreateResourceWithEntry()
+ throws Exception
+ {
+ SWORDClient client = new SWORDClient(new ClientConfiguration());
+ ServiceDocument sd = client.getServiceDocument(this.sdIRI, new AuthCredentials(this.user, this.pass));
+ SWORDCollection col = sd.getWorkspaces().get(0).getCollections().get(0);
- def test_07_basic_create_resource_with_entry(self):
- conn = Connection(SSS_URL, user_name=SSS_UN, user_pass=SSS_PW)
- conn.get_service_document()
- col = conn.sd.workspaces[0][1][0]
- e = Entry(title="An entry only deposit", id="asidjasidj", dcterms_abstract="abstract", dcterms_identifier="http://whatever/")
- receipt = conn.create(col_iri = col.href,
- metadata_entry = e)
+ EntryPart ep = new EntryPart();
+ ep.addDublinCore("title", "An entry only deposit");
+ ep.addDublinCore("abstract", "abstract");
+ ep.addDublinCore("identifier", "http://whatever/");
- assert receipt.code == 201
- assert receipt.location != None
+ Deposit deposit = new Deposit();
+ deposit.setEntryPart(ep);
- # these last two assertions are contingent on if we actually get a
- # receipt back from the server (which we might not legitimately get)
- assert receipt.dom is None or receipt.parsed == True
- assert receipt.dom is None or receipt.valid == True
+ assertTrue(deposit.isEntryOnly());
- def test_08_advanced_create_resource_with_entry(self):
- conn = Connection(SSS_URL, user_name=SSS_UN, user_pass=SSS_PW, on_behalf_of=SSS_OBO)
- conn.get_service_document()
- col = conn.sd.workspaces[0][1][0]
- e = Entry(title="An entry only deposit", id="asidjasidj", dcterms_abstract="abstract", dcterms_identifier="http://whatever/")
- receipt = conn.create(col_iri = col.href,
- metadata_entry = e,
- in_progress = True,
- suggested_identifier = "1234567890")
+ DepositReceipt receipt = client.deposit(col, deposit, new AuthCredentials(this.user, this.pass));
+ assertEquals(receipt.getStatusCode(), 201);
+ assertTrue(receipt.getLocation() != null);
+ }
- assert receipt.code == 201
- assert receipt.location != None
+ @Test
+ public void advancedCreateResourceWithEntry()
+ throws Exception
+ {
+ SWORDClient client = new SWORDClient(new ClientConfiguration());
+ ServiceDocument sd = client.getServiceDocument(this.sdIRI, new AuthCredentials(this.user, this.pass, this.obo));
+ SWORDCollection col = sd.getWorkspaces().get(0).getCollections().get(0);
- # these last two assertions are contingent on if we actually get a
- # receipt back from the server (which we might not legitimately get)
- assert receipt.dom is None or receipt.parsed == True
- assert receipt.dom is None or receipt.valid == True
+ EntryPart ep = new EntryPart();
+ ep.addDublinCore("title", "An entry only deposit");
+ ep.addDublinCore("abstract", "abstract");
+ ep.addDublinCore("identifier", "http://whatever/");
- def test_09_basic_retrieve_deposit_receipt(self):
- conn = Connection(SSS_URL, user_name=SSS_UN, user_pass=SSS_PW)
- conn.get_service_document()
- col = conn.sd.workspaces[0][1][0]
- with open(PACKAGE) as pkg:
- receipt = conn.create(col_iri = col.href,
- payload=pkg,
- mimetype=PACKAGE_MIME,
- filename="example.zip",
- packaging = 'http://purl.org/net/sword/package/SimpleZip')
+ Deposit deposit = new Deposit();
+ deposit.setEntryPart(ep);
+ deposit.setInProgress(true);
+ deposit.setSuggestedIdentifier("1234567890");
- # we're going to work with the location
- assert receipt.location != None
+ DepositReceipt receipt = client.deposit(col, deposit, new AuthCredentials(this.user, this.pass, this.obo));
+ assertEquals(receipt.getStatusCode(), 201);
+ assertTrue(receipt.getLocation() != null);
+ }
- new_receipt = conn.get_deposit_receipt(receipt.location)
+ @Test
+ public void basicRetrieveDepositReceipt()
+ throws Exception
+ {
+ SWORDClient client = new SWORDClient(new ClientConfiguration());
+ ServiceDocument sd = client.getServiceDocument(this.sdIRI, new AuthCredentials(this.user, this.pass));
+ SWORDCollection col = sd.getWorkspaces().get(0).getCollections().get(0);
- assert new_receipt.code == 200
- assert new_receipt.parsed == True
- assert new_receipt.valid == True
+ 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);
- def test_10_advanced_retrieve_deposit_receipt(self):
- conn = Connection(SSS_URL, user_name=SSS_UN, user_pass=SSS_PW, on_behalf_of=SSS_OBO)
- conn.get_service_document()
- col = conn.sd.workspaces[0][1][0]
- with open(PACKAGE) as pkg:
- receipt = conn.create(col_iri = col.href,
- payload=pkg,
- mimetype=PACKAGE_MIME,
- filename="example.zip",
- packaging = 'http://purl.org/net/sword/package/SimpleZip',
- in_progress = True,
- suggested_identifier = "0987654321")
+ DepositReceipt receipt = client.deposit(col, deposit, new AuthCredentials(this.user, this.pass));
+ assertTrue(receipt.getLocation() != null);
- # we're going to work with the location
- assert receipt.location != None
+ DepositReceipt newReceipt = client.getDepositReceipt(receipt.getLocation(), new AuthCredentials(this.user, this.pass));
+ assertEquals(newReceipt.getStatusCode(), 200);
+ assertTrue(newReceipt.getEntry() != null);
+ }
- new_receipt = conn.get_deposit_receipt(receipt.location)
+ @Test
+ public void advancedRetrieveDepositReceipt()
+ throws Exception
+ {
+ SWORDClient client = new SWORDClient(new ClientConfiguration());
+ ServiceDocument sd = client.getServiceDocument(this.sdIRI, new AuthCredentials(this.user, this.pass, this.obo));
+ SWORDCollection col = sd.getWorkspaces().get(0).getCollections().get(0);
- assert new_receipt.code == 200
- assert new_receipt.parsed == True
- assert new_receipt.valid == True
+ 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.setInProgress(true);
+ deposit.setSuggestedIdentifier("0987654321");
- def test_11_basic_retrieve_content_cont_iri(self):
- conn = Connection(SSS_URL, user_name=SSS_UN, user_pass=SSS_PW)
- conn.get_service_document()
- col = conn.sd.workspaces[0][1][0]
- with open(PACKAGE) as pkg:
- receipt = conn.create(col_iri = col.href,
- payload=pkg,
- mimetype=PACKAGE_MIME,
- filename="example.zip",
- packaging='http://purl.org/net/sword/package/SimpleZip')
- # ensure that we have a receipt (the server may not give us one
- # by default)
- receipt = conn.get_deposit_receipt(receipt.location)
+ DepositReceipt receipt = client.deposit(col, deposit, new AuthCredentials(this.user, this.pass, this.obo));
+ assertTrue(receipt.getLocation() != null);
- # we're going to work with the cont_iri
- assert receipt.cont_iri is not None
+ DepositReceipt newReceipt = client.getDepositReceipt(receipt.getLocation(), new AuthCredentials(this.user, this.pass, this.obo));
+ assertEquals(newReceipt.getStatusCode(), 200);
+ assertTrue(newReceipt.getEntry() != null);
+ }
- resource = conn.get_resource(content_iri=receipt.cont_iri)
+ @Test
+ public void basicRetrieveContentContIRI()
+ throws Exception
+ {
+ SWORDClient client = new SWORDClient(new ClientConfiguration());
+ ServiceDocument sd = client.getServiceDocument(this.sdIRI, new AuthCredentials(this.user, this.pass));
+ SWORDCollection col = sd.getWorkspaces().get(0).getCollections().get(0);
- assert resource.code == 200
- assert resource.content is not None
+ 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);
- def test_12_basic_retrieve_content_em_iri(self):
- conn = Connection(SSS_URL, user_name=SSS_UN, user_pass=SSS_PW)
- conn.get_service_document()
- col = conn.sd.workspaces[0][1][0]
- with open(PACKAGE) as pkg:
- receipt = conn.create(col_iri = col.href,
- payload=pkg,
- mimetype=PACKAGE_MIME,
- filename="example.zip",
- packaging='http://purl.org/net/sword/package/SimpleZip')
- # ensure that we have a receipt (the server may not give us one
- # by default)
- receipt = conn.get_deposit_receipt(receipt.location)
+ DepositReceipt receipt = client.deposit(col, deposit, new AuthCredentials(this.user, this.pass));
+ receipt = client.getDepositReceipt(receipt.getLocation(), new AuthCredentials(this.user, this.pass, this.obo));
- # we're going to work with the edit_media iri
- assert receipt.edit_media is not None
+ assertTrue(receipt.getContentLink() != null);
+ Content content = client.getContent(receipt.getContentLink());
- resource = conn.get_resource(content_iri=receipt.edit_media)
+ assertTrue(content.getInputStream() != null);
+ }
- assert resource.code == 200
- assert resource.content is not None
+ @Test
+ public void basicRetrieveContentEmIRI()
+ throws Exception
+ {
+ SWORDClient client = new SWORDClient(new ClientConfiguration());
+ ServiceDocument sd = client.getServiceDocument(this.sdIRI, new AuthCredentials(this.user, this.pass));
+ SWORDCollection col = sd.getWorkspaces().get(0).getCollections().get(0);
- def test_13_advanced_retrieve_content_em_iri(self):
- conn = Connection(SSS_URL, user_name=SSS_UN, user_pass=SSS_PW)
- conn.get_service_document()
- col = conn.sd.workspaces[0][1][0]
- with open(PACKAGE) as pkg:
- receipt = conn.create(col_iri = col.href,
- payload=pkg,
- mimetype=PACKAGE_MIME,
- filename="example.zip",
- packaging='http://purl.org/net/sword/package/SimpleZip')
- # ensure that we have a receipt (the server may not give us one
- # by default)
- receipt = conn.get_deposit_receipt(receipt.location)
+ 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);
- packaging = 'http://purl.org/net/sword/package/SimpleZip'
- if receipt.packaging is not None and len(receipt.packaging) > 0:
- packaging = receipt.packaging[0]
+ DepositReceipt receipt = client.deposit(col, deposit, new AuthCredentials(this.user, this.pass));
+ receipt = client.getDepositReceipt(receipt.getLocation(), new AuthCredentials(this.user, this.pass));
- resource = conn.get_resource(content_iri=receipt.edit_media, packaging=packaging, on_behalf_of=SSS_OBO)
+ assertTrue(receipt.getEditMediaLink() != null);
+ Content content = client.getContent(receipt.getEditMediaLink(), new AuthCredentials(this.user, this.pass));
- assert resource.code == 200
- assert resource.content is not None
+ assertTrue(content.getInputStream() != null);
+ }
- def test_14_error_retrieve_content_em_iri(self):
- conn = Connection(SSS_URL, user_name=SSS_UN, user_pass=SSS_PW,
- error_response_raises_exceptions=False)
- conn.get_service_document()
- col = conn.sd.workspaces[0][1][0]
- with open(PACKAGE) as pkg:
- receipt = conn.create(col_iri = col.href,
- payload=pkg,
- mimetype=PACKAGE_MIME,
- filename="example.zip",
- packaging='http://purl.org/net/sword/package/SimpleZip')
- # ensure that we have a receipt (the server may not give us one
- # by default)
- receipt = conn.get_deposit_receipt(receipt.location)
+ @Test
+ public void advancedRetrieveContentEmIRI()
+ throws Exception
+ {
+ SWORDClient client = new SWORDClient(new ClientConfiguration());
+ ServiceDocument sd = client.getServiceDocument(this.sdIRI, new AuthCredentials(this.user, this.pass, this.obo));
+ SWORDCollection col = sd.getWorkspaces().get(0).getCollections().get(0);
- error = 'http://purl.org/net/sword/package/IJustMadeThisUp'
- response = conn.get_resource(content_iri=receipt.edit_media, packaging=error)
+ 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);
- assert response.code == 406
- assert isinstance(response, Error_Document)
- assert response.error_href == "http://purl.org/net/sword/error/ErrorContent"
+ DepositReceipt receipt = client.deposit(col, deposit, new AuthCredentials(this.user, this.pass, this.obo));
+ receipt = client.getDepositReceipt(receipt.getLocation(), new AuthCredentials(this.user, this.pass, this.obo));
+ assertTrue(receipt.getEditMediaLink() != null);
+
+ List<String> packagings = receipt.getPackaging();
+ String packaging = UriRegistry.PACKAGE_SIMPLE_ZIP;
+ if (packagings.size() > 0)
+ {
+ packaging = packagings.get(0);
+ }
+ Content content = client.getContent(receipt.getEditMediaLink(), packaging, new AuthCredentials(this.user, this.pass, this.obo));
+
+ assertTrue(content.getInputStream() != null);
+ }
+
+ @Test
+ public void errorRetrieveContentEmIRI()
+ throws Exception
+ {
+ SWORDClient client = new SWORDClient(new ClientConfiguration());
+ 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);
+
+ DepositReceipt receipt = client.deposit(col, deposit, new AuthCredentials(this.user, this.pass));
+ receipt = client.getDepositReceipt(receipt.getLocation(), new AuthCredentials(this.user, this.pass));
+
+ String error = "http://purl.org/net/sword/package/IJustMadeThisUp";
+ boolean wasError = false;
+ try
+ {
+ Content content = client.getContent(receipt.getEditMediaLink(), error, new AuthCredentials(this.user, this.pass));
+ }
+ catch (SWORDError e)
+ {
+ assertEquals(e.getStatus(), 406);
+ assertEquals(e.getErrorURI(), "http://purl.org/net/sword/error/ErrorContent");
+ wasError = true;
+ }
+ assertTrue(wasError);
+ }
+
+ /* Python tests to mimic
+
def test_15_retrieve_content_em_iri_as_feed(self):
conn = Connection(SSS_URL, user_name=SSS_UN, user_pass=SSS_PW)
conn.get_service_document()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|