Package org.apache.sandesha2

Source Code of org.apache.sandesha2.SandeshaUtilTest

/*
* Copyright  1999-2004 The Apache Software Foundation.
*
*  Licensed under the Apache License, Version 2.0 (the "License");
*  you may not use this file except in compliance with the License.
*  You may obtain a copy of the License at
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
*  Unless required by applicable law or agreed to in writing, software
*  distributed under the License is distributed on an "AS IS" BASIS,
*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*  See the License for the specific language governing permissions and
*  limitations under the License.
*
*/

package org.apache.sandesha2;

import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;

import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.ConfigurationContextFactory;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.util.MessageContextBuilder;
import org.apache.sandesha2.util.Range;
import org.apache.sandesha2.util.RangeString;
import org.apache.sandesha2.util.SandeshaUtil;
import org.apache.sandesha2.wsrm.AcknowledgementRange;

import junit.framework.TestCase;

public class SandeshaUtilTest extends TestCase {

  public void testUUIDGen () {
    String UUID1 = SandeshaUtil.getUUID();
    String UUID2 = SandeshaUtil.getUUID();
   
    assertTrue(UUID1!=null);
    assertTrue(UUID2!=null);
    assertTrue(!UUID1.equals(UUID2));
   
    assertTrue(UUID1.startsWith("urn:uuid:"));
    assertTrue(UUID2.startsWith("urn:uuid:"));
  }
 
  public void testInternalSequenceIDToSequenceKeyConversion() {
    String toEPR = "http://127.0.0.1:1111/some_random_uri";
    String sequenceKey = "1234abcd";
   
    String internalSequenceID = SandeshaUtil.getInternalSequenceID(toEPR, sequenceKey);
   
    //check that we can parse out the sequence key
    assertEquals(sequenceKey, SandeshaUtil.getSequenceKeyFromInternalSequenceID(internalSequenceID, toEPR));
   
    //try an internal sequenceID without a sequenceKey - should get null
    internalSequenceID = SandeshaUtil.getSequenceKeyFromInternalSequenceID(toEPR, null);
    assertNull(SandeshaUtil.getSequenceKeyFromInternalSequenceID(internalSequenceID, toEPR));
   
    //for badly formed sequences, or for server-side response sequences, check
    //we just get null
    String outgoingSequenceID = SandeshaUtil.getOutgoingSideInternalSequenceID(SandeshaUtil.getUUID());
    assertNull(SandeshaUtil.getSequenceKeyFromInternalSequenceID(outgoingSequenceID, toEPR));
   
  }
 
  public void testGetAckRangesFromRangeStringOutOfOrder()throws SandeshaException{
   
    RangeString rangeString = new RangeString();
    rangeString.addRange(new Range(3));
    rangeString.addRange(new Range(6));
    rangeString.addRange(new Range(1));
    rangeString.addRange(new Range(5));
    rangeString.addRange(new Range(8));
    rangeString.addRange(new Range(2));
   
    ArrayList list = SandeshaUtil.getAckRangeArrayList(rangeString,Sandesha2Constants.SPEC_2005_02.NS_URI);
    assertNotNull(list);
    assertEquals(list.size(),3);
   
    Iterator it = list.iterator();
    AcknowledgementRange ackRange = null;
   
    ackRange = (AcknowledgementRange) it.next();
    assertNotNull(ackRange);
    assertEquals(ackRange.getLowerValue(),1);
    assertEquals(ackRange.getUpperValue(),3);
   
    ackRange = null;
    ackRange = (AcknowledgementRange) it.next();
    assertNotNull(ackRange);
    assertEquals(ackRange.getLowerValue(),5);
    assertEquals(ackRange.getUpperValue(),6);
   
    ackRange = null;
    ackRange = (AcknowledgementRange) it.next();
    assertNotNull(ackRange);
    assertEquals(ackRange.getLowerValue(),8);
    assertEquals(ackRange.getUpperValue(),8);
   
    assertFalse(it.hasNext());
  }
 
