/**
* Start time:09:26:46 2009-04-22<br>
* Project: mobicents-isup-stack<br>
*
* @author <a href="mailto:baranowb@gmail.com">Bartosz Baranowski
* </a>
*
*/
package org.mobicents.ss7.isup.impl;
import java.util.Arrays;
import org.mobicents.ss7.isup.message.CircuitGroupBlockingMessage;
import org.mobicents.ss7.isup.message.CircuitGroupQueryMessage;
import org.mobicents.ss7.isup.message.CircuitGroupQueryResponseMessage;
import org.mobicents.ss7.isup.message.CircuitGroupResetMessage;
import org.mobicents.ss7.isup.message.ISUPMessage;
import org.mobicents.ss7.isup.message.parameter.*;
/**
* Start time:09:26:46 2009-04-22<br>
* Project: mobicents-isup-stack<br>
* Test for CQR
*
* @author <a href="mailto:baranowb@gmail.com"> Bartosz Baranowski </a>
*/
public class CQRTest extends MessageHarness {
public void testTwo_Params() throws Exception
{
byte[] message = getDefaultBody();
//CircuitGroupQueryResponseMessage grs=new CircuitGroupQueryResponseMessageImpl(this,message);
CircuitGroupQueryResponseMessage grs=super.messageFactory.createCQR();
grs.decodeElement(message);
try{
RangeAndStatus RS = (RangeAndStatus) grs.getParameter(RangeAndStatus._PARAMETER_CODE);
assertNotNull("Range And Status return is null, it should not be",RS);
if(RS == null)
return;
byte range = RS.getRange();
assertEquals("Range is wrong,",0x01, range);
byte[] b=RS.getStatus();
assertNull("RangeAndStatus.getRange() is not null",b);
}catch(Exception e)
{
e.printStackTrace();
super.fail("Failed on get parameter["+CallReference._PARAMETER_CODE+"]:"+e);
}
try{
CircuitStateIndicator CSI = (CircuitStateIndicator) grs.getParameter(CircuitStateIndicator._PARAMETER_CODE);
assertNotNull("Circuit State Indicator return is null, it should not be",CSI);
if(CSI == null)
return;
assertNotNull("CircuitStateIndicator getCircuitState return is null, it should not be",CSI.getCircuitState());
byte[] circuitState = CSI.getCircuitState();
assertEquals("CircuitStateIndicator.getCircuitState() length is nto correct,",3, circuitState.length);
assertEquals("CircuitStateIndicator.getCircuitState()[0] value is not correct,",1, CSI.getMaintenanceBlockingState(circuitState[0]));
assertEquals("CircuitStateIndicator.getCircuitState()[1] value is not correct,",2, CSI.getMaintenanceBlockingState(circuitState[1]));
assertEquals("CircuitStateIndicator.getCircuitState()[2] value is not correct,",3, CSI.getMaintenanceBlockingState(circuitState[2]));
}catch(Exception e)
{
e.printStackTrace();
super.fail("Failed on get parameter["+CallReference._PARAMETER_CODE+"]:"+e);
}
}
@Override
protected byte[] getDefaultBody() {
//FIXME: for now we strip MTP part
byte[] message={
0x0C
,(byte) 0x0B
,CircuitGroupQueryResponseMessage._MESSAGE_CODE_CQR
,0x02 // ptr to variable part
,0x03
//no optional, so no pointer
//RangeAndStatus._PARAMETER_CODE
,0x01
,0x01
//CircuitStateIndicator
,0x03
,0x01
,0x02
,0x03
};
return message;
}
@Override
protected ISUPMessage getDefaultMessage() {
return super.messageFactory.createCQR();
}
}