Refactor + dummy domain spec

This commit is contained in:
Martin Lensment 2014-06-25 14:12:03 +03:00
parent dad57ffa8b
commit 9f30ec3cc7
3 changed files with 34 additions and 11 deletions

14
spec/epp/domain_spec.rb Normal file
View file

@ -0,0 +1,14 @@
require 'rails_helper'
describe 'EPP Domain', epp: true do
let(:server) { server = Epp::Server.new({server: 'localhost', tag: 'test', password: 'test'}) }
context 'with valid user' do
before(:each) { Fabricate(:epp_user) }
it 'creates a domain' do
response = epp_request('create_domain.xml')
end
end
end

View file

@ -16,18 +16,18 @@ describe 'EPP Session', epp: true do
after(:each) { server.close_connection }
it 'does not log in with invalid user' do
response = epp_request('login.xml')
response = epp_plain_request('login.xml')
expect(response[:result_code]).to eq('2501')
expect(response[:msg]).to eq('Authentication error; server closing connection')
Fabricate(:epp_user, active: false)
response = epp_request('login.xml')
response = epp_plain_request('login.xml')
expect(response[:result_code]).to eq('2501')
end
it 'prohibits further actions unless logged in' do
response = epp_request('create_domain.xml')
response = epp_plain_request('create_domain.xml')
expect(response[:result_code]).to eq('2002')
expect(response[:msg]).to eq('You need to login first.')
end
@ -36,23 +36,23 @@ describe 'EPP Session', epp: true do
before(:each) { Fabricate(:epp_user) }
it 'logs in epp user' do
response = epp_request('login.xml')
response = epp_plain_request('login.xml')
expect(response[:result_code]).to eq('1000')
expect(response[:msg]).to eq('Command completed successfully')
end
it 'logs out epp user' do
epp_request('login.xml')
epp_plain_request('login.xml')
response = epp_request('logout.xml')
response = epp_plain_request('logout.xml')
expect(response[:result_code]).to eq('1500')
expect(response[:msg]).to eq('Command completed successfully; ending session')
end
it 'does not log in twice' do
epp_request('login.xml')
epp_plain_request('login.xml')
response = epp_request('login.xml')
response = epp_plain_request('login.xml')
expect(response[:result_code]).to eq('2002')
expect(response[:msg]).to match(/Already logged in. Use/)
end

View file

@ -3,12 +3,21 @@ module Epp
File.read("spec/epp/requests/#{filename}")
end
# handles connection and login automatically
def epp_request filename
response = Nokogiri::XML(server.send_request(read_body(filename)))
res = Nokogiri::XML(server.request(read_body(filename)))
parse_response(res)
end
def epp_plain_request filename
res = Nokogiri::XML(server.send_request(read_body(filename)))
parse_response(res)
end
def parse_response res
{
result_code: response.css('epp response result').first[:code],
msg: response.css('epp response result msg').text
result_code: res.css('epp response result').first[:code],
msg: res.css('epp response result msg').text
}
end