Browse Source

Add more default mapping

pull/1331/head
Kat 3 years ago
parent
commit
dea249b58b
  1. 7
      app/services/imports/sales_logs_import_service.rb
  2. 166
      spec/services/imports/sales_logs_import_service_spec.rb

7
app/services/imports/sales_logs_import_service.rb

@ -399,6 +399,11 @@ module Imports
def set_default_values(attributes)
attributes["mscharge_known"] ||= 0 if attributes["ownershipsch"] == 3
attributes["armedforcesspouse"] ||= 7
attributes["hhregres"] ||= 8
attributes["disabled"] ||= 3
attributes["wheel"] ||= 3
attributes["hb"] ||= 4
attributes["prevown"] ||= 3
attributes["savingsnk"] ||= attributes["savings"].present? ? 0 : 1
# buyer 1 characteristics
@ -407,12 +412,14 @@ module Imports
attributes["ethnic_group"] ||= 17
attributes["national"] ||= 13
attributes["ecstat1"] ||= 10
attributes["income1nk"] ||= attributes["income1"].present? ? 0 : 1
# buyer 2 characteristics
if attributes["jointpur"] == 1
attributes["age2_known"] ||= 1
attributes["sex2"] ||= "R"
attributes["ecstat2"] ||= 10
attributes["income2nk"] ||= attributes["income2"].present? ? 0 : 1
end
# other household members characteristics

166
spec/services/imports/sales_logs_import_service_spec.rb

@ -385,6 +385,172 @@ RSpec.describe Imports::SalesLogsImportService do
expect(sales_log&.relat3).to eq("P")
end
end
context "when inferring armed forces" do
let(:sales_log_id) { discounted_ownership_sales_log_id }
before do
allow(logger).to receive(:warn).and_return(nil)
end
it "sets hhregres to don't know if not answered" do
sales_log_xml.at_xpath("//xmlns:ArmedF").content = ""
sales_log_service.send(:create_log, sales_log_xml)
sales_log = SalesLog.find_by(old_id: sales_log_id)
expect(sales_log&.hhregres).to eq(8)
end
it "sets hhregres correctly if answered" do
sales_log_xml.at_xpath("//xmlns:ArmedF").content = "7 No"
sales_log_service.send(:create_log, sales_log_xml)
sales_log = SalesLog.find_by(old_id: sales_log_id)
expect(sales_log&.hhregres).to eq(7)
end
end
context "when inferring disability" do
let(:sales_log_id) { discounted_ownership_sales_log_id }
before do
allow(logger).to receive(:warn).and_return(nil)
end
it "sets disabled to don't know if not answered" do
sales_log_xml.at_xpath("//xmlns:Disability").content = ""
sales_log_service.send(:create_log, sales_log_xml)
sales_log = SalesLog.find_by(old_id: sales_log_id)
expect(sales_log&.disabled).to eq(3)
end
it "sets disabled correctly if answered" do
sales_log_xml.at_xpath("//xmlns:Disability").content = "2 No"
sales_log_service.send(:create_log, sales_log_xml)
sales_log = SalesLog.find_by(old_id: sales_log_id)
expect(sales_log&.disabled).to eq(2)
end
end
context "when inferring wheelchair" do
let(:sales_log_id) { discounted_ownership_sales_log_id }
before do
allow(logger).to receive(:warn).and_return(nil)
end
it "sets wheel to don't know if not answered" do
sales_log_xml.at_xpath("//xmlns:Q10Wheelchair").content = ""
sales_log_service.send(:create_log, sales_log_xml)
sales_log = SalesLog.find_by(old_id: sales_log_id)
expect(sales_log&.wheel).to eq(3)
end
it "sets wheel correctly if answered" do
sales_log_xml.at_xpath("//xmlns:Q10Wheelchair").content = "2 No"
sales_log_service.send(:create_log, sales_log_xml)
sales_log = SalesLog.find_by(old_id: sales_log_id)
expect(sales_log&.wheel).to eq(2)
end
end
context "when inferring housing benefit" do
let(:sales_log_id) { discounted_ownership_sales_log_id }
before do
allow(logger).to receive(:warn).and_return(nil)
end
it "sets hb to don't know if not answered" do
sales_log_xml.at_xpath("//xmlns:Q2a").content = ""
sales_log_service.send(:create_log, sales_log_xml)
sales_log = SalesLog.find_by(old_id: sales_log_id)
expect(sales_log&.hb).to eq(4)
end
it "sets hb correctly if answered" do
sales_log_xml.at_xpath("//xmlns:Q2a").content = "2 Housing Benefit"
sales_log_service.send(:create_log, sales_log_xml)
sales_log = SalesLog.find_by(old_id: sales_log_id)
expect(sales_log&.hb).to eq(2)
end
end
context "when inferring income not known" do
let(:sales_log_id) { discounted_ownership_sales_log_id }
before do
sales_log_xml.at_xpath("//xmlns:joint").content = "1 Yes"
sales_log_xml.at_xpath("//xmlns:JointMore").content = "2 No"
allow(logger).to receive(:warn).and_return(nil)
end
it "sets income to not known if not answered and income is not given" do
sales_log_xml.at_xpath("//xmlns:P1IncKnown").content = ""
sales_log_xml.at_xpath("//xmlns:Q2Person1Income").content = ""
sales_log_xml.at_xpath("//xmlns:P2IncKnown").content = ""
sales_log_xml.at_xpath("//xmlns:Q2Person2Income").content = ""
sales_log_service.send(:create_log, sales_log_xml)
sales_log = SalesLog.find_by(old_id: sales_log_id)
expect(sales_log&.income1nk).to eq(1)
expect(sales_log&.income2nk).to eq(1)
end
it "sets income to known if not answered but the income is given" do
sales_log_xml.at_xpath("//xmlns:P1IncKnown").content = ""
sales_log_xml.at_xpath("//xmlns:Q2Person1Income").content = "30000"
sales_log_xml.at_xpath("//xmlns:P2IncKnown").content = ""
sales_log_xml.at_xpath("//xmlns:Q2Person2Income").content = "40000"
sales_log_service.send(:create_log, sales_log_xml)
sales_log = SalesLog.find_by(old_id: sales_log_id)
expect(sales_log&.income1nk).to eq(0)
expect(sales_log&.income2nk).to eq(0)
end
it "sets income known correctly if answered" do
sales_log_xml.at_xpath("//xmlns:P1IncKnown").content = "1 Yes"
sales_log_xml.at_xpath("//xmlns:P2IncKnown").content = "2 No"
sales_log_service.send(:create_log, sales_log_xml)
sales_log = SalesLog.find_by(old_id: sales_log_id)
expect(sales_log&.income1nk).to eq(0)
expect(sales_log&.income2nk).to eq(1)
end
end
context "when inferring prevown" do
let(:sales_log_id) { discounted_ownership_sales_log_id }
before do
allow(logger).to receive(:warn).and_return(nil)
end
it "sets prevown to don't know if not answered" do
sales_log_xml.at_xpath("//xmlns:Q4PrevOwnedProperty").content = ""
sales_log_service.send(:create_log, sales_log_xml)
sales_log = SalesLog.find_by(old_id: sales_log_id)
expect(sales_log&.prevown).to eq(3)
end
it "sets prevown correctly if answered" do
sales_log_xml.at_xpath("//xmlns:Q4PrevOwnedProperty").content = "2 No"
sales_log_service.send(:create_log, sales_log_xml)
sales_log = SalesLog.find_by(old_id: sales_log_id)
expect(sales_log&.prevown).to eq(2)
end
end
end
end
end

Loading…
Cancel
Save