def test_parse_message(self):
     actual = SMB2SVHDXOpenDeviceContextRequest()
     data = b"\x01\x00\x00\x00" \
            b"\x01" \
            b"\x00\x00\x00" \
            b"\xff\xff\xff\xff\xff\xff\xff\xff" \
            b"\xff\xff\xff\xff\xff\xff\xff\xff" \
            b"\x04\x00\x00\x00" \
            b"\x05\x00\x00\x00\x00\x00\x00\x00" \
            b"\x10\x00" \
            b"\x68\x00\x6f\x00\x73\x00\x74\x00" \
            b"\x6e\x00\x61\x00\x6d\x00\x65\x00"
     data = actual.unpack(data)
     assert len(actual) == 54
     assert data == b""
     assert actual['version'].get_value() == 1
     assert actual['has_initiator_id'].get_value()
     assert actual['reserved'].get_value() == b"\x00\x00\x00"
     assert actual['initiator_id'].get_value() == \
         uuid.UUID(bytes=b"\xff" * 16)
     assert actual['originator_flags'].get_value() == \
         SVHDXOriginatorFlags.SVHDX_ORIGINATOR_VHDMP
     assert actual['open_request_id'].get_value() == 5
     assert actual['initiator_host_name_length'].get_value() == 16
     assert actual['initiator_host_name'].get_value() == \
         "hostname".encode("utf-16-le")
 def test_create_message(self):
     message = SMB2SVHDXOpenDeviceContextRequest()
     message['initiator_id'] = b"\xff" * 16
     message['originator_flags'] = \
         SVHDXOriginatorFlags.SVHDX_ORIGINATOR_VHDMP
     message['open_request_id'] = 5
     message['initiator_host_name'] = "hostname".encode('utf-16-le')
     expected = b"\x01\x00\x00\x00" \
                b"\x01" \
                b"\x00\x00\x00" \
                b"\xff\xff\xff\xff\xff\xff\xff\xff" \
                b"\xff\xff\xff\xff\xff\xff\xff\xff" \
                b"\x04\x00\x00\x00" \
                b"\x05\x00\x00\x00\x00\x00\x00\x00" \
                b"\x10\x00" \
                b"\x68\x00\x6f\x00\x73\x00\x74\x00" \
                b"\x6e\x00\x61\x00\x6d\x00\x65\x00"
     actual = message.pack()
     assert len(message) == 54
     assert actual == expected