require File.expand_path('../../test_helper', __FILE__)

class HhApiServiceTest < ActiveSupport::TestCase
  fixtures :issues, :projects, :trackers

  context '.execute' do

    setup do
      stub_request(:get, "#{Hh::ApiService::BASE_URL}/employers/#{Setting.plugin_redmine_hire['hh_employer_id']}/vacancies/archived")
        .to_return body: "{\"per_page\":20,\"items\":[{\"salary\":{\"to\":75000,\"gross\":false,\"from\":45000,\"currency\":\"RUR\"},\"archived\":true,\"premium\":false,\"name\":\"\xD0\xA1\xD0\xB8\xD1\x81\xD1\x82\xD0\xB5\xD0\xBC\xD0\xBD\xD1\x8B\xD0\xB9 \xD0\xB0\xD0\xB4\xD0\xBC\xD0\xB8\xD0\xBD\xD0\xB8\xD1\x81\xD1\x82\xD1\x80\xD0\xB0\xD1\x82\xD0\xBE\xD1\x80 Linux\",\"area\":{\"url\":\"https://api.hh.ru/areas/103\",\"id\":\"103\",\"name\":\"\xD0\x90\xD0\xB1\xD0\xB0\xD0\xBA\xD0\xB0\xD0\xBD\"},\"url\":\"https://api.hh.ru/vacancies/22242092?host=hh.ru\",\"created_at\":\"2017-08-07T08:25:52+0300\",\"alternate_url\":\"https://hh.ru/vacancy/22242092\",\"apply_alternate_url\":\"https://hh.ru/applicant/vacancy_response?vacancyId=22242092\",\"relations\":[],\"employer\":{\"logo_urls\":{\"90\":\"https://hhcdn.ru/employer-logo/2038642.png\",\"240\":\"https://hhcdn.ru/employer-logo/2038643.png\",\"original\":\"https://hhcdn.ru/employer-logo-original/399140.png\"},\"vacancies_url\":\"https://api.hh.ru/vacancies?employer_id=1193714\",\"name\":\"Southbridge\",\"url\":\"https://api.hh.ru/employers/1193714\",\"alternate_url\":\"https://hh.ru/employer/1193714\",\"id\":\"1193714\",\"trusted\":true},\"response_letter_required\":true,\"published_at\":\"2017-08-07T08:25:52+0300\",\"archived_at\":\"2017-09-01T21:03:32+0300\",\"address\":null,\"department\":null,\"sort_point_distance\":null,\"type\":{\"id\":\"open\",\"name\":\"\xD0\x9E\xD1\x82\xD0\xBA\xD1\x80\xD1\x8B\xD1\x82\xD0\xB0\xD1\x8F\"},\"id\":\"22242092\",\"counters\":{\"responses\":10,\"invitations_and_responses\":10}}]}"

      stub_request(:get, "#{Hh::ApiService::BASE_URL}/negotiations/response?vacancy_id=22242092")
        .to_return body: "{\"ordered_by\":{\"id\":\"created_at\",\"name\":\"\xD0\x9F\xD0\xBE \xD0\xB4\xD0\xB0\xD1\x82\xD0\xB5\"},\"items\":[{\"templates\":[{\"url\":\"https://api.hh.ru/message_templates/consider?topic_id=973246529\",\"quick\":false,\"id\":\"consider\",\"name\":\"\xD0\x9F\xD1\x80\xD0\xB8\xD0\xB3\xD0\xBB\xD0\xB0\xD1\x88\xD0\xB5\xD0\xBD\xD0\xB8\xD0\xB5 \xD0\xBD\xD0\xB0 \xD1\x8D\xD1\x82\xD0\xB0\xD0\xBF \xD0\x9F\xD0\xBE\xD0\xB4\xD1\x83\xD0\xBC\xD0\xB0\xD1\x82\xD1\x8C\"},{\"url\":\"https://api.hh.ru/message_templates/offer?topic_id=973246529\",\"quick\":false,\"id\":\"offer\",\"name\":\"\xD0\x9F\xD1\x80\xD0\xB8\xD0\xB3\xD0\xBB\xD0\xB0\xD1\x88\xD0\xB5\xD0\xBD\xD0\xB8\xD0\xB5 \xD0\xBD\xD0\xB0 \xD0\x9F\xD1\x80\xD0\xB5\xD0\xB4\xD0\xBB\xD0\xBE\xD0\xB6\xD0\xB5\xD0\xBD\xD0\xB8\xD0\xB5 \xD0\xBE \xD1\x80\xD0\xB0\xD0\xB1\xD0\xBE\xD1\x82\xD0\xB5\"},{\"url\":\"https://api.hh.ru/message_templates/discard_after_interview?topic_id=973246529\",\"quick\":false,\"id\":\"discard_after_interview\",\"name\":\"\xD0\x9E\xD1\x82\xD0\xBA\xD0\xB0\xD0\xB7\"},{\"url\":\"https://api.hh.ru/message_templates/discard_after_response?topic_id=973246529\",\"quick\":false,\"id\":\"discard_after_response\",\"name\":\"\xD0\x9E\xD1\x82\xD0\xBA\xD0\xB0\xD0\xB7 \xD0\xBE\xD1\x82\xD0\xBA\xD0\xBB\xD0\xB8\xD0\xBA\xD0\xBD\xD1\x83\xD0\xB2\xD1\x88\xD0\xB5\xD0\xBC\xD1\x83\xD1\x81\xD1\x8F \xD0\xBD\xD0\xB0 \xD0\xB2\xD0\xB0\xD0\xBA\xD0\xB0\xD0\xBD\xD1\x81\xD0\xB8\xD1\x8E \xD1\x81\xD0\xBE\xD0\xB8\xD1\x81\xD0\xBA\xD0\xB0\xD1\x82\xD0\xB5\xD0\xBB\xD1\x8E\"},{\"url\":\"https://api.hh.ru/message_templates/quick_discard_after_response?topic_id=973246529\",\"quick\":true,\"id\":\"quick_discard_after_response\",\"name\":\"\xD0\xA8\xD0\xB0\xD0\xB1\xD0\xBB\xD0\xBE\xD0\xBD \xD0\xB1\xD1\x8B\xD1\x81\xD1\x82\xD1\x80\xD0\xBE\xD0\xB3\xD0\xBE \xD0\xBE\xD1\x82\xD0\xBA\xD0\xB0\xD0\xB7\xD0\xB0 \xD0\xBD\xD0\xB0 \xD0\xBE\xD1\x82\xD0\xBA\xD0\xBB\xD0\xB8\xD0\xBA\"},{\"url\":\"https://api.hh.ru/message_templates/hired?topic_id=973246529\",\"quick\":false,\"id\":\"hired\",\"name\":\"\xD0\x9F\xD1\x80\xD0\xB8\xD0\xB3\xD0\xBB\xD0\xB0\xD1\x88\xD0\xB5\xD0\xBD\xD0\xB8\xD0\xB5 \xD0\xBD\xD0\xB0 \xD0\x92\xD1\x8B\xD1\x85\xD0\xBE\xD0\xB4 \xD0\xBD\xD0\xB0 \xD1\x80\xD0\xB0\xD0\xB1\xD0\xBE\xD1\x82\xD1\x83\"},{\"url\":\"https://api.hh.ru/message_templates/interview?topic_id=973246529\",\"quick\":false,\"id\":\"interview\",\"name\":\"\xD0\x9F\xD1\x80\xD0\xB8\xD0\xB3\xD0\xBB\xD0\xB0\xD1\x88\xD0\xB5\xD0\xBD\xD0\xB8\xD0\xB5 \xD0\xBD\xD0\xB0 \xD0\x98\xD0\xBD\xD1\x82\xD0\xB5\xD1\x80\xD0\xB2\xD1\x8C\xD1\x8E\"},{\"url\":\"https://api.hh.ru/message_templates/assessment_owner_tool?topic_id=973246529\",\"quick\":false,\"id\":\"assessment_owner_tool\",\"name\":\"\xD0\x9F\xD1\x80\xD0\xB8\xD0\xB3\xD0\xBB\xD0\xB0\xD1\x88\xD0\xB5\xD0\xBD\xD0\xB8\xD0\xB5 \xD0\xBD\xD0\xB0 \xD0\x9E\xD1\x86\xD0\xB5\xD0\xBD\xD0\xBA\xD1\x83 (\xD1\x81\xD0\xB2\xD0\xBE\xD0\xB9 \xD0\xB8\xD0\xBD\xD1\x81\xD1\x82\xD1\x80\xD1\x83\xD0\xBC\xD0\xB5\xD0\xBD\xD1\x82 \xD0\xBE\xD1\x86\xD0\xB5\xD0\xBD\xD0\xBA\xD0\xB8)\"},{\"url\":\"https://api.hh.ru/message_templates/invite?topic_id=973246529\",\"quick\":false,\"id\":\"invite\",\"name\":\"\xD0\x9F\xD1\x80\xD0\xB8\xD0\xB3\xD0\xBB\xD0\xB0\xD1\x88\xD0\xB5\xD0\xBD\xD0\xB8\xD0\xB5 \xD0\xBD\xD0\xB0 \xD0\xA2\xD0\xB5\xD0\xBB\xD0\xB5\xD1\x84\xD0\xBE\xD0\xBD\xD0\xBD\xD0\xBE\xD0\xB5 \xD0\xB8\xD0\xBD\xD1\x82\xD0\xB5\xD1\x80\xD0\xB2\xD1\x8C\xD1\x8E\"},{\"url\":\"https://api.hh.ru/message_templates/invite_after_response?topic_id=973246529\",\"quick\":false,\"id\":\"invite_after_response\",\"name\":\"\xD0\x9F\xD1\x80\xD0\xB8\xD0\xB3\xD0\xBB\xD0\xB0\xD1\x88\xD0\xB5\xD0\xBD\xD0\xB8\xD0\xB5 \xD0\xBE\xD1\x82\xD0\xBA\xD0\xBB\xD0\xB8\xD0\xBA\xD0\xBD\xD1\x83\xD0\xB2\xD1\x88\xD0\xB5\xD0\xB3\xD0\xBE\xD1\x81\xD1\x8F \xD1\x81\xD0\xBE\xD0\xB8\xD1\x81\xD0\xBA\xD0\xB0\xD1\x82\xD0\xB5\xD0\xBB\xD1\x8F \xD0\xBD\xD0\xB0 \xD0\xA2\xD0\xB5\xD0\xBB\xD0\xB5\xD1\x84\xD0\xBE\xD0\xBD\xD0\xBD\xD0\xBE\xD0\xB5 \xD0\xB8\xD0\xBD\xD1\x82\xD0\xB5\xD1\x80\xD0\xB2\xD1\x8C\xD1\x8E\"}],\"messages_url\":\"https://api.hh.ru/negotiations/973246529/messages\",\"resume\":{\"last_name\":\"\xD0\x90\xD0\xBA\xD0\xB8\xD0\xBC\xD0\xBE\xD0\xB2\",\"photo\":null,\"updated_at\":\"2017-09-02T04:25:27+0300\",\"negotiations_history\":{\"url\":\"https://api.hh.ru/resumes/f88757a00003fb4920001236f26d6f676b4630/negotiations_history\"},\"owner\":{\"comments\":{\"url\":\"https://api.hh.ru/applicant_comments/28271610\",\"counters\":{\"total\":0}}},\"alternate_url\":\"https://hh.ru/resume/f88757a00003fb4920001236f26d6f676b4630?vacancyId=22242092&t=973246529\",\"education\":{\"primary\":[{\"organization_id\":null,\"name_id\":\"45747\",\"name\":\"\xD0\xA5\xD0\xB0\xD0\xBA\xD0\xB0\xD1\x81\xD1\x81\xD0\xBA\xD0\xB8\xD0\xB9 \xD0\xB3\xD0\xBE\xD1\x81\xD1\x83\xD0\xB4\xD0\xB0\xD1\x80\xD1\x81\xD1\x82\xD0\xB2\xD0\xB5\xD0\xBD\xD0\xBD\xD1\x8B\xD0\xB9 \xD1\x83\xD0\xBD\xD0\xB8\xD0\xB2\xD0\xB5\xD1\x80\xD1\x81\xD0\xB8\xD1\x82\xD0\xB5\xD1\x82 \xD0\xB8\xD0\xBC. \xD0\x9D.\xD0\xA4. \xD0\x9A\xD0\xB0\xD1\x82\xD0\xB0\xD0\xBD\xD0\xBE\xD0\xB2\xD0\xB0, \xD0\x90\xD0\xB1\xD0\xB0\xD0\xBA\xD0\xB0\xD0\xBD\",\"year\":2017,\"organization\":\"\xD0\x98\xD0\xBD\xD1\x81\xD1\x82\xD0\xB8\xD1\x82\xD1\x83\xD1\x82 \xD0\xB8\xD0\xBD\xD1\x84\xD0\xBE\xD1\x80\xD0\xBC\xD0\xB0\xD1\x86\xD0\xB8\xD0\xBE\xD0\xBD\xD0\xBD\xD1\x8B\xD1\x85 \xD1\x82\xD0\xB5\xD1\x85\xD0\xBD\xD0\xBE\xD0\xBB\xD0\xBE\xD0\xB3\xD0\xB8\xD0\xB9 \xD0\xB8 \xD0\xB8\xD0\xBD\xD0\xB6\xD0\xB5\xD0\xBD\xD0\xB5\xD1\x80\xD0\xBD\xD0\xBE\xD0\xB3\xD0\xBE \xD0\xBE\xD0\xB1\xD1\x80\xD0\xB0\xD0\xB7\xD0\xBE\xD0\xB2\xD0\xB0\xD0\xBD\xD0\xB8\xD1\x8F\",\"result_id\":null,\"result\":\"\xD0\x9F\xD1\x80\xD0\xBE\xD0\xB3\xD1\x80\xD0\xB0\xD0\xBC\xD0\xBC\xD0\xBD\xD0\xBE\xD0\xB5 \xD0\xBE\xD0\xB1\xD0\xB5\xD1\x81\xD0\xBF\xD0\xB5\xD1\x87\xD0\xB5\xD0\xBD\xD0\xB8\xD0\xB5 \xD0\xB2\xD1\x8B\xD1\x87\xD0\xB8\xD1\x81\xD0\xBB\xD0\xB8\xD1\x82\xD0\xB5\xD0\xBB\xD1\x8C\xD0\xBD\xD0\xBE\xD0\xB9 \xD1\x82\xD0\xB5\xD1\x85\xD0\xBD\xD0\xB8\xD0\xBA\xD0\xB8 \xD0\xB8 \xD0\xB0\xD0\xB2\xD1\x82\xD0\xBE\xD0\xBC\xD0\xB0\xD1\x82\xD0\xB8\xD0\xB7\xD0\xB8\xD1\x80\xD0\xBE\xD0\xB2\xD0\xB0\xD0\xBD\xD0\xBD\xD1\x8B\xD1\x85 \xD1\x81\xD0\xB8\xD1\x81\xD1\x82\xD0\xB5\xD0\xBC (\xD0\xBC\xD0\xB0\xD0\xB3\xD0\xB8\xD1\x81\xD1\x82\xD1\x80)\"},{\"organization_id\":null,\"name_id\":\"45747\",\"name\":\"\xD0\xA5\xD0\xB0\xD0\xBA\xD0\xB0\xD1\x81\xD1\x81\xD0\xBA\xD0\xB8\xD0\xB9 \xD0\xB3\xD0\xBE\xD1\x81\xD1\x83\xD0\xB4\xD0\xB0\xD1\x80\xD1\x81\xD1\x82\xD0\xB2\xD0\xB5\xD0\xBD\xD0\xBD\xD1\x8B\xD0\xB9 \xD1\x83\xD0\xBD\xD0\xB8\xD0\xB2\xD0\xB5\xD1\x80\xD1\x81\xD0\xB8\xD1\x82\xD0\xB5\xD1\x82 \xD0\xB8\xD0\xBC. \xD0\x9D.\xD0\xA4. \xD0\x9A\xD0\xB0\xD1\x82\xD0\xB0\xD0\xBD\xD0\xBE\xD0\xB2\xD0\xB0, \xD0\x90\xD0\xB1\xD0\xB0\xD0\xBA\xD0\xB0\xD0\xBD\",\"year\":2012,\"organization\":\"\xD0\x98\xD0\xBD\xD1\x81\xD1\x82\xD0\xB8\xD1\x82\xD1\x83\xD1\x82 \xD0\xB8\xD0\xBD\xD1\x84\xD0\xBE\xD1\x80\xD0\xBC\xD0\xB0\xD1\x86\xD0\xB8\xD0\xBE\xD0\xBD\xD0\xBD\xD1\x8B\xD1\x85 \xD1\x82\xD0\xB5\xD1\x85\xD0\xBD\xD0\xBE\xD0\xBB\xD0\xBE\xD0\xB3\xD0\xB8\xD0\xB9 \xD0\xB8 \xD0\xB8\xD0\xBD\xD0\xB6\xD0\xB5\xD0\xBD\xD0\xB5\xD1\x80\xD0\xBD\xD0\xBE\xD0\xB3\xD0\xBE \xD0\xBE\xD0\xB1\xD1\x80\xD0\xB0\xD0\xB7\xD0\xBE\xD0\xB2\xD0\xB0\xD0\xBD\xD0\xB8\xD1\x8F\",\"result_id\":\"608\",\"result\":\"\xD0\x9F\xD1\x80\xD0\xBE\xD0\xB3\xD1\x80\xD0\xB0\xD0\xBC\xD0\xBC\xD0\xBD\xD0\xBE\xD0\xB5 \xD0\xBE\xD0\xB1\xD0\xB5\xD1\x81\xD0\xBF\xD0\xB5\xD1\x87\xD0\xB5\xD0\xBD\xD0\xB8\xD0\xB5 \xD0\xB2\xD1\x8B\xD1\x87\xD0\xB8\xD1\x81\xD0\xBB\xD0\xB8\xD1\x82\xD0\xB5\xD0\xBB\xD1\x8C\xD0\xBD\xD0\xBE\xD0\xB9 \xD1\x82\xD0\xB5\xD1\x85\xD0\xBD\xD0\xB8\xD0\xBA\xD0\xB8 \xD0\xB8 \xD0\xB0\xD0\xB2\xD1\x82\xD0\xBE\xD0\xBC\xD0\xB0\xD1\x82\xD0\xB8\xD0\xB7\xD0\xB8\xD1\x80\xD0\xBE\xD0\xB2\xD0\xB0\xD0\xBD\xD0\xBD\xD1\x8B\xD1\x85 \xD1\x81\xD0\xB8\xD1\x81\xD1\x82\xD0\xB5\xD0\xBC\"}]},\"id\":\"f88757a00003fb4920001236f26d6f676b4630\",\"first_name\":\"\xD0\x94\xD0\xBC\xD0\xB8\xD1\x82\xD1\x80\xD0\xB8\xD0\xB9\",\"middle_name\":\"\xD0\x9D\xD0\xB8\xD0\xBA\xD0\xBE\xD0\xBB\xD0\xB0\xD0\xB5\xD0\xB2\xD0\xB8\xD1\x87\",\"certificate\":[],\"title\":\"\xD0\xA1\xD0\xB8\xD1\x81\xD1\x82\xD0\xB5\xD0\xBC\xD0\xBD\xD1\x8B\xD0\xB9 \xD0\xB0\xD0\xB4\xD0\xBC\xD0\xB8\xD0\xBD\xD0\xB8\xD1\x81\xD1\x82\xD1\x80\xD0\xB0\xD1\x82\xD0\xBE\xD1\x802\",\"total_experience\":{\"months\":62},\"favorited\":false,\"salary\":{\"currency\":\"RUR\",\"amount\":100000},\"can_view_full_info\":true,\"url\":\"https://api.hh.ru/resumes/f88757a00003fb4920001236f26d6f676b4630?topic_id=973246529\",\"gender\":{\"id\":\"male\",\"name\":\"\xD0\x9C\xD1\x83\xD0\xB6\xD1\x81\xD0\xBA\xD0\xBE\xD0\xB9\"},\"age\":27,\"area\":{\"url\":\"https://api.hh.ru/areas/103\",\"id\":\"103\",\"name\":\"\xD0\x90\xD0\xB1\xD0\xB0\xD0\xBA\xD0\xB0\xD0\xBD\"},\"experience\":[{\"industries\":[{\"id\":\"36.403\",\"name\":\"\xD0\x93\xD0\xBE\xD1\x81\xD1\x83\xD0\xB4\xD0\xB0\xD1\x80\xD1\x81\xD1\x82\xD0\xB2\xD0\xB5\xD0\xBD\xD0\xBD\xD1\x8B\xD0\xB5 \xD0\xBE\xD1\x80\xD0\xB3\xD0\xB0\xD0\xBD\xD0\xB8\xD0\xB7\xD0\xB0\xD1\x86\xD0\xB8\xD0\xB8\"}],\"start\":\"2012-11-01\",\"position\":\"\xD0\x92\xD0\xB5\xD0\xB4\xD1\x83\xD1\x89\xD0\xB8\xD0\xB9 \xD1\x81\xD0\xBF\xD0\xB5\xD1\x86\xD0\xB8\xD0\xB0\xD0\xBB\xD0\xB8\xD1\x81\xD1\x82-\xD1\x8D\xD0\xBA\xD1\x81\xD0\xBF\xD0\xB5\xD1\x80\xD1\x82 \xD0\xBE\xD1\x82\xD0\xB4\xD0\xB5\xD0\xBB\xD0\xB0 \xD0\xB8\xD0\xBD\xD1\x84\xD0\xBE\xD1\x80\xD0\xBC\xD0\xB0\xD1\x86\xD0\xB8\xD0\xBE\xD0\xBD\xD0\xBD\xD1\x8B\xD1\x85 \xD1\x82\xD0\xB5\xD1\x85\xD0\xBD\xD0\xBE\xD0\xBB\xD0\xBE\xD0\xB3\xD0\xB8\xD0\xB9\",\"end\":null,\"area\":{\"url\":\"https://api.hh.ru/areas/1187\",\"id\":\"1187\",\"name\":\"\xD0\xA0\xD0\xB5\xD1\x81\xD0\xBF\xD1\x83\xD0\xB1\xD0\xBB\xD0\xB8\xD0\xBA\xD0\xB0 \xD0\xA5\xD0\xB0\xD0\xBA\xD0\xB0\xD1\x81\xD0\xB8\xD1\x8F\"},\"company_url\":\"http://www.pfrf.ru/\",\"industry\":null,\"company\":\"\xD0\x93\xD0\xA3 \xD0\x9E\xD1\x82\xD0\xB4\xD0\xB5\xD0\xBB\xD0\xB5\xD0\xBD\xD0\xB8\xD0\xB5 \xD0\x9F\xD0\xB5\xD0\xBD\xD1\x81\xD0\xB8\xD0\xBE\xD0\xBD\xD0\xBD\xD0\xBE\xD0\xB3\xD0\xBE \xD0\xA4\xD0\xBE\xD0\xBD\xD0\xB4\xD0\xB0 \xD0\xA0\xD0\xA4 \xD0\xBF\xD0\xBE \xD0\xA0\xD0\xA5\",\"company_id\":null,\"employer\":null},{\"industries\":[{\"id\":\"48.681\",\"name\":\"\xD0\x9B\xD0\xB5\xD1\x87\xD0\xB5\xD0\xB1\xD0\xBD\xD0\xBE-\xD0\xBF\xD1\x80\xD0\xBE\xD1\x84\xD0\xB8\xD0\xBB\xD0\xB0\xD0\xBA\xD1\x82\xD0\xB8\xD1\x87\xD0\xB5\xD1\x81\xD0\xBA\xD0\xB8\xD0\xB5 \xD1\x83\xD1\x87\xD1\x80\xD0\xB5\xD0\xB6\xD0\xB4\xD0\xB5\xD0\xBD\xD0\xB8\xD1\x8F\"}],\"start\":\"2012-08-01\",\"end\":\"2013-04-01\",\"area\":{\"url\":\"https://api.hh.ru/areas/1187\",\"id\":\"1187\",\"name\":\"\xD0\xA0\xD0\xB5\xD1\x81\xD0\xBF\xD1\x83\xD0\xB1\xD0\xBB\xD0\xB8\xD0\xBA\xD0\xB0 \xD0\xA5\xD0\xB0\xD0\xBA\xD0\xB0\xD1\x81\xD0\xB8\xD1\x8F\"},\"company_url\":null,\"industry\":null,\"company\":\"\xD0\x9C\xD0\x91\xD0\xA3\xD0\x97 \xC2\xAB\xD0\x9A\xD0\xBB\xD0\xB8\xD0\xBD\xD0\xB8\xD1\x87\xD0\xB5\xD1\x81\xD0\xBA\xD0\xB8\xD0\xB9 \xD1\x80\xD0\xBE\xD0\xB4\xD0\xB8\xD0\xBB\xD1\x8C\xD0\xBD\xD1\x8B\xD0\xB9 \xD0\xB4\xD0\xBE\xD0\xBC\xC2\xBB\",\"company_id\":null,\"employer\":null}],\"created_at\":\"2017-08-14T19:31:03+0300\"},\"updated_at\":\"2017-09-01T06:56:49+0300\",\"actions\":[],\"viewed_by_opponent\":true,\"id\":\"973246529\",\"employer_state\":{\"id\":\"response\",\"name\":\"\xD0\x9D\xD0\xB5\xD1\x80\xD0\xB0\xD0\xB7\xD0\xBE\xD0\xB1\xD1\x80\xD0\xB0\xD0\xBD\xD0\xBD\xD1\x8B\xD0\xB5\"},\"url\":\"https://api.hh.ru/negotiations/973246529\",\"created_at\":\"2017-09-01T06:56:49+0300\",\"has_updates\":false,\"state\":{\"id\":\"response\",\"name\":\"\xD0\x9E\xD1\x82\xD0\xBA\xD0\xBB\xD0\xB8\xD0\xBA\"},\"counters\":{\"unread_messages\":0,\"messages\":1}}]}"

      stub_request(:get, "https://api.hh.ru/resumes/f88757a00003fb4920001236f26d6f676b4630?topic_id=973246529")
        .to_return body: "{\"last_name\":\"Акимов\",\"citizenship\":[{\"url\":\"https://api.hh.ru/areas/113\",\"id\":\"113\",\"name\":\"Россия\"}],\"resume_locale\":{\"id\":\"RU\",\"name\":\"Русский\"},\"photo\":null,\"business_trip_readiness\":{\"id\":\"ready\",\"name\":\"готов к командировкам\"},\"publish_url\":null,\"site\":[],\"travel_time\":{\"id\":\"less_than_hour\",\"name\":\"Не более часа\"},\"recommendation\":[],\"owner\":{\"comments\":{\"url\":\"https://api.hh.ru/applicant_comments/28271610\",\"counters\":{\"total\":0}}},\"portfolio\":[],\"education\":{\"elementary\":[],\"additional\":[{\"organization\":\"Учебный центр «КУДИЦ».Gennadiy Kharlip.\",\"year\":2017,\"name\":\"AS24G - System Operator Workshop for IBM i\",\"result\":\"Оператор IBM i\"},{\"organization\":\"Институт информационных технологий АйТи\",\"year\":2016,\"name\":\"ITIL: Управление инцидентами, проблемами и изменениями\",\"result\":\"Прикладное программное обеспечение информационных технологий\"},{\"organization\":\"Учебный центр РРС\",\"year\":2015,\"name\":\"VMware vSphere: Установка, настройка, управление\",\"result\":\"Прикладное программное обеспечение информационных технологий\"}],\"attestation\":[],\"primary\":[{\"organization_id\":null,\"name_id\":\"45747\",\"name\":\"Хакасский государственный университет им. Н.Ф. Катанова, Абакан\",\"year\":2017,\"organization\":\"Институт информационных технологий и инженерного образования\",\"result_id\":null,\"result\":\"Программное обеспечение вычислительной техники и автоматизированных систем (магистр)\"},{\"organization_id\":null,\"name_id\":\"45747\",\"name\":\"Хакасский государственный университет им. Н.Ф. Катанова, Абакан\",\"year\":2012,\"organization\":\"Институт информационных технологий и инженерного образования\",\"result_id\":\"608\",\"result\":\"Программное обеспечение вычислительной техники и автоматизированных систем\"}],\"level\":{\"id\":\"higher\",\"name\":\"Высшее\"}},\"employment\":{\"id\":\"full\",\"name\":\"Полная занятость\"},\"id\":\"f88757a00003fb4920001236f26d6f676b4630\",\"blocked\":null,\"first_name\":\"Дмитрий\",\"middle_name\":\"Николаевич\",\"specialization\":[{\"profarea_id\":\"1\",\"profarea_name\":\"Информационные технологии, интернет, телеком\",\"id\":\"1.270\",\"laboring\":false,\"name\":\"Сетевые технологии\"},{\"profarea_id\":\"1\",\"profarea_name\":\"Информационные технологии, интернет, телеком\",\"id\":\"1.273\",\"laboring\":false,\"name\":\"Системный администратор\"},{\"profarea_id\":\"1\",\"profarea_name\":\"Информационные технологии, интернет, телеком\",\"id\":\"1.89\",\"laboring\":false,\"name\":\"Интернет\"}],\"certificate\":[],\"area\":{\"url\":\"https://api.hh.ru/areas/103\",\"id\":\"103\",\"name\":\"Абакан\"},\"negotiations_history\":{\"url\":\"https://api.hh.ru/resumes/f88757a00003fb4920001236f26d6f676b4630/negotiations_history\"},\"relocation\":{\"type\":{\"id\":\"relocation_desirable\",\"name\":\"хочу переехать\"},\"area\":[{\"url\":\"https://api.hh.ru/areas/1\",\"id\":\"1\",\"name\":\"Москва\"},{\"url\":\"https://api.hh.ru/areas/2\",\"id\":\"2\",\"name\":\"Санкт-Петербург\"}]},\"work_ticket\":[{\"url\":\"https://api.hh.ru/areas/113\",\"id\":\"113\",\"name\":\"Россия\"}],\"age\":27,\"employments\":[{\"id\":\"full\",\"name\":\"Полная занятость\"},{\"id\":\"part\",\"name\":\"Частичная занятость\"},{\"id\":\"project\",\"name\":\"Проектная работа\"}],\"total_experience\":{\"months\":62},\"status\":null,\"favorited\":false,\"_progress\":null,\"schedule\":{\"id\":\"fullDay\",\"name\":\"Полный день\"},\"new_views\":null,\"total_views\":null,\"updated_at\":\"2017-09-02T04:25:27+0300\",\"birth_date\":\"1989-10-31\",\"finished\":null,\"skill_set\":[\"DB2\",\"IBM Websphere\",\"Red Hat Enterprise Linux\",\"IBM MQ\"],\"schedules\":[{\"id\":\"fullDay\",\"name\":\"Полный день\"},{\"id\":\"shift\",\"name\":\"Сменный график\"},{\"id\":\"flexible\",\"name\":\"Гибкий график\"},{\"id\":\"remote\",\"name\":\"Удаленная работа\"}],\"salary\":{\"currency\":\"RUR\",\"amount\":100000},\"can_view_full_info\":true,\"metro\":null,\"language\":[{\"level\":{\"id\":\"can_read\",\"name\":\"читаю профессиональную литературу\"},\"id\":\"eng\",\"name\":\"Английский\"},{\"level\":{\"id\":\"native\",\"name\":\"родной\"},\"id\":\"rus\",\"name\":\"Русский\"}],\"skills\":\"• Поддержка программно-аппаратных комплексов различного уровня сложности (развертывание, настройка, обновление, обслуживание, резервное копирование и т.п.)\\r\\n• Опыт внедрения программно-аппаратных комплексов.\\r\\n• Разработка и проектирование баз данных (SQL) и программных комплексов. Анализ, проектирование, составление технического задания, разработка, внедрение.\\r\\n• Быстрое обучение требуемому языку программирования.\\r\\n• Поддержка виртуальной инфраструктуры (проектирование, развертывание, настройка, поддержка и т.п.).\",\"gender\":{\"id\":\"male\",\"name\":\"Мужской\"},\"created_at\":\"2017-08-14T19:31:03+0300\",\"title\":\"Системный администратор2\",\"experience\":[{\"industries\":[{\"id\":\"36.403\",\"name\":\"Государственные организации\"}],\"end\":null,\"description\":\"Поддержка различных программно-технических комплексов на основе:\\r\\n• Операционные системы: Windows (2003-2012), Linux (Red Hat, Ubuntu).\\r\\n• СУБД: IBM DB2, Oracle Database, Cache InterSystems, MySQL, MSSQL.\\r\\n• Сервера приложений: IBM WebSphere, Apache, GlassFish, IIS, Oracle Weblogic.\\r\\n• Языки программирования: Знание: С#, Delphi, Опыт программирования на Java, Python Visual Basic, PHP, C/С++. Опыт работы с bash, vbs. Без проблем освою любой язык программирования.\\r\\n• ПО виртуализации: VMware Infrastructure (удостоверение о повышении квалификации), VirtualBox.\\r\\n• Опыт поддержки системы Oracle Identity Management\\r\\n• Система обмена сообщениями IBM WebSphere MQ\\r\\n• Система резервного копирования IBM TSM. \\r\\n• Система событийного мониторинга IBM Tivoli Monitoring\\r\\n• Работа с системами хранения QNAP, IBM Storvize\\r\\n• Настройка сетевого оборудования Cisco, Extreme Networks, 3COM.\",\"area\":{\"url\":\"https://api.hh.ru/areas/1187\",\"id\":\"1187\",\"name\":\"Республика Хакасия\"},\"company_url\":\"http://www.pfrf.ru/\",\"industry\":null,\"company_id\":null,\"employer\":null,\"start\":\"2012-11-01\",\"position\":\"Ведущий специалист-эксперт отдела информационных технологий\",\"company\":\"ГУ Отделение Пенсионного Фонда РФ по РХ\"},{\"industries\":[{\"id\":\"48.681\",\"name\":\"Лечебно-профилактические учреждения\"}],\"end\":\"2013-04-01\",\"description\":\"- Поддержка работы программно-технического комплекса: \\\"Комплексная медицинская информационная система\\\" (КМИС) - IBM Lotus Domino.\\r\\n- Поддержка работы сети, AD, различного общесистемного и прикладного ПО.\",\"area\":{\"url\":\"https://api.hh.ru/areas/1187\",\"id\":\"1187\",\"name\":\"Республика Хакасия\"},\"company_url\":null,\"industry\":null,\"company_id\":null,\"employer\":null,\"start\":\"2012-08-01\",\"position\":\"Инженер-программист\",\"company\":\"МБУЗ «Клинический родильный дом»\"}],\"views_url\":null,\"contact\":[{\"comment\":null,\"type\":{\"id\":\"cell\",\"name\":\"Мобильный телефон\"},\"preferred\":true,\"value\":{\"country\":\"7\",\"formatted\":\"+7 (923) 215-47-87\",\"number\":\"2154787\",\"city\":\"923\"}},{\"type\":{\"id\":\"email\",\"name\":\"Эл. почта\"},\"preferred\":false,\"value\":\"akimov.rf@ya.ru\"}],\"can_publish_or_update\":null,\"paid_services\":[],\"alternate_url\":\"https://hh.ru/resume/f88757a00003fb4920001236f26d6f676b4630?t=973246529\",\"next_publish_at\":null}"

      stub_request(:get, "https://api.hh.ru/negotiations/973246529/messages")
        .to_return body: "{\"per_page\":20,\"items\":[{\"author\":{\"participant_type\":\"applicant\"},\"text\":\"Готов работать удаленно\",\"created_at\":\"2017-09-01T06:56:49+0300\",\"editable\":false,\"viewed_by_opponent\":true,\"viewed_by_me\":true,\"state\":{\"id\":\"response\",\"name\":\"Отклик\"},\"address\":null,\"id\":\"1229263042\"}],\"page\":0,\"pages\":1,\"found\":1}"

      Hh::IssueBuilder.any_instance.stubs(:execute).returns(true)
    end

    subject { Hh::ApiService.new.execute('archived') }

    should 'call all api methods' do
      subject
      assert_requested :get, "#{Hh::ApiService::BASE_URL}/employers/#{Setting.plugin_redmine_hire['hh_employer_id']}/vacancies/archived"
      assert_requested :get, "#{Hh::ApiService::BASE_URL}/negotiations/response?vacancy_id=22242092"
      assert_requested :get, "https://api.hh.ru/resumes/f88757a00003fb4920001236f26d6f676b4630?topic_id=973246529"
      assert_requested :get, "https://api.hh.ru/negotiations/973246529/messages"
    end

    should 'save vacancy data' do
      subject
      assert_equal 1, HhVacancy.count
    end

    should 'save new hh_response' do
      subject
      assert_equal 1, HhResponse.count
    end

    should 'not save hh_response if hh_response exist' do
      HhResponse.create(hh_id: '973246529')
      subject
      assert_equal 1, HhResponse.count
    end

  end
end
