Merge branch 'master' of github.com:internetee/registry

This commit is contained in:
Martin Lensment 2014-08-13 13:53:22 +03:00
commit d81b346035
8 changed files with 82 additions and 16 deletions

View file

@ -120,7 +120,9 @@ module Epp::ContactsHelper
contact_hash = contact_hash.merge({
address_attributes: {
country_id: Country.find_by(iso: ph[:postalInfo][:addr][:cc]),
street: tidy_street,
street: ph[:postalInfo][:addr][:street][0],
street2: ph[:postalInfo][:addr][:street][1],
street3: ph[:postalInfo][:addr][:street][2],
zip: ph[:postalInfo][:addr][:pc]
}
}) if ph[:postalInfo].is_a?(Hash) && ph[:postalInfo][:addr].is_a?(Hash)
@ -135,16 +137,6 @@ module Epp::ContactsHelper
return false
end
def tidy_street
command = params[:command]
street = params_hash['epp']['command'][command][command][:postalInfo][:addr][:street]
return street if street.is_a? String
return street.join(',') if street.is_a? Array
return nil
rescue NoMethodError => e #refactor so wouldn't use rescue for flow control
return nil
end
def ident_type
result = params[:frame].slice(/(?<=\<ns2:ident type=)(.*)(?=<)/)

View file

@ -0,0 +1,6 @@
class AddStreetsToAddress < ActiveRecord::Migration
def change
add_column :addresses, :street2, :string
add_column :addresses, :street3, :string
end
end

View file

@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 20140808132327) do
ActiveRecord::Schema.define(version: 20140813102245) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@ -24,6 +24,8 @@ ActiveRecord::Schema.define(version: 20140808132327) do
t.string "zip"
t.datetime "created_at"
t.datetime "updated_at"
t.string "street2"
t.string "street3"
end
create_table "contacts", force: true do |t|

View file

@ -7,22 +7,49 @@ describe 'EPP Contact', epp: true do
before(:each) { Fabricate(:epp_user) }
#Tests for the new error system
it "doesn't create contact with attributes missing" do
it "doesn't create contact if request is invalid" do
response = epp_request('contacts/create_missing_attr.xml')
expect(response[:results][0][:result_code]).to eq('2003')
expect(response[:results][1][:result_code]).to eq('2003')
expect(response[:results][0][:msg]).to eq('Required parameter missing: cc')
expect(response[:results][1][:msg]).to eq('Required parameter missing: authInfo')
expect(response[:results].count).to eq 2
end
it "doesn't update contact with attributes missing" do
it "doesn't update contact if request is invalid" do
response = epp_request('contacts/update_missing_attr.xml')
expect(response[:results][0][:result_code]).to eq('2003')
expect(response[:results][0][:msg]).to eq('Required parameter missing: id')
expect(response[:results].count).to eq 1
end
it "doesn't delete contact if request is invalid" do
response = epp_request('contacts/delete_missing_attr.xml')
expect(response[:results][0][:result_code]).to eq('2003')
expect(response[:results][0][:msg]).to eq('Required parameter missing: id')
expect(response[:results].count).to eq 1
end
it "doesn't check contact if request is invalid" do
response = epp_request('contacts/delete_missing_attr.xml')
expect(response[:results][0][:result_code]).to eq('2003')
expect(response[:results][0][:msg]).to eq('Required parameter missing: id')
expect(response[:results].count).to eq 1
end
it "doesn't display info if request invalid" do
response = epp_request('contacts/delete_missing_attr.xml')
expect(response[:results][0][:result_code]).to eq('2003')
expect(response[:results][0][:msg]).to eq('Required parameter missing: id')
expect(response[:results].count).to eq 1
end
# incomplete
it 'creates a contact' do
response = epp_request('contacts/create.xml')
@ -34,6 +61,11 @@ describe 'EPP Contact', epp: true do
expect(Contact.count).to eq(1)
expect(Contact.first.org_name).to eq('Example Inc.')
expect(Contact.first.address.street).to eq('123 Example Dr.')
expect(Contact.first.address.street2).to eq('Suite 100')
expect(Contact.first.address.street3).to eq nil
end
it 'returns result data upon succesful contact creation' do
@ -62,12 +94,12 @@ describe 'EPP Contact', epp: true do
it 'stamps updated_by succesfully' do
Fabricate(:contact, code: 'sh8013')
expect(Contact.first.updated_by_id).to be nil
response = epp_request('contacts/update.xml')
expect(Contact.first.updated_by_id).to be 1
expect(Contact.first.updated_by_id).to eq 1
end
#TODO tests for missing/invalid/etc ident

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<check>
<contact:check
xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
</contact:check>
</check>
<clTRID>ABC-12345</clTRID>
</command>
</epp>

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<delete>
<contact:delete
xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
</contact:delete>
</delete>
<clTRID>ABC-12345</clTRID>
</command>
</epp>

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<info>
<contact:info
xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
</contact:info>
</info>
<clTRID>ABC-12345</clTRID>
</command>
</epp>

View file

@ -1,5 +1,6 @@
Fabricator(:address) do
city Faker::Address.city
street Faker::Address.street_name
street Faker::Address.street_name
zip Faker::Address.zip
end