  public void testGetAckRangesFromRangeStringGapFilling () throws SandeshaException {
    //build a range string to represent the completed messages
    RangeString rangeString = new RangeString();
    rangeString.addRange(new Range(1,3));
    rangeString.addRange(new Range(4));
    //insert a gap - number 5 is missing
    rangeString.addRange(new Range(6));
    //insert a gap - 7 and 8 are missing
    rangeString.addRange(new Range(9, 10));
   
    ArrayList list = SandeshaUtil.getAckRangeArrayList(rangeString,Sandesha2Constants.SPEC_2005_02.NS_URI);
    assertNotNull(list);
    //we expect 3 ranges: [1-4] [6] [9-10]
    assertEquals(list.size(),3);
   
    Iterator it = list.iterator();
    AcknowledgementRange ackRange = null;
   
    ackRange = (AcknowledgementRange) it.next();
    assertNotNull(ackRange);
    assertEquals(ackRange.getLowerValue(),1);
    assertEquals(ackRange.getUpperValue(),4);
   
    ackRange = null;
    ackRange = (AcknowledgementRange) it.next();
    assertNotNull(ackRange);
    assertEquals(ackRange.getLowerValue(),6);
    assertEquals(ackRange.getUpperValue(),6);
   
    ackRange = null;
    ackRange = (AcknowledgementRange) it.next();
    assertNotNull(ackRange);
    assertEquals(ackRange.getLowerValue(),9);
    assertEquals(ackRange.getUpperValue(),10);
   
    assertFalse(it.hasNext());
   
    //ok, now plug a gap at msg 5
    rangeString.addRange(new Range(5));
    list = SandeshaUtil.getAckRangeArrayList(rangeString,Sandesha2Constants.SPEC_2005_02.NS_URI);
    assertNotNull(list);
    //we expect 2 ranges: [1-6] [9-10]
    it = list.iterator();
    ackRange = null;
   
    ackRange = (AcknowledgementRange) it.next();
    assertNotNull(ackRange);
    assertEquals(ackRange.getLowerValue(),1);
    assertEquals(ackRange.getUpperValue(),6);
   
    ackRange = null;
    ackRange = (AcknowledgementRange) it.next();
    assertNotNull(ackRange);
    assertEquals(ackRange.getLowerValue(),9);
    assertEquals(ackRange.getUpperValue(),10);
   
    assertFalse(it.hasNext());
   
    //plug all of the gaps - 7 and 8
    rangeString.addRange(new Range(8));
    rangeString.addRange(new Range(7,8));
    list = SandeshaUtil.getAckRangeArrayList(rangeString,Sandesha2Constants.SPEC_2005_02.NS_URI);
    assertNotNull(list);
    //we expect 1 ranges: [1-10]
    it = list.iterator();
    ackRange = null;
   
    ackRange = (AcknowledgementRange) it.next();
    assertNotNull(ackRange);
    assertEquals(ackRange.getLowerValue(),1);
    assertEquals(ackRange.getUpperValue(),10);
   
    assertFalse(it.hasNext());
  }
 
  /**
   * Checks that a Fault message can be created from an empty MessageContext
   *
   * @throws Exception
   */
  public void testCreateFaultMessageContext() throws Exception {
   
    String repoPath = "target" + File.separator + "repos" + File.separator + "client";
    String axis2_xml = "target" + File.separator + "repos" + File.separator + "client" + File.separator + "client_axis2.xml";
    ConfigurationContext configContext = ConfigurationContextFactory.createConfigurationContextFromFileSystem(repoPath,axis2_xml);
    MessageContext messageContext = new MessageContext();
    messageContext.setConfigurationContext(configContext);
    messageContext = MessageContextBuilder.createFaultMessageContext(messageContext, new Exception());
  }

 
 
 
}
TOP

Related Classes of org.apache.sandesha2.SandeshaUtilTest

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.