From c5dc8ebd12ae71a83f6a3b28228e19c92483f542 Mon Sep 17 00:00:00 2001 From: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com> Date: Wed, 19 Apr 2023 11:40:16 +0100 Subject: [PATCH] Import support type as missing (#1561) * Import support type as missing * Set support_type to nil if it's not given * Fix casing --- .../imports/sales_logs_import_service.rb | 2 +- .../imports/scheme_location_import_service.rb | 9 ++++++++- .../sales_logs/shared_ownership_sales_log.xml | 2 +- .../imports/sales_logs_import_service_spec.rb | 2 +- .../scheme_location_import_service_spec.rb | 18 ++++++++++++++++++ 5 files changed, 29 insertions(+), 4 deletions(-) diff --git a/app/services/imports/sales_logs_import_service.rb b/app/services/imports/sales_logs_import_service.rb index 0f97df89a..8702a8846 100644 --- a/app/services/imports/sales_logs_import_service.rb +++ b/app/services/imports/sales_logs_import_service.rb @@ -170,7 +170,7 @@ module Imports attributes["ethnicbuy2"] = unsafe_string_as_integer(xml_doc, "P2Eth") attributes["ethnic_group2"] = ethnic_group(attributes["ethnicbuy2"]) attributes["nationalbuy2"] = unsafe_string_as_integer(xml_doc, "P2Nat") - attributes["buy2living"] = unsafe_string_as_integer(xml_doc, "buy2livein") + attributes["buy2living"] = unsafe_string_as_integer(xml_doc, "BUY2LIVEIN") attributes["staircasesale"] = unsafe_string_as_integer(xml_doc, "STAIRCASESALE") attributes["prevtenbuy2"] = unsafe_string_as_integer(xml_doc, "PREVTENBUY2") diff --git a/app/services/imports/scheme_location_import_service.rb b/app/services/imports/scheme_location_import_service.rb index a26139aec..93093e6da 100644 --- a/app/services/imports/scheme_location_import_service.rb +++ b/app/services/imports/scheme_location_import_service.rb @@ -77,7 +77,7 @@ module Imports attributes["scheme_type"] = safe_string_as_integer(xml_doc, "scheme-type") registered_under_care_act = safe_string_as_integer(xml_doc, "reg-home-type") attributes["registered_under_care_act"] = registered_under_care_act&.zero? ? nil : registered_under_care_act - attributes["support_type"] = safe_string_as_integer(xml_doc, "support-type") + attributes["support_type"] = support_type(xml_doc) attributes["intended_stay"] = string_or_nil(xml_doc, "intended-stay") attributes["mobility_type"] = string_or_nil(xml_doc, "mobility-type") attributes["primary_client_group"] = string_or_nil(xml_doc, "client-group-1") @@ -205,5 +205,12 @@ module Imports date = string_or_nil(xml_doc, attribute) Time.zone.parse(date) if date end + + def support_type(xml_doc) + type = safe_string_as_integer(xml_doc, "support-type") + return unless type + + Scheme::SUPPORT_TYPE.value?(type) ? type : 0 + end end end diff --git a/spec/fixtures/imports/sales_logs/shared_ownership_sales_log.xml b/spec/fixtures/imports/sales_logs/shared_ownership_sales_log.xml index b69cb22c2..8df5cc9a1 100644 --- a/spec/fixtures/imports/sales_logs/shared_ownership_sales_log.xml +++ b/spec/fixtures/imports/sales_logs/shared_ownership_sales_log.xml @@ -24,7 +24,7 @@ 2 No 1 Yes - + 2 No 2 Yes diff --git a/spec/services/imports/sales_logs_import_service_spec.rb b/spec/services/imports/sales_logs_import_service_spec.rb index 2e7eea168..c06b7bf42 100644 --- a/spec/services/imports/sales_logs_import_service_spec.rb +++ b/spec/services/imports/sales_logs_import_service_spec.rb @@ -269,7 +269,7 @@ RSpec.describe Imports::SalesLogsImportService do sales_log_xml.at_xpath("//xmlns:Q20Bedrooms").content = "2" sales_log_xml.at_xpath("//xmlns:P2Eth").content = "2 White: Irish" sales_log_xml.at_xpath("//xmlns:P2Nat").content = "18 United Kingdom" - sales_log_xml.at_xpath("//xmlns:buy2livein").content = "1" + sales_log_xml.at_xpath("//xmlns:BUY2LIVEIN").content = "1" end it "successfully creates a completed shared sale log" do diff --git a/spec/services/imports/scheme_location_import_service_spec.rb b/spec/services/imports/scheme_location_import_service_spec.rb index 186fba818..5c45a92aa 100644 --- a/spec/services/imports/scheme_location_import_service_spec.rb +++ b/spec/services/imports/scheme_location_import_service_spec.rb @@ -208,5 +208,23 @@ RSpec.describe Imports::SchemeLocationImportService do expect(location.scheme.confirmed).to be_falsey end end + + context "and support_type is not a valid one" do + before { location_xml.at_xpath("//scheme:support-type").content = "1" } + + it "sets the support type to missing" do + location = location_service.create_scheme_location(location_xml) + expect(location.scheme.support_type).to eq("Missing") + end + end + + context "and support_type is not answered" do + before { location_xml.at_xpath("//scheme:support-type").content = "" } + + it "sets the support type to nil" do + location = location_service.create_scheme_location(location_xml) + expect(location.scheme.support_type).to eq(nil) + end + end end end