@Test(groups = {"functional.decode"}) public void testDecode() throws Exception { byte[] rawData = getEncodedData(); AsnInputStream asn = new AsnInputStream(rawData); int tag = asn.readTag(); UpdateLocationRequestImpl asc = new UpdateLocationRequestImpl(3); asc.decodeAll(asn); assertEquals(tag, Tag.SEQUENCE); assertEquals(asn.getTagClass(), Tag.CLASS_UNIVERSAL); assertEquals(asc.getMapProtocolVersion(), 3); IMSI imsi = asc.getImsi(); assertTrue(imsi.getData().equals("1111122222")); assertNull(asc.getRoamingNumber()); ISDNAddressString mscNumber = asc.getMscNumber(); assertTrue(mscNumber.getAddress().equals("22228")); assertEquals(mscNumber.getAddressNature(), AddressNature.international_number); assertEquals(mscNumber.getNumberingPlan(), NumberingPlan.ISDN); ISDNAddressString vlrNumber = asc.getVlrNumber(); assertTrue(vlrNumber.getAddress().equals("22229")); assertEquals(vlrNumber.getAddressNature(), AddressNature.international_number); assertEquals(vlrNumber.getNumberingPlan(), NumberingPlan.ISDN); VLRCapability vlrCap = asc.getVlrCapability(); assertTrue(vlrCap.getSupportedLCSCapabilitySets().getCapabilitySetRelease98_99()); assertFalse(vlrCap.getSupportedLCSCapabilitySets().getCapabilitySetRelease4()); assertNull(asc.getLmsi()); assertNull(asc.getExtensionContainer()); assertFalse(asc.getInformPreviousNetworkEntity()); assertFalse(asc.getCsLCSNotSupportedByUE()); assertFalse(asc.getSkipSubscriberDataUpdate()); assertFalse(asc.getRestorationIndicator()); rawData = getEncodedData2(); asn = new AsnInputStream(rawData); tag = asn.readTag(); asc = new UpdateLocationRequestImpl(3); asc.decodeAll(asn); assertEquals(tag, Tag.SEQUENCE); assertEquals(asn.getTagClass(), Tag.CLASS_UNIVERSAL); assertEquals(asc.getMapProtocolVersion(), 3); imsi = asc.getImsi(); assertTrue(imsi.getData().equals("1111122233")); assertNull(asc.getRoamingNumber()); mscNumber = asc.getMscNumber(); assertTrue(mscNumber.getAddress().equals("22228")); assertEquals(mscNumber.getAddressNature(), AddressNature.international_number); assertEquals(mscNumber.getNumberingPlan(), NumberingPlan.ISDN); vlrNumber = asc.getVlrNumber(); assertTrue(vlrNumber.getAddress().equals("22229")); assertEquals(vlrNumber.getAddressNature(), AddressNature.international_number); assertEquals(vlrNumber.getNumberingPlan(), NumberingPlan.ISDN); vlrCap = asc.getVlrCapability(); assertTrue(vlrCap.getSupportedLCSCapabilitySets().getCapabilitySetRelease98_99()); assertFalse(vlrCap.getSupportedLCSCapabilitySets().getCapabilitySetRelease4()); assertTrue(Arrays.equals(asc.getLmsi().getData(), getLmsiData())); assertTrue(MAPExtensionContainerTest.CheckTestExtensionContainer(asc.getExtensionContainer())); assertTrue(asc.getInformPreviousNetworkEntity()); assertTrue(asc.getCsLCSNotSupportedByUE()); assertTrue(asc.getSkipSubscriberDataUpdate()); assertTrue(asc.getRestorationIndicator()); rawData = getEncodedData3(); asn = new AsnInputStream(rawData); tag = asn.readTag(); asc = new UpdateLocationRequestImpl(3); asc.decodeAll(asn); assertEquals(tag, Tag.SEQUENCE); assertEquals(asn.getTagClass(), Tag.CLASS_UNIVERSAL); assertEquals(asc.getMapProtocolVersion(), 3); imsi = asc.getImsi(); assertTrue(imsi.getData().equals("1111122233")); assertNull(asc.getRoamingNumber()); mscNumber = asc.getMscNumber(); assertTrue(mscNumber.getAddress().equals("22228")); assertEquals(mscNumber.getAddressNature(), AddressNature.international_number); assertEquals(mscNumber.getNumberingPlan(), NumberingPlan.ISDN); vlrNumber = asc.getVlrNumber(); assertTrue(vlrNumber.getAddress().equals("22229")); assertEquals(vlrNumber.getAddressNature(), AddressNature.international_number); assertEquals(vlrNumber.getNumberingPlan(), NumberingPlan.ISDN); vlrCap = asc.getVlrCapability(); assertTrue(vlrCap.getSupportedLCSCapabilitySets().getCapabilitySetRelease98_99()); assertFalse(vlrCap.getSupportedLCSCapabilitySets().getCapabilitySetRelease4()); assertTrue(Arrays.equals(asc.getLmsi().getData(), getLmsiData())); assertNull(asc.getExtensionContainer()); assertTrue(asc.getInformPreviousNetworkEntity()); assertTrue(asc.getCsLCSNotSupportedByUE()); assertTrue(asc.getSkipSubscriberDataUpdate()); assertTrue(asc.getRestorationIndicator()); assertTrue(Arrays.equals(asc.getVGmlcAddress().getData(), getGSNAddressData())); assertTrue(asc.getADDInfo().getImeisv().getIMEI().equals("123456789009876")); assertFalse(asc.getADDInfo().getSkipSubscriberDataUpdate()); assertEquals(asc.getPagingArea().getLocationAreas().size(), 1); assertEquals(asc.getPagingArea().getLocationAreas().get(0).getLAC().getLac(), 123); rawData = getEncodedData_V1(); asn = new AsnInputStream(rawData); tag = asn.readTag(); asc = new UpdateLocationRequestImpl(1); asc.decodeAll(asn); assertEquals(tag, Tag.SEQUENCE); assertEquals(asn.getTagClass(), Tag.CLASS_UNIVERSAL); assertEquals(asc.getMapProtocolVersion(), 1); imsi = asc.getImsi(); assertTrue(imsi.getData().equals("1111122233")); assertNull(asc.getMscNumber()); ISDNAddressString roamingNumber = asc.getRoamingNumber(); assertTrue(roamingNumber.getAddress().equals("22220")); assertEquals(roamingNumber.getAddressNature(), AddressNature.international_number); assertEquals(roamingNumber.getNumberingPlan(), NumberingPlan.ISDN); vlrNumber = asc.getVlrNumber(); assertTrue(vlrNumber.getAddress().equals("22221")); assertEquals(vlrNumber.getAddressNature(), AddressNature.international_number); assertEquals(vlrNumber.getNumberingPlan(), NumberingPlan.ISDN); assertNull(asc.getVlrCapability()); assertNull(asc.getLmsi()); assertNull(asc.getExtensionContainer()); assertFalse(asc.getInformPreviousNetworkEntity()); assertFalse(asc.getCsLCSNotSupportedByUE()); assertFalse(asc.getSkipSubscriberDataUpdate()); assertFalse(asc.getRestorationIndicator()); }
@Test(groups = {"functional.encode"}) public void testEncode() throws Exception { IMSIImpl imsi = new IMSIImpl("1111122222"); ISDNAddressStringImpl mscNumber = new ISDNAddressStringImpl(AddressNature.international_number, NumberingPlan.ISDN, "22228"); ISDNAddressStringImpl vlrNumber = new ISDNAddressStringImpl(AddressNature.international_number, NumberingPlan.ISDN, "22229"); SupportedLCSCapabilitySets supportedLCSCapabilitySets = new SupportedLCSCapabilitySetsImpl(true, false, false, false, false); VLRCapability vlrCap = new VLRCapabilityImpl( null, null, false, null, null, false, supportedLCSCapabilitySets, null, null, false, false); UpdateLocationRequestImpl asc = new UpdateLocationRequestImpl( 3, imsi, mscNumber, null, vlrNumber, null, null, vlrCap, false, false, null, null, null, false, false); // long mapProtocolVersion, IMSI imsi, ISDNAddressString mscNumber, ISDNAddressString // roamingNumber, // ISDNAddressString vlrNumber, LMSI lmsi, MAPExtensionContainer extensionContainer, // VlrCapability vlrCapability, // boolean informPreviousNetworkEntity, // boolean csLCSNotSupportedByUE, GSNAddress vGmlcAddress, ADDInfo addInfo, PagingArea // pagingArea, boolean // skipSubscriberDataUpdate, // boolean restorationIndicator AsnOutputStream asnOS = new AsnOutputStream(); asc.encodeAll(asnOS); byte[] encodedData = asnOS.toByteArray(); byte[] rawData = getEncodedData(); assertTrue(Arrays.equals(rawData, encodedData)); imsi = new IMSIImpl("1111122233"); mscNumber = new ISDNAddressStringImpl(AddressNature.international_number, NumberingPlan.ISDN, "22228"); vlrNumber = new ISDNAddressStringImpl(AddressNature.international_number, NumberingPlan.ISDN, "22229"); supportedLCSCapabilitySets = new SupportedLCSCapabilitySetsImpl(true, false, false, false, false); vlrCap = new VLRCapabilityImpl( null, null, false, null, null, false, supportedLCSCapabilitySets, null, null, false, false); LMSIImpl lmsi = new LMSIImpl(getLmsiData()); MAPExtensionContainer extensionContainer = MAPExtensionContainerTest.GetTestExtensionContainer(); asc = new UpdateLocationRequestImpl( 3, imsi, mscNumber, null, vlrNumber, lmsi, extensionContainer, vlrCap, true, true, null, null, null, true, true); asnOS = new AsnOutputStream(); asc.encodeAll(asnOS); encodedData = asnOS.toByteArray(); rawData = getEncodedData2(); assertTrue(Arrays.equals(rawData, encodedData)); GSNAddressImpl vGmlcAddress = new GSNAddressImpl(getGSNAddressData()); IMEIImpl imeisv = new IMEIImpl("123456789009876"); ADDInfoImpl addInfo = new ADDInfoImpl(imeisv, 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); asc = new UpdateLocationRequestImpl( 3, imsi, mscNumber, null, vlrNumber, lmsi, null, vlrCap, true, true, vGmlcAddress, addInfo, pagingArea, true, true); asnOS = new AsnOutputStream(); asc.encodeAll(asnOS); encodedData = asnOS.toByteArray(); rawData = getEncodedData3(); assertTrue(Arrays.equals(rawData, encodedData)); imsi = new IMSIImpl("1111122233"); ISDNAddressStringImpl roamingNumberNumber = new ISDNAddressStringImpl(AddressNature.international_number, NumberingPlan.ISDN, "22220"); vlrNumber = new ISDNAddressStringImpl(AddressNature.international_number, NumberingPlan.ISDN, "22221"); asc = new UpdateLocationRequestImpl( 1, imsi, null, roamingNumberNumber, vlrNumber, null, null, null, false, false, null, null, null, false, false); asnOS = new AsnOutputStream(); asc.encodeAll(asnOS); encodedData = asnOS.toByteArray(); rawData = getEncodedData_V1(); assertTrue(Arrays.equals(rawData, encodedData)); }