package org.mobicents.protocols.ss7.map.service.mobility.subscriberInformation; import org.mobicents.protocols.asn.AsnInputStream; import org.mobicents.protocols.asn.AsnOutputStream; import org.mobicents.protocols.asn.Tag; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberManagement.ODBGeneralData; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberManagement.ODBHPLMNData; import org.mobicents.protocols.ss7.map.primitives.MAPExtensionContainerTest; import org.mobicents.protocols.ss7.map.service.mobility.subscriberManagement.ODBDataImpl; import org.mobicents.protocols.ss7.map.service.mobility.subscriberManagement.ODBGeneralDataImpl; import org.mobicents.protocols.ss7.map.service.mobility.subscriberManagement.ODBHPLMNDataImpl; import org.testng.annotations.Test; import java.util.Arrays; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertTrue; /** * @author vadim subbotin */ public class ODBInfoTest { private byte[] data = {48, 97, 48, 52, 3, 5, 3, -1, -4, 0, 0, 3, 2, 4, -96, 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, 5, 0, 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}; @Test(groups = {"functional.decode", "subscriberInformation"}) public void testDecode() throws Exception { AsnInputStream asn = new AsnInputStream(data); int tag = asn.readTag(); assertEquals(tag, Tag.SEQUENCE); assertEquals(asn.getTagClass(), Tag.CLASS_UNIVERSAL); ODBInfoImpl odbInfo = new ODBInfoImpl(); odbInfo.decodeAll(asn); assertNotNull(odbInfo.getOdbData()); assertTrue(odbInfo.getNotificationToCSE()); assertTrue(MAPExtensionContainerTest.CheckTestExtensionContainer(odbInfo.getExtensionContainer())); assertTrue(MAPExtensionContainerTest.CheckTestExtensionContainer(odbInfo.getOdbData().getExtensionContainer())); ODBGeneralData odbGeneralData = odbInfo.getOdbData().getODBGeneralData(); assertTrue(odbGeneralData.getAllOGCallsBarred()); assertTrue(odbGeneralData.getInternationalOGCallsBarred()); assertTrue(odbGeneralData.getInternationalOGCallsNotToHPLMNCountryBarred()); assertTrue(odbGeneralData.getInterzonalOGCallsBarred()); assertTrue(odbGeneralData.getInterzonalOGCallsNotToHPLMNCountryBarred()); assertTrue(odbGeneralData.getInterzonalOGCallsAndInternationalOGCallsNotToHPLMNCountryBarred()); assertTrue(odbGeneralData.getPremiumRateInformationOGCallsBarred()); assertTrue(odbGeneralData.getPremiumRateEntertainementOGCallsBarred()); assertTrue(odbGeneralData.getSsAccessBarred()); assertTrue(odbGeneralData.getAllECTBarred()); assertTrue(odbGeneralData.getChargeableECTBarred()); assertTrue(odbGeneralData.getInternationalECTBarred()); assertTrue(odbGeneralData.getInterzonalECTBarred()); assertTrue(odbGeneralData.getDoublyChargeableECTBarred()); assertFalse(odbGeneralData.getMultipleECTBarred()); assertFalse(odbGeneralData.getAllPacketOrientedServicesBarred()); assertFalse(odbGeneralData.getRoamerAccessToHPLMNAPBarred()); assertFalse(odbGeneralData.getRoamerAccessToVPLMNAPBarred()); assertFalse(odbGeneralData.getRoamingOutsidePLMNOGCallsBarred()); assertFalse(odbGeneralData.getAllICCallsBarred()); assertFalse(odbGeneralData.getRoamingOutsidePLMNICCallsBarred()); assertFalse(odbGeneralData.getRoamingOutsidePLMNICountryICCallsBarred()); assertFalse(odbGeneralData.getRoamingOutsidePLMNBarred()); assertFalse(odbGeneralData.getRoamingOutsidePLMNCountryBarred()); assertFalse(odbGeneralData.getRegistrationAllCFBarred()); assertFalse(odbGeneralData.getRegistrationCFNotToHPLMNBarred()); assertFalse(odbGeneralData.getRegistrationInterzonalCFBarred()); assertFalse(odbGeneralData.getRegistrationInterzonalCFNotToHPLMNBarred()); assertFalse(odbGeneralData.getRegistrationInternationalCFBarred()); ODBHPLMNData odbhplmnData = odbInfo.getOdbData().getOdbHplmnData(); assertTrue(odbhplmnData.getPlmnSpecificBarringType1()); assertFalse(odbhplmnData.getPlmnSpecificBarringType2()); assertTrue(odbhplmnData.getPlmnSpecificBarringType3()); assertFalse(odbhplmnData.getPlmnSpecificBarringType4()); } @Test(groups = {"functional.encode", "subscriberInformation"}) public void testEncode() throws Exception { ODBGeneralDataImpl odbGeneralData = new ODBGeneralDataImpl(true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false); ODBHPLMNDataImpl odbhplmnData = new ODBHPLMNDataImpl(true, false, true, false); ODBDataImpl odbData = new ODBDataImpl(odbGeneralData, odbhplmnData, MAPExtensionContainerTest.GetTestExtensionContainer()); ODBInfoImpl odbInfo = new ODBInfoImpl(odbData, true, MAPExtensionContainerTest.GetTestExtensionContainer()); AsnOutputStream asnOS = new AsnOutputStream(); odbInfo.encodeAll(asnOS); byte[] raw = asnOS.toByteArray(); assertTrue(Arrays.equals(raw, data)); } }