/*
* TeleStax, Open Source Cloud Communications Copyright 2012.
* and individual contributors
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.mobicents.protocols.ss7.map.service.callhandling;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertNull;
import static org.testng.Assert.assertTrue;
import java.util.ArrayList;
import java.util.Arrays;
import org.apache.log4j.Logger;
import org.mobicents.protocols.asn.AsnInputStream;
import org.mobicents.protocols.asn.AsnOutputStream;
import org.mobicents.protocols.asn.Tag;
import org.mobicents.protocols.ss7.map.MAPParameterFactoryImpl;
import org.mobicents.protocols.ss7.map.api.MAPParameterFactory;
import org.mobicents.protocols.ss7.map.api.primitives.AddressNature;
import org.mobicents.protocols.ss7.map.api.primitives.AlertingCategory;
import org.mobicents.protocols.ss7.map.api.primitives.AlertingPattern;
import org.mobicents.protocols.ss7.map.api.primitives.EMLPPPriority;
import org.mobicents.protocols.ss7.map.api.primitives.ExtExternalSignalInfo;
import org.mobicents.protocols.ss7.map.api.primitives.ExtProtocolId;
import org.mobicents.protocols.ss7.map.api.primitives.ExternalSignalInfo;
import org.mobicents.protocols.ss7.map.api.primitives.IMSI;
import org.mobicents.protocols.ss7.map.api.primitives.ISDNAddressString;
import org.mobicents.protocols.ss7.map.api.primitives.LMSI;
import org.mobicents.protocols.ss7.map.api.primitives.MAPExtensionContainer;
import org.mobicents.protocols.ss7.map.api.primitives.MAPPrivateExtension;
import org.mobicents.protocols.ss7.map.api.primitives.NumberingPlan;
import org.mobicents.protocols.ss7.map.api.primitives.ProtocolId;
import org.mobicents.protocols.ss7.map.api.primitives.SignalInfo;
import org.mobicents.protocols.ss7.map.api.service.callhandling.CallReferenceNumber;
import org.mobicents.protocols.ss7.map.api.service.mobility.locationManagement.LocationArea;
import org.mobicents.protocols.ss7.map.api.service.mobility.locationManagement.PagingArea;
import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberManagement.OfferedCamel4CSIs;
import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberManagement.SupportedCamelPhases;
import org.mobicents.protocols.ss7.map.primitives.AlertingPatternImpl;
import org.mobicents.protocols.ss7.map.primitives.ExtExternalSignalInfoImpl;
import org.mobicents.protocols.ss7.map.primitives.ExternalSignalInfoImpl;
import org.mobicents.protocols.ss7.map.primitives.IMSIImpl;
import org.mobicents.protocols.ss7.map.primitives.ISDNAddressStringImpl;
import org.mobicents.protocols.ss7.map.primitives.LMSIImpl;
import org.mobicents.protocols.ss7.map.primitives.SignalInfoImpl;
import org.mobicents.protocols.ss7.map.service.mobility.locationManagement.LACImpl;
import org.mobicents.protocols.ss7.map.service.mobility.locationManagement.LocationAreaImpl;
import org.mobicents.protocols.ss7.map.service.mobility.locationManagement.PagingAreaImpl;
import org.mobicents.protocols.ss7.map.service.mobility.subscriberManagement.OfferedCamel4CSIsImpl;
import org.mobicents.protocols.ss7.map.service.mobility.subscriberManagement.SupportedCamelPhasesImpl;
import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
/*
*
* @author cristian veliscu
*
*/
public class ProvideRoamingNumberRequestTest {
Logger logger = Logger.getLogger(ProvideRoamingNumberRequestTest.class);
@BeforeClass
public static void setUpClass() throws Exception {
}
@AfterClass
public static void tearDownClass() throws Exception {
}
@BeforeTest
public void setUp() {
}
@AfterTest
public void tearDown() {
}
private byte[] getEncodedData() {
return new byte[] { 48, -126, 1, 5, -128, 8, 16, 33, 2, 2, 16, -119, 34, -9, -127, 4, -111, 34, 34, -8, -126, 4, -111,
34, 34, -9, -124, 4, 0, 3, 98, 39, -91, 50, 10, 1, 2, 4, 4, 10, 20, 30, 40, 48, 39, -96, 32, 48, 10, 6, 3, 42,
3, 4, 11, 12, 13, 14, 15, 48, 5, 6, 3, 42, 3, 6, 48, 11, 6, 3, 42, 3, 5, 21, 22, 23, 24, 25, 26, -95, 3, 31,
32, 33, -90, 50, 10, 1, 2, 4, 4, 10, 20, 30, 40, 48, 39, -96, 32, 48, 10, 6, 3, 42, 3, 4, 11, 12, 13, 14, 15,
48, 5, 6, 3, 42, 3, 6, 48, 11, 6, 3, 42, 3, 5, 21, 22, 23, 24, 25, 26, -95, 3, 31, 32, 33, -120, 4, -111, 34,
34, -10, -119, 5, 19, -6, 61, 61, -22, -85, 39, -96, 32, 48, 10, 6, 3, 42, 3, 4, 11, 12, 13, 14, 15, 48, 5, 6,
3, 42, 3, 6, 48, 11, 6, 3, 42, 3, 5, 21, 22, 23, 24, 25, 26, -95, 3, 31, 32, 33, -116, 1, 8, -113, 2, 4, -64,
-82, 47, 4, 4, 10, 20, 30, 40, 48, 39, -96, 32, 48, 10, 6, 3, 42, 3, 4, 11, 12, 13, 14, 15, 48, 5, 6, 3, 42, 3,
6, 48, 11, 6, 3, 42, 3, 5, 21, 22, 23, 24, 25, 26, -95, 3, 31, 32, 33, -108, 2, 1, 14, -74, 4, -127, 2, 0, 123,
-105, 1, 0, -103, 4, -111, 34, 34, -11 };
}
private byte[] getEncodedData1() {
return new byte[] { 48, -127, -124, -128, 8, 16, 33, 2, 2, 16, -119, 34, -9, -127, 4, -111, 34, 34, -8, -126, 4, -111,
34, 34, -9, -124, 4, 0, 3, 98, 39, -91, 50, 10, 1, 2, 4, 4, 10, 20, 30, 40, 48, 39, -96, 32, 48, 10, 6, 3, 42,
3, 4, 11, 12, 13, 14, 15, 48, 5, 6, 3, 42, 3, 6, 48, 11, 6, 3, 42, 3, 5, 21, 22, 23, 24, 25, 26, -95, 3, 31,
32, 33, -90, 50, 10, 1, 2, 4, 4, 10, 20, 30, 40, 48, 39, -96, 32, 48, 10, 6, 3, 42, 3, 4, 11, 12, 13, 14, 15,
48, 5, 6, 3, 42, 3, 6, 48, 11, 6, 3, 42, 3, 5, 21, 22, 23, 24, 25, 26, -95, 3, 31, 32, 33 };
}
private byte[] getEncodedDataFull() {
return new byte[] { 48, -126, 1, 23, -128, 8, 16, 33, 2, 2, 16, -119, 34, -9, -127, 4, -111, 34, 34, -8, -126, 4, -111,
34, 34, -9, -124, 4, 0, 3, 98, 39, -91, 50, 10, 1, 2, 4, 4, 10, 20, 30, 40, 48, 39, -96, 32, 48, 10, 6, 3, 42,
3, 4, 11, 12, 13, 14, 15, 48, 5, 6, 3, 42, 3, 6, 48, 11, 6, 3, 42, 3, 5, 21, 22, 23, 24, 25, 26, -95, 3, 31,
32, 33, -90, 50, 10, 1, 2, 4, 4, 10, 20, 30, 40, 48, 39, -96, 32, 48, 10, 6, 3, 42, 3, 4, 11, 12, 13, 14, 15,
48, 5, 6, 3, 42, 3, 6, 48, 11, 6, 3, 42, 3, 5, 21, 22, 23, 24, 25, 26, -95, 3, 31, 32, 33, -121, 0, -120, 4,
-111, 34, 34, -10, -119, 5, 19, -6, 61, 61, -22, -118, 0, -85, 39, -96, 32, 48, 10, 6, 3, 42, 3, 4, 11, 12, 13,
14, 15, 48, 5, 6, 3, 42, 3, 6, 48, 11, 6, 3, 42, 3, 5, 21, 22, 23, 24, 25, 26, -95, 3, 31, 32, 33, -116, 1, 8,
-115, 0, -113, 2, 4, -64, -82, 47, 4, 4, 10, 20, 30, 40, 48, 39, -96, 32, 48, 10, 6, 3, 42, 3, 4, 11, 12, 13,
14, 15, 48, 5, 6, 3, 42, 3, 6, 48, 11, 6, 3, 42, 3, 5, 21, 22, 23, 24, 25, 26, -95, 3, 31, 32, 33, -112, 0,
-111, 0, -110, 0, -109, 0, -108, 2, 1, 14, -107, 0, -74, 4, -127, 2, 0, 123, -105, 1, 0, -104, 0, -103, 4,
-111, 34, 34, -11 };
}
public byte[] getDataLmsi() {
return new byte[] { 0, 3, 98, 39 };
}
public static MAPExtensionContainer GetTestExtensionContainer() {
MAPParameterFactory mapServiceFactory = new MAPParameterFactoryImpl();
ArrayList<MAPPrivateExtension> al = new ArrayList<MAPPrivateExtension>();
al.add(mapServiceFactory.createMAPPrivateExtension(new long[] { 1, 2, 3, 4 }, new byte[] { 11, 12, 13, 14, 15 }));
al.add(mapServiceFactory.createMAPPrivateExtension(new long[] { 1, 2, 3, 6 }, null));
al.add(mapServiceFactory.createMAPPrivateExtension(new long[] { 1, 2, 3, 5 }, new byte[] { 21, 22, 23, 24, 25, 26 }));
MAPExtensionContainer cnt = mapServiceFactory.createMAPExtensionContainer(al, new byte[] { 31, 32, 33 });
return cnt;
}
public byte[] getCallReferenceNumber() {
return new byte[] { 19, -6, 61, 61, -22 };
}
@Test(groups = { "functional.decode", "service.callhandling" })
public void testDecode() throws Exception {
AsnInputStream asn = new AsnInputStream(getEncodedData());
int tag = asn.readTag();
ProvideRoamingNumberRequestImpl prn = new ProvideRoamingNumberRequestImpl(3);
prn.decodeAll(asn);
assertEquals(tag, Tag.SEQUENCE);
assertEquals(asn.getTagClass(), Tag.CLASS_UNIVERSAL);
assertEquals(prn.getMapProtocolVersion(), 3);
IMSI imsi = prn.getImsi();
ISDNAddressString mscNumber = prn.getMscNumber();
ISDNAddressString msisdn = prn.getMsisdn();
LMSI lmsi = prn.getLmsi();
ExternalSignalInfo gsmBearerCapability = prn.getGsmBearerCapability();
ExternalSignalInfo networkSignalInfo = prn.getNetworkSignalInfo();
boolean suppressionOfAnnouncement = prn.getSuppressionOfAnnouncement();
ISDNAddressString gmscAddress = prn.getGmscAddress();
CallReferenceNumber callReferenceNumber = prn.getCallReferenceNumber();
boolean orInterrogation = prn.getOrInterrogation();
MAPExtensionContainer extensionContainer = prn.getExtensionContainer();
AlertingPattern alertingPattern = prn.getAlertingPattern();
boolean ccbsCall = prn.getCcbsCall();
SupportedCamelPhases supportedCamelPhasesInInterrogatingNode = prn.getSupportedCamelPhasesInInterrogatingNode();
ExtExternalSignalInfo additionalSignalInfo = prn.getAdditionalSignalInfo();
boolean orNotSupportedInGMSC = prn.getOrNotSupportedInGMSC();
boolean prePagingSupported = prn.getPrePagingSupported();
boolean longFTNSupported = prn.getLongFTNSupported();
boolean suppressVtCsi = prn.getSuppressVtCsi();
OfferedCamel4CSIs offeredCamel4CSIsInInterrogatingNode = prn.getOfferedCamel4CSIsInInterrogatingNode();
boolean mtRoamingRetrySupported = prn.getMtRoamingRetrySupported();
PagingArea pagingArea = prn.getPagingArea();
EMLPPPriority callPriority = prn.getCallPriority();
boolean mtrfIndicator = prn.getMtrfIndicator();
ISDNAddressString oldMSCNumber = prn.getOldMSCNumber();
long mapProtocolVersion = prn.getMapProtocolVersion();
assertNotNull(imsi);
assertEquals(imsi.getData(), "011220200198227");
assertNotNull(mscNumber);
assertEquals(mscNumber.getAddressNature(), AddressNature.international_number);
assertEquals(mscNumber.getNumberingPlan(), NumberingPlan.ISDN);
assertEquals(mscNumber.getAddress(), "22228");
assertNotNull(msisdn);
assertEquals(msisdn.getAddressNature(), AddressNature.international_number);
assertEquals(msisdn.getNumberingPlan(), NumberingPlan.ISDN);
assertEquals(msisdn.getAddress(), "22227");
assertNotNull(lmsi);
assertTrue(Arrays.equals(lmsi.getData(), getDataLmsi()));
assertNotNull(gsmBearerCapability);
assertNotNull(networkSignalInfo);
assertFalse(suppressionOfAnnouncement);
assertNotNull(gmscAddress);
assertEquals(gmscAddress.getAddressNature(), AddressNature.international_number);
assertEquals(gmscAddress.getNumberingPlan(), NumberingPlan.ISDN);
assertEquals(gmscAddress.getAddress(), "22226");
assertNotNull(callReferenceNumber);
assertTrue(Arrays.equals(callReferenceNumber.getData(), getCallReferenceNumber()));
assertFalse(orInterrogation);
assertNotNull(extensionContainer);
assertNotNull(alertingPattern);
assertFalse(ccbsCall);
assertNotNull(supportedCamelPhasesInInterrogatingNode);
assertNotNull(additionalSignalInfo);
assertFalse(orNotSupportedInGMSC);
assertFalse(prePagingSupported);
assertFalse(longFTNSupported);
assertFalse(suppressVtCsi);
assertNotNull(offeredCamel4CSIsInInterrogatingNode);
assertFalse(mtRoamingRetrySupported);
assertNotNull(pagingArea);
assertNotNull(callPriority);
assertFalse(mtrfIndicator);
assertNotNull(oldMSCNumber);
assertEquals(oldMSCNumber.getAddressNature(), AddressNature.international_number);
assertEquals(oldMSCNumber.getNumberingPlan(), NumberingPlan.ISDN);
assertEquals(oldMSCNumber.getAddress(), "22225");
assertEquals(mapProtocolVersion, 3);
// 2
asn = new AsnInputStream(getEncodedData1());
tag = asn.readTag();
prn = new ProvideRoamingNumberRequestImpl(2);
prn.decodeAll(asn);
assertEquals(tag, Tag.SEQUENCE);
assertEquals(asn.getTagClass(), Tag.CLASS_UNIVERSAL);
assertEquals(prn.getMapProtocolVersion(), 2);
imsi = prn.getImsi();
mscNumber = prn.getMscNumber();
msisdn = prn.getMsisdn();
lmsi = prn.getLmsi();
gsmBearerCapability = prn.getGsmBearerCapability();
networkSignalInfo = prn.getNetworkSignalInfo();
suppressionOfAnnouncement = prn.getSuppressionOfAnnouncement();
gmscAddress = prn.getGmscAddress();
callReferenceNumber = prn.getCallReferenceNumber();
orInterrogation = prn.getOrInterrogation();
extensionContainer = prn.getExtensionContainer();
alertingPattern = prn.getAlertingPattern();
ccbsCall = prn.getCcbsCall();
supportedCamelPhasesInInterrogatingNode = prn.getSupportedCamelPhasesInInterrogatingNode();
additionalSignalInfo = prn.getAdditionalSignalInfo();
orNotSupportedInGMSC = prn.getOrNotSupportedInGMSC();
prePagingSupported = prn.getPrePagingSupported();
longFTNSupported = prn.getLongFTNSupported();
suppressVtCsi = prn.getSuppressVtCsi();
offeredCamel4CSIsInInterrogatingNode = prn.getOfferedCamel4CSIsInInterrogatingNode();
mtRoamingRetrySupported = prn.getMtRoamingRetrySupported();
pagingArea = prn.getPagingArea();
callPriority = prn.getCallPriority();
mtrfIndicator = prn.getMtrfIndicator();
oldMSCNumber = prn.getOldMSCNumber();
mapProtocolVersion = prn.getMapProtocolVersion();
assertNotNull(imsi);
assertEquals(imsi.getData(), "011220200198227");
assertNotNull(mscNumber);
assertEquals(mscNumber.getAddressNature(), AddressNature.international_number);
assertEquals(mscNumber.getNumberingPlan(), NumberingPlan.ISDN);
assertEquals(mscNumber.getAddress(), "22228");
assertNotNull(msisdn);
assertEquals(msisdn.getAddressNature(), AddressNature.international_number);
assertEquals(msisdn.getNumberingPlan(), NumberingPlan.ISDN);
assertEquals(msisdn.getAddress(), "22227");
assertNotNull(lmsi);
assertTrue(Arrays.equals(lmsi.getData(), getDataLmsi()));
assertNotNull(gsmBearerCapability);
assertNotNull(networkSignalInfo);
assertFalse(suppressionOfAnnouncement);
assertNull(gmscAddress);
assertNull(callReferenceNumber);
assertFalse(orInterrogation);
assertNull(extensionContainer);
assertNull(alertingPattern);
assertFalse(ccbsCall);
assertNull(supportedCamelPhasesInInterrogatingNode);
assertNull(additionalSignalInfo);
assertFalse(orNotSupportedInGMSC);
assertFalse(prePagingSupported);
assertFalse(longFTNSupported);
assertFalse(suppressVtCsi);
assertNull(offeredCamel4CSIsInInterrogatingNode);
assertFalse(mtRoamingRetrySupported);
assertNull(pagingArea);
assertNull(callPriority);
assertFalse(mtrfIndicator);
assertNull(oldMSCNumber);
assertEquals(mapProtocolVersion, 2);
// Full
asn = new AsnInputStream(getEncodedDataFull());
tag = asn.readTag();
prn = new ProvideRoamingNumberRequestImpl(3);
prn.decodeAll(asn);
assertEquals(tag, Tag.SEQUENCE);
assertEquals(asn.getTagClass(), Tag.CLASS_UNIVERSAL);
assertEquals(prn.getMapProtocolVersion(), 3);
imsi = prn.getImsi();
mscNumber = prn.getMscNumber();
msisdn = prn.getMsisdn();
lmsi = prn.getLmsi();
gsmBearerCapability = prn.getGsmBearerCapability();
networkSignalInfo = prn.getNetworkSignalInfo();
suppressionOfAnnouncement = prn.getSuppressionOfAnnouncement();
gmscAddress = prn.getGmscAddress();
callReferenceNumber = prn.getCallReferenceNumber();
orInterrogation = prn.getOrInterrogation();
extensionContainer = prn.getExtensionContainer();
alertingPattern = prn.getAlertingPattern();
ccbsCall = prn.getCcbsCall();
supportedCamelPhasesInInterrogatingNode = prn.getSupportedCamelPhasesInInterrogatingNode();
additionalSignalInfo = prn.getAdditionalSignalInfo();
orNotSupportedInGMSC = prn.getOrNotSupportedInGMSC();
prePagingSupported = prn.getPrePagingSupported();
longFTNSupported = prn.getLongFTNSupported();
suppressVtCsi = prn.getSuppressVtCsi();
offeredCamel4CSIsInInterrogatingNode = prn.getOfferedCamel4CSIsInInterrogatingNode();
mtRoamingRetrySupported = prn.getMtRoamingRetrySupported();
pagingArea = prn.getPagingArea();
callPriority = prn.getCallPriority();
mtrfIndicator = prn.getMtrfIndicator();
oldMSCNumber = prn.getOldMSCNumber();
mapProtocolVersion = prn.getMapProtocolVersion();
assertNotNull(imsi);
assertEquals(imsi.getData(), "011220200198227");
assertNotNull(mscNumber);
assertEquals(mscNumber.getAddressNature(), AddressNature.international_number);
assertEquals(mscNumber.getNumberingPlan(), NumberingPlan.ISDN);
assertEquals(mscNumber.getAddress(), "22228");
assertNotNull(msisdn);
assertEquals(msisdn.getAddressNature(), AddressNature.international_number);
assertEquals(msisdn.getNumberingPlan(), NumberingPlan.ISDN);
assertEquals(msisdn.getAddress(), "22227");
assertNotNull(lmsi);
assertTrue(Arrays.equals(lmsi.getData(), getDataLmsi()));
assertNotNull(gsmBearerCapability);
assertNotNull(networkSignalInfo);
assertTrue(suppressionOfAnnouncement);
assertNotNull(gmscAddress);
assertEquals(gmscAddress.getAddressNature(), AddressNature.international_number);
assertEquals(gmscAddress.getNumberingPlan(), NumberingPlan.ISDN);
assertEquals(gmscAddress.getAddress(), "22226");
assertNotNull(callReferenceNumber);
assertTrue(Arrays.equals(callReferenceNumber.getData(), getCallReferenceNumber()));
assertTrue(orInterrogation);
assertNotNull(extensionContainer);
assertNotNull(alertingPattern);
assertTrue(ccbsCall);
assertNotNull(supportedCamelPhasesInInterrogatingNode);
assertNotNull(additionalSignalInfo);
assertTrue(orNotSupportedInGMSC);
assertTrue(prePagingSupported);
assertTrue(longFTNSupported);
assertTrue(suppressVtCsi);
assertNotNull(offeredCamel4CSIsInInterrogatingNode);
assertTrue(mtRoamingRetrySupported);
assertNotNull(pagingArea);
assertNotNull(callPriority);
assertTrue(mtrfIndicator);
assertNotNull(oldMSCNumber);
assertEquals(oldMSCNumber.getAddressNature(), AddressNature.international_number);
assertEquals(oldMSCNumber.getNumberingPlan(), NumberingPlan.ISDN);
assertEquals(oldMSCNumber.getAddress(), "22225");
assertEquals(mapProtocolVersion, 3);
}
@Test(groups = { "functional.encode", "service.callhandling" })
public void testEncode() throws Exception {
IMSI imsi = new IMSIImpl("011220200198227");
ISDNAddressString mscNumber = new ISDNAddressStringImpl(AddressNature.international_number, NumberingPlan.ISDN, "22228");
ISDNAddressString msisdn = new ISDNAddressStringImpl(AddressNature.international_number, NumberingPlan.ISDN, "22227");
LMSI lmsi = new LMSIImpl(getDataLmsi());
MAPExtensionContainer extensionContainerForExtSigInfo = GetTestExtensionContainer();
byte[] data_ = new byte[] { 10, 20, 30, 40 };
SignalInfo signalInfo = new SignalInfoImpl(data_);
ProtocolId protocolId = ProtocolId.gsm_0806;
ExternalSignalInfo gsmBearerCapability = new ExternalSignalInfoImpl(signalInfo, protocolId,
extensionContainerForExtSigInfo);
ExternalSignalInfo networkSignalInfo = new ExternalSignalInfoImpl(signalInfo, protocolId,
extensionContainerForExtSigInfo);
boolean suppressionOfAnnouncement = false;
ISDNAddressString gmscAddress = new ISDNAddressStringImpl(AddressNature.international_number, NumberingPlan.ISDN,
"22226");
CallReferenceNumberImpl callReferenceNumber = new CallReferenceNumberImpl(getCallReferenceNumber());
boolean orInterrogation = false;
MAPExtensionContainer extensionContainer = GetTestExtensionContainer();
AlertingPatternImpl alertingPattern = new AlertingPatternImpl(AlertingCategory.Category5);
boolean ccbsCall = false;
SupportedCamelPhases supportedCamelPhasesInInterrogatingNode = new SupportedCamelPhasesImpl(true, true, false, false);
MAPExtensionContainer extensionContainerforAddSigInfo = GetTestExtensionContainer();
ExtExternalSignalInfoImpl additionalSignalInfo = new ExtExternalSignalInfoImpl(signalInfo,
ExtProtocolId.getExtProtocolId(0), extensionContainerforAddSigInfo);
boolean orNotSupportedInGMSC = false;
boolean prePagingSupported = false;
boolean longFTNSupported = false;
boolean suppressVtCsi = false;
OfferedCamel4CSIsImpl offeredCamel4CSIsInInterrogatingNode = new OfferedCamel4CSIsImpl(false, false, false, false,
true, true, true);
boolean mtRoamingRetrySupported = false;
ArrayList<LocationArea> locationAreas = new ArrayList<LocationArea>();
LACImpl lac = new LACImpl(123);
LocationAreaImpl la = new LocationAreaImpl(lac);
locationAreas.add(la);
PagingAreaImpl pagingArea = new PagingAreaImpl(locationAreas);
EMLPPPriority callPriority = EMLPPPriority.getEMLPPPriority(0);
boolean mtrfIndicator = false;
ISDNAddressString oldMSCNumber = new ISDNAddressStringImpl(AddressNature.international_number, NumberingPlan.ISDN,
"22225");
long mapProtocolVersion = 3;
ProvideRoamingNumberRequestImpl prn = new ProvideRoamingNumberRequestImpl(imsi, mscNumber, msisdn, lmsi,
gsmBearerCapability, networkSignalInfo, suppressionOfAnnouncement, gmscAddress, callReferenceNumber,
orInterrogation, extensionContainer, alertingPattern, ccbsCall, supportedCamelPhasesInInterrogatingNode,
additionalSignalInfo, orNotSupportedInGMSC, prePagingSupported, longFTNSupported, suppressVtCsi,
offeredCamel4CSIsInInterrogatingNode, mtRoamingRetrySupported, pagingArea, callPriority, mtrfIndicator,
oldMSCNumber, mapProtocolVersion);
AsnOutputStream asnOS = new AsnOutputStream();
prn.encodeAll(asnOS);
byte[] encodedData = asnOS.toByteArray();
assertTrue(Arrays.equals(getEncodedData(), encodedData));
// Full
suppressionOfAnnouncement = true;
orInterrogation = true;
ccbsCall = true;
orNotSupportedInGMSC = true;
prePagingSupported = true;
longFTNSupported = true;
suppressVtCsi = true;
mtRoamingRetrySupported = true;
mtrfIndicator = true;
mapProtocolVersion = 3;
prn = new ProvideRoamingNumberRequestImpl(imsi, mscNumber, msisdn, lmsi, gsmBearerCapability, networkSignalInfo,
suppressionOfAnnouncement, gmscAddress, callReferenceNumber, orInterrogation, extensionContainer,
alertingPattern, ccbsCall, supportedCamelPhasesInInterrogatingNode, additionalSignalInfo, orNotSupportedInGMSC,
prePagingSupported, longFTNSupported, suppressVtCsi, offeredCamel4CSIsInInterrogatingNode,
mtRoamingRetrySupported, pagingArea, callPriority, mtrfIndicator, oldMSCNumber, mapProtocolVersion);
asnOS = new AsnOutputStream();
prn.encodeAll(asnOS);
encodedData = asnOS.toByteArray();
assertTrue(Arrays.equals(getEncodedDataFull(), encodedData));
// 2
mapProtocolVersion = 2;
prn = new ProvideRoamingNumberRequestImpl(imsi, mscNumber, msisdn, lmsi, gsmBearerCapability, networkSignalInfo, false,
null, null, false, null, null, false, null, null, false, false, false, false, null, false, null, null, false,
null, mapProtocolVersion);
asnOS = new AsnOutputStream();
prn.encodeAll(asnOS);
encodedData = asnOS.toByteArray();
assertTrue(Arrays.equals(getEncodedData1(), encodedData));
}
}