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.ExtBasicServiceCode;
import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberManagement.ExtSSStatus;
import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberManagement.TeleserviceCodeValue;
import org.mobicents.protocols.ss7.map.service.mobility.subscriberManagement.ExtBasicServiceCodeImpl;
import org.mobicents.protocols.ss7.map.service.mobility.subscriberManagement.ExtSSStatusImpl;
import org.mobicents.protocols.ss7.map.service.mobility.subscriberManagement.ExtTeleserviceCodeImpl;
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.assertTrue;
/**
* @author vadim subbotin
*/
public class ExtCwFeatureTest {
private byte[] data = {48, 8, -95, 3, -125, 1, 32, -126, 1, 12};
@Test(groups = { "functional.decode", "subscriberInformation" })
public void testDecode() throws Exception {
AsnInputStream ansIS = new AsnInputStream(data);
int tag = ansIS.readTag();
assertEquals(tag, Tag.SEQUENCE);
ExtCwFeatureImpl extCwFeature = new ExtCwFeatureImpl();
extCwFeature.decodeAll(ansIS);
ExtBasicServiceCode extBasicServiceCode = extCwFeature.getBasicService();
assertEquals(extBasicServiceCode.getExtTeleservice().getTeleserviceCodeValue(), TeleserviceCodeValue.allShortMessageServices);
ExtSSStatus extSSStatus = extCwFeature.getSsStatus();
assertTrue(extSSStatus.getBitQ());
assertTrue(extSSStatus.getBitP());
assertFalse(extSSStatus.getBitR());
assertFalse(extSSStatus.getBitA());
}
@Test(groups = { "functional.encode", "subscriberInformation" })
public void testEncode() throws Exception {
ExtBasicServiceCode extBasicServiceCode = new ExtBasicServiceCodeImpl(new ExtTeleserviceCodeImpl(TeleserviceCodeValue.allShortMessageServices));
ExtCwFeatureImpl extCwFeature = new ExtCwFeatureImpl(extBasicServiceCode, new ExtSSStatusImpl(true, true, false, false));
AsnOutputStream asnOS = new AsnOutputStream();
extCwFeature.encodeAll(asnOS);
byte[] encodedData = asnOS.toByteArray();
assertTrue(Arrays.equals(data, encodedData));
}
}