mirror of
https://github.com/internetee/registry.git
synced 2025-05-17 17:59:47 +02:00
Refactor poll to hold session
This commit is contained in:
parent
47334c8aae
commit
f92d3088fb
1 changed files with 45 additions and 47 deletions
|
@ -1,61 +1,56 @@
|
|||
require 'rails_helper'
|
||||
|
||||
describe 'EPP Poll', epp: true do
|
||||
let(:server_zone) { Epp::Server.new({ server: 'localhost', tag: 'zone', password: 'ghyt9e4fu', port: 701 }) }
|
||||
let(:server_elkdata) { Epp::Server.new({ server: 'localhost', tag: 'elkdata', password: 'ghyt9e4fu', port: 701 }) }
|
||||
let(:epp_xml) { EppXml::Session.new }
|
||||
|
||||
before(:each) { create_settings }
|
||||
def registrar1
|
||||
@registrar1 ||= Registrar.where(reg_no: '12345678').first || Fabricate(:registrar)
|
||||
end
|
||||
|
||||
def registrar2
|
||||
@registrar2 ||= Fabricate(:registrar, { name: 'registrar2', reg_no: '123' })
|
||||
end
|
||||
|
||||
before(:all) do
|
||||
@elkdata = Fabricate(:registrar, { name: 'Elkdata', reg_no: '123' })
|
||||
@zone = Fabricate(:registrar)
|
||||
Fabricate(:epp_user, username: 'zone', registrar: @zone)
|
||||
Fabricate(:epp_user, username: 'elkdata', registrar: @elkdata)
|
||||
Fabricate(:epp_user, username: 'registrar1', registrar: registrar1)
|
||||
Fabricate(:epp_user, username: 'registrar2', registrar: registrar2)
|
||||
|
||||
login_as :registrar1
|
||||
|
||||
@uniq_no = proc { @i ||= 0; @i += 1 }
|
||||
|
||||
create_settings
|
||||
end
|
||||
|
||||
it 'returns no messages in poll' do
|
||||
ApiLog::EppLog.delete_all
|
||||
response = epp_request(epp_xml.poll, :xml)
|
||||
response = epp_plain_request(epp_xml.poll, :xml)
|
||||
|
||||
expect(response[:msg]).to eq('Command completed successfully; no messages')
|
||||
expect(response[:result_code]).to eq('1300')
|
||||
|
||||
log = ApiLog::EppLog.all
|
||||
log = ApiLog::EppLog.last
|
||||
|
||||
expect(log.length).to eq(4)
|
||||
expect(log[0].request_command).to eq('hello')
|
||||
expect(log[0].request_successful).to eq(true)
|
||||
|
||||
expect(log[1].request_command).to eq('login')
|
||||
expect(log[1].request_successful).to eq(true)
|
||||
expect(log[1].api_user_name).to eq('zone')
|
||||
expect(log[1].api_user_registrar).to eq('Registrar OÜ')
|
||||
|
||||
expect(log[2].request_command).to eq('poll')
|
||||
expect(log[2].request_object).to eq('poll')
|
||||
expect(log[2].request_successful).to eq(true)
|
||||
expect(log[2].api_user_name).to eq('zone')
|
||||
expect(log[2].api_user_registrar).to eq('Registrar OÜ')
|
||||
expect(log[2].request).not_to be_blank
|
||||
expect(log[2].response).not_to be_blank
|
||||
|
||||
expect(log[3].request_command).to eq('logout')
|
||||
expect(log[3].request_successful).to eq(true)
|
||||
expect(log[3].api_user_name).to eq('zone')
|
||||
expect(log[3].api_user_registrar).to eq('Registrar OÜ')
|
||||
expect(log.request_command).to eq('poll')
|
||||
expect(log.request_object).to eq('poll')
|
||||
expect(log.request_successful).to eq(true)
|
||||
expect(log.api_user_name).to eq('registrar1')
|
||||
expect(log.api_user_registrar).to eq('Registrar OÜ')
|
||||
expect(log.request).not_to be_blank
|
||||
expect(log.response).not_to be_blank
|
||||
end
|
||||
|
||||
it 'queues and dequeues messages' do
|
||||
msg = @zone.messages.create({ body: 'Balance low.' })
|
||||
msg = registrar1.messages.create({ body: 'Balance low.' })
|
||||
|
||||
response = login_as :registrar2 do
|
||||
epp_plain_request(epp_xml.poll, :xml)
|
||||
end
|
||||
|
||||
response = epp_request(epp_xml.poll, :xml, :elkdata)
|
||||
expect(response[:msg]).to eq('Command completed successfully; no messages')
|
||||
expect(response[:result_code]).to eq('1300')
|
||||
|
||||
response = epp_request(epp_xml.poll, :xml, :zone)
|
||||
response = epp_plain_request(epp_xml.poll, :xml)
|
||||
expect(response[:msg]).to eq('Command completed successfully; ack to dequeue')
|
||||
expect(response[:result_code]).to eq('1301')
|
||||
msg_q = response[:parsed].css('msgQ')
|
||||
|
@ -68,18 +63,21 @@ describe 'EPP Poll', epp: true do
|
|||
value: '', attrs: { op: 'ack', msgID: msg_q.first['id'] }
|
||||
})
|
||||
|
||||
response = epp_request(xml, :xml, :elkdata)
|
||||
response = login_as :registrar2 do
|
||||
epp_plain_request(xml, :xml)
|
||||
end
|
||||
|
||||
expect(response[:results][0][:msg]).to eq('Message was not found')
|
||||
expect(response[:results][0][:result_code]).to eq('2303')
|
||||
expect(response[:results][0][:value]).to eq(msg_q.first['id'])
|
||||
|
||||
response = epp_request(xml, :xml, :zone)
|
||||
response = epp_plain_request(xml, :xml)
|
||||
expect(response[:msg]).to eq('Command completed successfully')
|
||||
msg_q = response[:parsed].css('msgQ')
|
||||
expect(msg_q.first['id']).to_not be_blank
|
||||
expect(msg_q.first['count']).to eq('0')
|
||||
|
||||
response = epp_request(xml, :xml, :zone)
|
||||
response = epp_plain_request(xml, :xml)
|
||||
expect(response[:results][0][:msg]).to eq('Message was not found')
|
||||
expect(response[:results][0][:result_code]).to eq('2303')
|
||||
expect(response[:results][0][:value]).to eq(msg_q.first['id'])
|
||||
|
@ -90,16 +88,16 @@ describe 'EPP Poll', epp: true do
|
|||
value: '', attrs: { op: 'bla' }
|
||||
})
|
||||
|
||||
response = epp_request(xml, :xml, :zone)
|
||||
response = epp_plain_request(xml, :xml)
|
||||
expect(response[:msg]).to eq('Attribute op is invalid')
|
||||
end
|
||||
|
||||
it 'dequeues multiple messages' do
|
||||
@zone.messages.create({ body: 'Balance low.' })
|
||||
@zone.messages.create({ body: 'Something.' })
|
||||
@zone.messages.create({ body: 'Smth else.' })
|
||||
registrar1.messages.create({ body: 'Balance low.' })
|
||||
registrar1.messages.create({ body: 'Something.' })
|
||||
registrar1.messages.create({ body: 'Smth else.' })
|
||||
|
||||
response = epp_request(epp_xml.poll, :xml, :zone)
|
||||
response = epp_plain_request(epp_xml.poll, :xml)
|
||||
expect(response[:msg]).to eq('Command completed successfully; ack to dequeue')
|
||||
expect(response[:result_code]).to eq('1301')
|
||||
msg_q = response[:parsed].css('msgQ')
|
||||
|
@ -111,13 +109,13 @@ describe 'EPP Poll', epp: true do
|
|||
value: '', attrs: { op: 'ack', msgID: msg_q.first['id'] }
|
||||
})
|
||||
|
||||
response = epp_request(xml, :xml, :zone)
|
||||
response = epp_plain_request(xml, :xml)
|
||||
expect(response[:msg]).to eq('Command completed successfully')
|
||||
msg_q = response[:parsed].css('msgQ')
|
||||
expect(msg_q.first['id']).to_not be_blank
|
||||
expect(msg_q.first['count']).to eq('2')
|
||||
|
||||
response = epp_request(epp_xml.poll, :xml, :zone)
|
||||
response = epp_plain_request(epp_xml.poll, :xml)
|
||||
expect(response[:msg]).to eq('Command completed successfully; ack to dequeue')
|
||||
expect(response[:result_code]).to eq('1301')
|
||||
msg_q = response[:parsed].css('msgQ')
|
||||
|
@ -129,13 +127,13 @@ describe 'EPP Poll', epp: true do
|
|||
value: '', attrs: { op: 'ack', msgID: msg_q.first['id'] }
|
||||
})
|
||||
|
||||
response = epp_request(xml, :xml, :zone)
|
||||
response = epp_plain_request(xml, :xml)
|
||||
expect(response[:msg]).to eq('Command completed successfully')
|
||||
msg_q = response[:parsed].css('msgQ')
|
||||
expect(msg_q.first['id']).to_not be_blank
|
||||
expect(msg_q.first['count']).to eq('1')
|
||||
|
||||
response = epp_request(epp_xml.poll, :xml, :zone)
|
||||
response = epp_plain_request(epp_xml.poll, :xml)
|
||||
expect(response[:msg]).to eq('Command completed successfully; ack to dequeue')
|
||||
expect(response[:result_code]).to eq('1301')
|
||||
msg_q = response[:parsed].css('msgQ')
|
||||
|
@ -147,13 +145,13 @@ describe 'EPP Poll', epp: true do
|
|||
value: '', attrs: { op: 'ack', msgID: msg_q.first['id'] }
|
||||
})
|
||||
|
||||
response = epp_request(xml, :xml, :zone)
|
||||
response = epp_plain_request(xml, :xml)
|
||||
expect(response[:msg]).to eq('Command completed successfully')
|
||||
msg_q = response[:parsed].css('msgQ')
|
||||
expect(msg_q.first['id']).to_not be_blank
|
||||
expect(msg_q.first['count']).to eq('0')
|
||||
|
||||
response = epp_request(epp_xml.poll, :xml, :zone)
|
||||
response = epp_plain_request(epp_xml.poll, :xml)
|
||||
expect(response[:msg]).to eq('Command completed successfully; no messages')
|
||||
expect(response[:result_code]).to eq('1300')
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue