package org.cagrid.cds.resource;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import javax.xml.soap.MessageFactory;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPMessage;
import org.cagrid.cds.model.DelegationIdentifier;
import org.cagrid.cds.service.impl.delegatedcredential.DelegatedCredentialResourceHome;
import org.cagrid.wsrf.properties.ResourceKey;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class SimpleResourceKeyTest {
@Before
public void setUp() throws Exception {
}
@Test
public void testToSOAPElement() throws SOAPException, IOException {
DelegatedCredentialResourceHome home = new DelegatedCredentialResourceHome();
DelegationIdentifier id = new DelegationIdentifier();
id.setDelegationId(5);
ResourceKey resourceKey = null;
try {
resourceKey = home.getResourceKey(id);
} catch (Exception e) {
e.printStackTrace();
Assert.fail(e.getMessage());
}
SOAPElement soapElement = resourceKey.toSOAPElement();
Assert.assertEquals(DelegatedCredentialResourceHome.RESOURCE_KEY,soapElement.getElementQName());
soapElement.getChildElements();
MessageFactory factory = MessageFactory.newInstance();
SOAPMessage message = factory.createMessage();
SOAPBody body = message.getSOAPBody();
body.addChildElement(soapElement);
ByteArrayOutputStream out = new ByteArrayOutputStream();
message.writeTo(out);
System.out.println(out.toString());
Assert.assertNotNull(soapElement);
/**
* Relevant portion should look like this
* <ns4:DelegatedCredentialKey xmlns="http://gaards.cagrid.org/cds"
* xmlns:ns4="http://cds.gaards.cagrid.org/CredentialDelegationService/DelegatedCredential">
* <delegationId>5</delegationId>
* </ns4:DelegatedCredentialKey>
*/
/**
* caGrid-1.4 CDS looks like this:
* <ns2:DelegatedCredentialKey xmlns:ns2="http://cds.gaards.cagrid.org/CredentialDelegationService/DelegatedCredential">
* <ns3:delegationId xmlns:ns3="http://gaards.cagrid.org/cds">2</ns3:delegationId>
* </ns2:DelegatedCredentialKey>
*/
}
}