def test_parse_message(self):
     actual = SMB2SVHDXOpenDeviceContextV2Response()
     data = b"\x02\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"\x00\x00\x00\x00" \
            b"\x00\x00\x00\x00" \
            b"\x14\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" \
            b"\x00\x00\x00\x00" \
            b"\x00\x00\x00\x00" \
            b"\x00\x00\x00\x00" \
            b"\x00\x00\x00\x00" \
            b"\x00\x00\x00\x00\x00\x00\x00\x00"
     data = actual.unpack(data)
     assert len(actual) == 82
     assert data == b""
     assert actual['version'].get_value() == 2
     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['flags'].get_value() == 0
     assert actual['originator_flags'].get_value() == 0
     assert actual['open_request_id'].get_value() == 20
     assert actual['initiator_host_name_length'].get_value() == 16
     assert actual['initiator_host_name'].get_value() == \
         "hostname".encode("utf-16-le")
     assert actual['virtual_disk_properties_initialized'].get_value() == 0
     assert actual['server_service_version'].get_value() == 0
     assert actual['virtual_sector_size'].get_value() == 0
     assert actual['physical_sector_size'].get_value() == 0
     assert actual['virtual_size'].get_value() == 0
 def test_create_message(self):
     message = SMB2SVHDXOpenDeviceContextV2Response()
     message['initiator_id'] = b"\xff" * 16
     message['open_request_id'] = 20
     message['initiator_host_name'] = "hostname".encode("utf-16-le")
     expected = b"\x02\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"\x00\x00\x00\x00" \
                b"\x00\x00\x00\x00" \
                b"\x14\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" \
                b"\x00\x00\x00\x00" \
                b"\x00\x00\x00\x00" \
                b"\x00\x00\x00\x00" \
                b"\x00\x00\x00\x00" \
                b"\x00\x00\x00\x00\x00\x00\x00\x00"
     actual = message.pack()
     assert len(message) == 82
     assert actual == expected