Skip to content

Commit

Permalink
Test fix
Browse files Browse the repository at this point in the history
  • Loading branch information
Snehit Gajjar committed Feb 8, 2019
1 parent 8ab952d commit e9ea7f7
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 35 deletions.
29 changes: 13 additions & 16 deletions lib/zabbixapi/classes/users.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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]
Expand All @@ -45,21 +39,24 @@ 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
# @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 (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
48 changes: 29 additions & 19 deletions spec/zabbixapi/classes/users_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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]
Expand All @@ -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

0 comments on commit e9ea7f7

Please sign in to comment.