package org.sakaiproject.citation.impl;
import org.sakaiproject.citation.api.Citation;
import org.sakaiproject.citation.api.CitationCollection;
import org.sakaiproject.citation.api.Schema;
import org.sakaiproject.citation.impl.openurl.BookConverter;
import org.sakaiproject.citation.impl.openurl.ContextObject;
import org.sakaiproject.citation.impl.openurl.ContextObjectEntity;
import org.sakaiproject.citation.impl.openurl.KEVFormat;
import org.sakaiproject.citation.impl.openurl.ContextObject.Entity;
public class GeneralOpenUrlTests extends BaseCitationServiceSupport {
public void testCreateCollection() {
BaseCitationService api = createCitationService();
BookConverter bookConverter = new BookConverter();
bookConverter.setCitationService(api);
CitationCollection collection = api.addCollection();
Citation book = api.addCitation("book");
book.setCitationProperty(Schema.CREATOR, "An Author");
book.setCitationProperty(Schema.TITLE, "Book Title & More");
book.setCitationProperty(Schema.ISN, "123456789X");
ContextObjectEntity bookEntity = bookConverter.convert(book);
ContextObject contextObject = new ContextObject();
contextObject.getEntities().put(Entity.REFERENT, bookEntity);
KEVFormat formatter = new KEVFormat();
String output = formatter.encode(contextObject);
assertNotNull(output);
System.out.println(output);
ContextObject parsed = formatter.parse("&ctx_id=Z39.88-2004&rft_val_fmt=info:ofi/fmt:kev:mtx:ctx&rft.genre=book&rft.btitle=Book%20Title&rft.au=An%20Author");
System.out.println(parsed.getEntities().get(Entity.REFERENT).getValues().get("btitle"));
api.save(collection);
}
}