You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
112 lines
4.4 KiB
112 lines
4.4 KiB
package de.anomic.soap.services;
|
|
|
|
import java.io.IOException;
|
|
import java.rmi.RemoteException;
|
|
import java.util.Date;
|
|
|
|
import javax.activation.DataHandler;
|
|
import javax.activation.DataSource;
|
|
import javax.xml.rpc.ServiceException;
|
|
import javax.xml.soap.SOAPException;
|
|
|
|
import org.apache.axis.attachments.AttachmentPart;
|
|
import org.apache.axis.attachments.PlainTextDataSource;
|
|
import org.apache.axis.client.Stub;
|
|
import org.apache.axis.utils.XMLUtils;
|
|
import org.w3c.dom.Document;
|
|
|
|
import de.anomic.server.serverFileUtils;
|
|
|
|
import yacy.soap.share.ShareService;
|
|
import yacy.soap.share.ShareServiceServiceLocator;
|
|
|
|
public class ShareServiceTest extends AbstractServiceTest {
|
|
|
|
protected void createServiceClass() throws ServiceException {
|
|
// construct Soap object
|
|
ShareServiceServiceLocator locator = new ShareServiceServiceLocator();
|
|
locator.setshareEndpointAddress(getBaseServiceURL() + "share");
|
|
service = locator.getshare();
|
|
}
|
|
|
|
public void testCreateDeleteDir() throws SOAPException, IOException {
|
|
String newDirName = "junit_test_" + System.currentTimeMillis();
|
|
String newFileName = "import.txt";
|
|
|
|
/* ===================================================================
|
|
* Create directory
|
|
* =================================================================== */
|
|
System.out.println("Creating new directory ...");
|
|
((ShareService)service).createDirectory("/",newDirName);
|
|
|
|
/* ===================================================================
|
|
* Upload file
|
|
* =================================================================== */
|
|
System.out.println("Uploading test file ...");
|
|
|
|
// create datasource to hold the attachment content
|
|
String testText = "Test text of the test file";
|
|
DataSource data = new PlainTextDataSource(newFileName,testText);
|
|
DataHandler attachmentFile = new DataHandler(data);
|
|
|
|
// creating attachment part
|
|
AttachmentPart part = new AttachmentPart();
|
|
part.setDataHandler(attachmentFile);
|
|
part.setContentType("text/plain");
|
|
part.setContentId(newFileName);
|
|
|
|
// setting the attachment format that should be used
|
|
((Stub)service)._setProperty(org.apache.axis.client.Call.ATTACHMENT_ENCAPSULATION_FORMAT,org.apache.axis.client.Call.ATTACHMENT_ENCAPSULATION_FORMAT_MIME);
|
|
((Stub)service).addAttachment(part);
|
|
((ShareService)service).uploadFile(newDirName,true,"jUnit Testupload at " + new Date());
|
|
|
|
// clear attachment
|
|
((Stub)service).clearAttachments();
|
|
|
|
/* ===================================================================
|
|
* Download file
|
|
* =================================================================== */
|
|
System.out.println("Downloading test file ...");
|
|
|
|
// execute service call
|
|
String md5 = ((ShareService)service).getFile(newDirName,newFileName);
|
|
|
|
// get received attachments
|
|
Object[] attachments = ((Stub)service).getAttachments();
|
|
|
|
assertTrue(attachments.length == 1);
|
|
assertTrue(attachments[0] instanceof AttachmentPart);
|
|
|
|
// get datahandler
|
|
DataHandler dh = ((AttachmentPart)attachments[0]).getDataHandler();
|
|
|
|
// cread content
|
|
byte[] content = serverFileUtils.read(dh.getInputStream());
|
|
assertTrue(content.length > 0);
|
|
|
|
// convert it to string
|
|
String contentString = new String(content,"UTF-8");
|
|
assertEquals(testText,contentString);
|
|
|
|
/* ===================================================================
|
|
* Change file comment
|
|
* =================================================================== */
|
|
System.out.println("Changing file comment ...");
|
|
((ShareService)service).changeComment(newDirName,newFileName,"New comment on this file",true);
|
|
|
|
/* ===================================================================
|
|
* Get dirlist
|
|
* =================================================================== */
|
|
System.out.println("Get dirlist ... ");
|
|
Document xml =((ShareService)service).getDirList(newDirName);
|
|
System.out.println(XMLUtils.DocumentToString(xml));
|
|
|
|
/* ===================================================================
|
|
* Delete directory
|
|
* =================================================================== */
|
|
System.out.println("Deleting directory and testfile ... ");
|
|
((ShareService)service).delete("/",newDirName);
|
|
}
|
|
|
|
}
|