# YouCompleteMe is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# YouCompleteMe is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with YouCompleteMe.  If not, see <http://www.gnu.org/licenses/>.

from nose.tools import eq_
from ycm.test_utils import MockVimModule
vim_mock = MockVimModule()
import os

from .. import completion_request


class ConvertCompletionResponseToVimDatas_test:
    """ This class tests the
      completion_request._ConvertCompletionResponseToVimDatas method """
    def _Check(self, completion_data, expected_vim_data):
        vim_data = completion_request.ConvertCompletionDataToVimData(
            completion_data)

        try:
            eq_(expected_vim_data, vim_data)
        except:
# YouCompleteMe is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# YouCompleteMe is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with YouCompleteMe.  If not, see <http://www.gnu.org/licenses/>.

from ycm.test_utils import MockVimModule, ExtendedMock

MockVimModule()

import contextlib
import os

from ycm.youcompleteme import YouCompleteMe
from ycmd import user_options_store
from ycmd.responses import (BuildDiagnosticData, Diagnostic, Location, Range,
                            UnknownExtraConf)

from mock import call, MagicMock, patch
from nose.tools import eq_, ok_

# The default options which are only relevant to the client, not the server and
# thus are not part of default_options.json, but are required for a working
# YouCompleteMe object.