From dc2ec5535fc49272f8fc2cf3f13e6f8a0d72b1d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andres=20Keskk=C3=BCla?= Date: Wed, 13 Aug 2014 12:29:09 +0300 Subject: [PATCH 1/2] More contact specs --- spec/epp/contact_spec.rb | 31 +++++++++++++++++-- .../requests/contacts/check_missing_attr.xml | 11 +++++++ .../requests/contacts/delete_missing_attr.xml | 11 +++++++ .../requests/contacts/info_missing_attr.xml | 11 +++++++ 4 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 spec/epp/requests/contacts/check_missing_attr.xml create mode 100644 spec/epp/requests/contacts/delete_missing_attr.xml create mode 100644 spec/epp/requests/contacts/info_missing_attr.xml diff --git a/spec/epp/contact_spec.rb b/spec/epp/contact_spec.rb index 7601dacdc..621d3bafc 100644 --- a/spec/epp/contact_spec.rb +++ b/spec/epp/contact_spec.rb @@ -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') diff --git a/spec/epp/requests/contacts/check_missing_attr.xml b/spec/epp/requests/contacts/check_missing_attr.xml new file mode 100644 index 000000000..16b8d1475 --- /dev/null +++ b/spec/epp/requests/contacts/check_missing_attr.xml @@ -0,0 +1,11 @@ + + + + + + + + ABC-12345 + + diff --git a/spec/epp/requests/contacts/delete_missing_attr.xml b/spec/epp/requests/contacts/delete_missing_attr.xml new file mode 100644 index 000000000..cf8279789 --- /dev/null +++ b/spec/epp/requests/contacts/delete_missing_attr.xml @@ -0,0 +1,11 @@ + + + + + + + + ABC-12345 + + diff --git a/spec/epp/requests/contacts/info_missing_attr.xml b/spec/epp/requests/contacts/info_missing_attr.xml new file mode 100644 index 000000000..3fc5f54d7 --- /dev/null +++ b/spec/epp/requests/contacts/info_missing_attr.xml @@ -0,0 +1,11 @@ + + + + + + + + ABC-12345 + + From e8ddf2272e5e4ce9ae6ce06abd801b03224a6536 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andres=20Keskk=C3=BCla?= Date: Wed, 13 Aug 2014 13:35:25 +0300 Subject: [PATCH 2/2] Added multiple streets to address --- app/helpers/epp/contacts_helper.rb | 14 +++----------- .../20140813102245_add_streets_to_address.rb | 6 ++++++ db/schema.rb | 4 +++- spec/epp/contact_spec.rb | 9 +++++++-- spec/fabricators/address_fabricator.rb | 1 + 5 files changed, 20 insertions(+), 14 deletions(-) create mode 100644 db/migrate/20140813102245_add_streets_to_address.rb diff --git a/app/helpers/epp/contacts_helper.rb b/app/helpers/epp/contacts_helper.rb index 07d43ad7e..ee2afcad4 100644 --- a/app/helpers/epp/contacts_helper.rb +++ b/app/helpers/epp/contacts_helper.rb @@ -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(/(?<=\