from src.encoder import XMLParser
from src.encoder.records import dump_records, print_records
import unittest
class TestXMLParserText(unittest.TestCase):
def test_parse_simple(self):
value = ""
r = XMLParser.parse(value)
s = print_records(r)
self.assertEqual(s, value)
def test_parse_basic_case(self):
value = ""
r = XMLParser.parse(value)
s = print_records(r)
self.assertEqual(s, value)
def test_parse_attribute_basic(self):
value = ''
r = XMLParser.parse(value)
s = print_records(r)
self.assertEqual(s, value)
def test_parse_complex(self):
value = "(&(&(&(servicePrincipalName=*)(UserAccountControl:1.2.840.113556.1.4.803:=512))"
r = XMLParser.parse(value)
s = print_records(r)
self.assertEqual(s, value)
class TestXMLParserBinary(unittest.TestCase):
def test_bin_dict_basic(self):
value = ""
expected_result = b"\x56\x08\x01"
r = XMLParser.parse(value)
result = dump_records(r)
self.assertEqual(result, expected_result)
def test_bin_dict_complex(self):
value = 'action'
expected_result = b"\x44\x0a\x1e\x00\x82\x99\x06\x61\x63\x74\x69\x6f\x6e"
r = XMLParser.parse(value)
result = dump_records(r)
self.assertEqual(result, expected_result)
def test_bin_dict_complex2(self):
"""
These are complex cases, see [MC-NBFX]: 2.2.3.31
"""
value = "0"
expected_result = b"\x40\x09\x49\x6e\x76\x65\x6e\x74\x6f\x72\x79\x81"
r = XMLParser.parse(value)
result = dump_records(r)
self.assertEqual(result, expected_result)
def test_bin_dict_complex3(self):
"""
These are complex cases, see [MC-NBFX]: 2.2.3.31
"""
value = "0"
expected_result = (
b"\x56\x0e\x40\x09\x49\x6e\x76\x65\x6e\x74\x6f\x72\x79\x81\x01"
)
r = XMLParser.parse(value)
result = dump_records(r)
self.assertEqual(result, expected_result)
def test_bin_complex(self):
"""
These are complex cases, see [MC-NBFX]: 2.2.3.31
"""
self.maxDiff = None
value = """
action
0
"""
expected_result = b"V\x02\x0b\x01a\x06\x0b\x01s\x04V\x08D\n\x1e\x00\x82\x99\x06action\x01V\x0e@\tInventory\x81\x01\x01"
r = XMLParser.parse(value)
result = dump_records(r)
self.assertEqual(result, expected_result)