diff options
author | Daniel Laszlo Sitzer <dlsitzer@gmail.com> | 2018-12-04 19:40:08 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2019-05-10 17:03:58 +0200 |
commit | 851e9c0f4c92f2336faa5f5b9b4e3aa7c963608e (patch) | |
tree | 617063ad1c44ac014ef847fdaa54b932e515d247 /pySim/utils_test.py | |
parent | 91d4ec7e7baa0e67e63890a962bca937bc3fab10 (diff) |
utils: add EF [H|O]PLMNwAcT decoding.
Allow decoding and pretty printing of PLMNwAcT, HPLMNwAcT and OPLMNwAct.
Includes unit tests for the added functions.
Change-Id: I9b8ca6ffd98f665690b84239d9a228e2c72c6ff9
Diffstat (limited to 'pySim/utils_test.py')
-rw-r--r-- | pySim/utils_test.py | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/pySim/utils_test.py b/pySim/utils_test.py new file mode 100644 index 0000000..ff028da --- /dev/null +++ b/pySim/utils_test.py @@ -0,0 +1,76 @@ +#!/usr/bin/pyton + +import unittest +import utils + +class DecTestCase(unittest.TestCase): + + def testSplitHexStringToListOf5ByteEntries(self): + input_str = "ffffff0003ffffff0002ffffff0001" + expected = [ + "ffffff0003", + "ffffff0002", + "ffffff0001", + ] + self.assertEqual(utils.hexstr_to_fivebytearr(input_str), expected) + + def testDecMCCfromPLMN(self): + self.assertEqual(utils.dec_mcc_from_plmn("92f501"), 295) + + def testDecMCCfromPLMN_unused(self): + self.assertEqual(utils.dec_mcc_from_plmn("ff0f00"), 4095) + + def testDecMNCfromPLMN_twoDigitMNC(self): + self.assertEqual(utils.dec_mnc_from_plmn("92f501"), 10) + + def testDecMNCfromPLMN_threeDigitMNC(self): + self.assertEqual(utils.dec_mnc_from_plmn("031263"), 361) + + def testDecMNCfromPLMN_unused(self): + self.assertEqual(utils.dec_mnc_from_plmn("00f0ff"), 4095) + + def testDecAct_noneSet(self): + self.assertEqual(utils.dec_act("0000"), []) + + def testDecAct_onlyUtran(self): + self.assertEqual(utils.dec_act("8000"), ["UTRAN"]) + + def testDecAct_onlyEUtran(self): + self.assertEqual(utils.dec_act("4000"), ["E-UTRAN"]) + + def testDecAct_onlyGsm(self): + self.assertEqual(utils.dec_act("0080"), ["GSM"]) + + def testDecAct_onlyGsmCompact(self): + self.assertEqual(utils.dec_act("0040"), ["GSM COMPACT"]) + + def testDecAct_onlyCdma2000HRPD(self): + self.assertEqual(utils.dec_act("0020"), ["cdma2000 HRPD"]) + + def testDecAct_onlyCdma20001xRTT(self): + self.assertEqual(utils.dec_act("0010"), ["cdma2000 1xRTT"]) + + def testDecAct_allSet(self): + self.assertEqual(utils.dec_act("ffff"), ["UTRAN", "E-UTRAN", "GSM", "GSM COMPACT", "cdma2000 HRPD", "cdma2000 1xRTT"]) + + def testDecxPlmn_w_act(self): + expected = {'mcc': 295, 'mnc': 10, 'act': ["UTRAN"]} + self.assertEqual(utils.dec_xplmn_w_act("92f5018000"), expected) + + def testFormatxPlmn_w_act(self): + input_str = "92f501800092f5508000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000" + expected = '''92f5018000 # MCC: 295 MNC: 10 AcT: UTRAN +92f5508000 # MCC: 295 MNC: 5 AcT: UTRAN +ffffff0000 # unused +ffffff0000 # unused +ffffff0000 # unused +ffffff0000 # unused +ffffff0000 # unused +ffffff0000 # unused +ffffff0000 # unused +ffffff0000 # unused +''' + self.assertEqual(utils.format_xplmn_w_act(input_str), expected) + +if __name__ == "__main__": + unittest.main() |