'Test terminate connection.'

@mock.patch.object(qnap.QnapISCSIDriver, '_get_lun_naa_from_volume_metadata')
@mock.patch('cinder.volume.drivers.qnap.QnapAPIExecutor')
def test_terminate_connection(self, mock_api_executor, mock_get_lun_naa_from_volume_metadata):

    fake_volume = VolumeClass('fakeDisplayName', 'fakeId', 100, 'fakeLunName')
    fake_connector = {'initiator': 'fakeInitiator'}
    mock_get_lun_naa_from_volume_metadata.return_value = 'fakeLunNaa'
    mock_api_executor.return_value.get_basic_info.return_value = ('ES1640dc    ', 'ES1640dc    ', '1.1.3')
    mock_api_executor.return_value.get_lun_info.return_value = self.get_mapped_lun_info_return_value()
    mock_api_executor.return_value.unmap_lun.return_value = None
    self.driver = qnap.QnapISCSIDriver(configuration=create_configuration('admin', 'qnapadmin', 'http://1.2.3.4:8080', '1.2.3.4', 'Pool1', True))
    self.driver.do_setup('context')
    self.driver.terminate_connection(fake_volume, fake_connector)
    mock_api_return = mock_api_executor.return_value
    mock_api_return.get_lun_info.assert_called_once_with(LUNNAA='fakeLunNaa')
    mock_api_return.unmap_lun.assert_called_once_with('fakeLunIndex', '9')
