def test_encode_mutually_exclusive_elements(self): ie1 = InformationElement( InformationElementIdentifier.CONCATENATED_SM_8BIT_REF_NUM, IEConcatenatedSM(0x24, 0x03, 0x01)) ie2 = InformationElement( InformationElementIdentifier.CONCATENATED_SM_16BIT_REF_NUM, IEConcatenatedSM(0xABCD, 0x04, 0x01)) udh = [ie1, ie2] self.assertRaises(ValueError, UserDataHeaderEncoder().encode, udh)
def test_encode_repeated_non_repeatable_element(self): ie1 = InformationElement( InformationElementIdentifier.CONCATENATED_SM_16BIT_REF_NUM, IEConcatenatedSM(0x9CFA, 0x03, 0x02)) ie2 = InformationElement( InformationElementIdentifier.CONCATENATED_SM_16BIT_REF_NUM, IEConcatenatedSM(0xABCD, 0x04, 0x01)) udh = [ie1, ie2] self.assertRaises(ValueError, UserDataHeaderEncoder().encode, udh)
def test_conversion(self): self.do_conversion_test(InformationElementEncoder(), InformationElement( InformationElementIdentifier.CONCATENATED_SM_8BIT_REF_NUM, IEConcatenatedSM(0xFA, 0x03, 0x02)), b'0003fa0302') self.do_conversion_test(InformationElementEncoder(), InformationElement( InformationElementIdentifier.CONCATENATED_SM_16BIT_REF_NUM, IEConcatenatedSM(0x9CFA, 0x03, 0x02)), b'08049cfa0302') self.do_conversion_test(InformationElementEncoder(), InformationElement( InformationElementIdentifier.HYPERLINK_FORMAT_ELEMENT, binascii.a2b_hex('9cfa0302')), b'21049cfa0302')
def test_decode_with_unknown_elements(self): udh = self.decode(UserDataHeaderEncoder().decode, b'0f0203ffffff0201ff00032403010200') udhExpected = [ InformationElement(InformationElementIdentifier.CONCATENATED_SM_8BIT_REF_NUM, IEConcatenatedSM(0x24, 0x03, 0x01))] self.assertEqual(udhExpected, udh)
def test_isConcatenatedSM_true(self): pduHex = '000000da0000000500000000da4b62474652414e4300010131353535313233343536370001013134303436363533343130004000000000000000009e0500032403016869206a757374696e20686f772061726520796f753f204d79206e616d6520697320706570652069276d206672656e636820616e6420692077616e74656420746f2074656c6c20796f7520686f77206d7563682069206c6f766520796f752c20796f75206b6e6f7720796f75207361766564206d79206c69666520616e642069207265616c6c79207468616e6b20796f7520666f72207468' pdu = self.getPDU(pduHex) self.assertTrue(SMStringEncoder().is_concatenated_SM(pdu)) iElem = SMStringEncoder().get_concatenated_SM_info_element(pdu) self.assertEqual( InformationElement(InformationElementIdentifier.CONCATENATED_SM_8BIT_REF_NUM, IEConcatenatedSM(0x24, 0x03, 0x01)), iElem)
def test_decode_default_alphabet_with_udh(self): pduHex = b'000000da0000000500000000da4b62474652414e4300010131353535313233343536370001013134303436363533343130004000000000000000009e0500032403016869206a757374696e20686f772061726520796f753f204d79206e616d6520697320706570652069276d206672656e636820616e6420692077616e74656420746f2074656c6c20796f7520686f77206d7563682069206c6f766520796f752c20796f75206b6e6f7720796f75207361766564206d79206c69666520616e642069207265616c6c79207468616e6b20796f7520666f72207468' pdu = self.getPDU(pduHex) smStr = SMStringEncoder().decode_SM(pdu) self.assertEqual( b"\x05\x00\x03$\x03\x01hi justin how are you? My name is pepe i'm french and i wanted to tell you how much i love you, you know you saved my life and i really thank you for th", smStr.bytes) self.assertEqual( "hi justin how are you? My name is pepe i'm french and i wanted to tell you how much i love you, you know you saved my life and i really thank you for th", smStr.str) self.assertEqual([InformationElement( InformationElementIdentifier.CONCATENATED_SM_8BIT_REF_NUM, IEConcatenatedSM(0x24, 0x03, 0x01))], smStr.udh)
def test_conversion(self): self.do_conversion_test(IEConcatenatedSMEncoder(False), IEConcatenatedSM(0xFA, 0x03, 0x02), b'fa0302') self.do_conversion_test(IEConcatenatedSMEncoder(True), IEConcatenatedSM(0x9CFA, 0x03, 0x02), b'9cfa0302')
def test_decode_mutually_exclusive_elements(self): udh = self.decode(UserDataHeaderEncoder().decode, b'0b000324030108049cfa0302') udhExpected = [ InformationElement(InformationElementIdentifier.CONCATENATED_SM_16BIT_REF_NUM, IEConcatenatedSM(0x9CFA, 0x03, 0x02))] self.assertEqual(udhExpected, udh)
def test_decode_repeated_non_repeatable_element(self): udh = self.decode(UserDataHeaderEncoder().decode, b'0c0804abcd030208049cfa0302') udhExpected = [ InformationElement(InformationElementIdentifier.CONCATENATED_SM_16BIT_REF_NUM, IEConcatenatedSM(0x9CFA, 0x03, 0x02))] self.assertEqual(udhExpected, udh)
def test_conversion(self): udh = [ InformationElement(InformationElementIdentifier.CONCATENATED_SM_8BIT_REF_NUM, IEConcatenatedSM(0x24, 0x03, 0x01))] self.do_conversion_test(UserDataHeaderEncoder(), udh, b'050003240301')