From e9ea7f72d82bc4703b69c5f7e2443a1906966184 Mon Sep 17 00:00:00 2001 From: Snehit Gajjar Date: Thu, 7 Feb 2019 20:00:45 -0600 Subject: [PATCH] Test fix --- lib/zabbixapi/classes/users.rb | 29 ++++++++--------- spec/zabbixapi/classes/users_spec.rb | 48 +++++++++++++++++----------- 2 files changed, 42 insertions(+), 35 deletions(-) diff --git a/lib/zabbixapi/classes/users.rb b/lib/zabbixapi/classes/users.rb index be28aa8..72a5cb3 100644 --- a/lib/zabbixapi/classes/users.rb +++ b/lib/zabbixapi/classes/users.rb @@ -28,15 +28,9 @@ def indentify 'alias' end - # Add media to users using Zabbix API - # - # @param data [Hash] Needs to include userids and media to mass add media to users - # @raise [ApiError] Error returned when there is a problem with the Zabbix API call. - # @raise [HttpError] Error raised when HTTP status from Zabbix Server response is not a 200 OK. - # @return [Integer] Zabbix object id (media) - def add_medias(data) + def medias_helper(data, action) result = @client.api_request( - method: 'user.addMedia', + method: "user.#{action}", params: { users: data[:userids].map { |t| { userid: t } }, medias: data[:media] @@ -45,6 +39,16 @@ def add_medias(data) result ? result['mediaids'][0].to_i : nil end + # Add media to users using Zabbix API + # + # @param data [Hash] Needs to include userids and media to mass add media to users + # @raise [ApiError] Error returned when there is a problem with the Zabbix API call. + # @raise [HttpError] Error raised when HTTP status from Zabbix Server response is not a 200 OK. + # @return [Integer] Zabbix object id (media) + def add_medias(data) + medias_helper(data, 'addMedia') + end + # Update media for users using Zabbix API # # @param data [Hash] Needs to include userids and media to mass update media for users @@ -52,14 +56,7 @@ def add_medias(data) # @raise [HttpError] Error raised when HTTP status from Zabbix Server response is not a 200 OK. # @return [Integer] Zabbix object id (user) def update_medias(data) - result = @client.api_request( - method: 'user.updateMedia', - params: { - users: data[:userids].map { |t| { userid: t } }, - medias: data[:media] - } - ) - result ? result['userids'][0].to_i : nil + medias_helper(data, 'updateMedia') end end end diff --git a/spec/zabbixapi/classes/users_spec.rb b/spec/zabbixapi/classes/users_spec.rb index 6b0c9aa..bc5a43c 100644 --- a/spec/zabbixapi/classes/users_spec.rb +++ b/spec/zabbixapi/classes/users_spec.rb @@ -28,15 +28,16 @@ it { is_expected.to eq 'userids' } end - describe '.add_medias' do - subject { users_mock.add_medias(data) } + describe '.medias_helper' do + subject { users_mock.medias_helper(data, action) } let(:data) { { userids: [1234, 5678], media: 'testmedia' } } let(:result) { { 'mediaids' => ['111'], 'testindentify' => 1 } } + let(:action) { 'updateMedia' } before do allow(client).to receive(:api_request).with( - method: 'user.addMedia', + method: "user.#{action}", params: { users: data[:userids].map { |t| { userid: t } }, medias: data[:media] @@ -57,32 +58,41 @@ end end - describe '.update_medias' do - subject { users_mock.update_medias(data) } + describe '.add_medias' do + subject { users_mock.add_medias(data) } let(:data) { { userids: [1234, 5678], media: 'testmedia' } } let(:result) { { 'userids' => ['111'], 'testindentify' => 1 } } before do - allow(client).to receive(:api_request).with( - method: 'user.updateMedia', - params: { - users: data[:userids].map { |t| { userid: t } }, - medias: data[:media] - } - ).and_return(result) + allow(users_mock).to receive(:medias_helper) end - context 'when api_request returns nil result' do - let(:result) { nil } + it 'calls medias_helper' do + expect(users_mock).to receive(:medias_helper).with( + data, + 'addMedia' + ) + subject + end + end - it { is_expected.to be_nil } + describe '.update_medias' do + subject { users_mock.update_medias(data) } + + let(:data) { { userids: [1234, 5678], media: 'testmedia' } } + let(:result) { { 'userids' => ['111'], 'testindentify' => 1 } } + + before do + allow(users_mock).to receive(:medias_helper) end - context 'when api_request doesn not return empty result' do - it 'returns first userid' do - expect(subject).to eq 111 - end + it 'calls medias_helper' do + expect(users_mock).to receive(:medias_helper).with( + data, + 'updateMedia' + ) + subject end end end