Package org.objectweb.celtix.bus.ws.rm

Source Code of org.objectweb.celtix.bus.ws.rm.CreateSequenceRequestTest

package org.objectweb.celtix.bus.ws.rm;

import java.util.ArrayList;

import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.Duration;
import javax.xml.ws.handler.Handler;

import junit.framework.TestCase;

import org.easymock.IMocksControl;
import org.easymock.classextension.EasyMock;
import org.objectweb.celtix.bindings.AbstractBindingBase;
import org.objectweb.celtix.bus.configuration.wsrm.SourcePolicyType;
import org.objectweb.celtix.bus.handlers.HandlerChainInvoker;
import org.objectweb.celtix.bus.ws.addressing.ContextUtils;
import org.objectweb.celtix.bus.ws.addressing.VersionTransformer;
import org.objectweb.celtix.context.ObjectMessageContext;
import org.objectweb.celtix.context.ObjectMessageContextImpl;
import org.objectweb.celtix.transports.Transport;
import org.objectweb.celtix.ws.rm.CreateSequenceType;
import org.objectweb.celtix.ws.rm.Identifier;
import org.objectweb.celtix.ws.rm.OfferType;
import org.objectweb.celtix.wsdl.EndpointReferenceUtils;

public class CreateSequenceRequestTest extends TestCase {
   
    private static final String NON_ANONYMOUS_ACKSTO_ADDRESS = "http://localhost:9999/decoupled";
    private static final Duration ONE_DAY;
    private ObjectMessageContext objectCtx;
    private RMSource source;
    private AbstractBindingBase binding;
    private Transport transport;
    private HandlerChainInvoker hci;
    private SourcePolicyType sp;
    private IMocksControl control;
   
    static {
        Duration d = null;
        try {
            DatatypeFactory df = DatatypeFactory.newInstance();
            d = df.newDuration("PT24H");
        } catch (DatatypeConfigurationException ex) {
            ex.printStackTrace();
        }
        ONE_DAY = d;
    }
   
    public void setUp() {
        objectCtx = new ObjectMessageContextImpl();
        control = EasyMock.createNiceControl();
        source = control.createMock(RMSource.class);
        binding = control.createMock(AbstractBindingBase.class);
        transport = control.createMock(Transport.class);
        hci = new HandlerChainInvoker(new ArrayList<Handler>());
        sp = RMUtils.getWSRMConfFactory().createSourcePolicyType();
       
        binding.createObjectContext();
        EasyMock.expectLastCall().andReturn(objectCtx);
        binding.createHandlerInvoker();
        EasyMock.expectLastCall().andReturn(hci);
        source.getSourcePolicies();
        EasyMock.expectLastCall().andReturn(sp);
       
    }
   
    public void testDefaultConstruction() {    
       
        Identifier offeredSid = RMUtils.getWSRMFactory().createIdentifier();
        source.generateSequenceIdentifier();       
        EasyMock.expectLastCall().andReturn(offeredSid);
       
        control.replay();   
       
        CreateSequenceRequest req =
            new CreateSequenceRequest(binding,
                                      transport,
                                      source,
                                      getEPR("to"),
                                      VersionTransformer.convert(getEPR("acksTo")),
                                      ContextUtils.WSA_OBJECT_FACTORY.createRelatesToType());
        assertNotNull(req);
       
        assertNotNull(CreateSequenceRequest.createDataBindingCallback());
       
        Object[] params = req.getObjectMessageContext().getMessageObjects();
        assertEquals(1, params.length);
        CreateSequenceType cs = (CreateSequenceType)params[0];
       
        assertEquals(VersionTransformer.convert(getEPR("acksTo")).getAddress().getValue(),
                     cs.getAcksTo().getAddress().getValue());
        assertNull(cs.getExpires());
       
        // default is to include offers
       
        OfferType offer = cs.getOffer();
        assertNotNull(offer);
        assertNull(offer.getExpires());
        assertNotNull(offer.getIdentifier());
       
        control.verify();
    }
   
    public void testNonDefaultConstruction() {    
       
        control.replay();
               
        sp.setAcksTo(NON_ANONYMOUS_ACKSTO_ADDRESS);
        sp.setSequenceExpiration(ONE_DAY);
        sp.setIncludeOffer(false);

        CreateSequenceRequest req =
            new CreateSequenceRequest(binding,
                                      transport,
                                      source,
                                      getEPR("to"),
                                      VersionTransformer.convert(getEPR("acksTo")),
                                      ContextUtils.WSA_OBJECT_FACTORY.createRelatesToType());
        assertNotNull(req);
       
        Object[] params = req.getObjectMessageContext().getMessageObjects();
        assertEquals(1, params.length);
        CreateSequenceType cs = (CreateSequenceType)params[0];
       
        assertEquals(NON_ANONYMOUS_ACKSTO_ADDRESS,
                     cs.getAcksTo().getAddress().getValue());
        assertEquals(ONE_DAY, cs.getExpires().getValue());
        assertNull(cs.getOffer());
       
        control.verify();
    }
   
    private org.objectweb.celtix.ws.addressing.EndpointReferenceType getEPR(String s) {
        return EndpointReferenceUtils.getEndpointReference("http://nada.nothing.nowhere.null/" + s);
    }
}
TOP

Related Classes of org.objectweb.celtix.bus.ws.rm.CreateSequenceRequestTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.