|
|
|
require "rails_helper"
|
|
|
|
|
|
|
|
describe UprnDataPresenter do
|
|
|
|
let(:presenter) { described_class.new(data) }
|
|
|
|
|
|
|
|
describe "DPA data" do
|
|
|
|
let(:data) do
|
|
|
|
JSON.parse(
|
|
|
|
'{
|
|
|
|
"UPRN": "UPRN",
|
|
|
|
"UDPRN": "UDPRN",
|
|
|
|
"ADDRESS": "full address",
|
|
|
|
"SUB_BUILDING_NAME": "0",
|
|
|
|
"BUILDING_NAME": "building name",
|
|
|
|
"THOROUGHFARE_NAME": "thoroughfare",
|
|
|
|
"POST_TOWN": "posttown",
|
|
|
|
"POSTCODE": "postcode",
|
|
|
|
"STATUS": "APPROVED",
|
|
|
|
"DOUBLE_DEPENDENT_LOCALITY": "double dependent locality",
|
|
|
|
"DEPENDENT_LOCALITY": "dependent locality",
|
|
|
|
"CLASSIFICATION_CODE": "classification code",
|
|
|
|
"LOCAL_CUSTODIAN_CODE_DESCRIPTION": "LONDON BOROUGH OF HARINGEY",
|
|
|
|
"BLPU_STATE_CODE": "2",
|
|
|
|
"BLPU_STATE_CODE_DESCRIPTION": "In use",
|
|
|
|
"LAST_UPDATE_DATE": "31/07/2020",
|
|
|
|
"ENTRY_DATE": "30/01/2015",
|
|
|
|
"BLPU_STATE_DATE": "30/01/2015",
|
|
|
|
"LANGUAGE": "EN",
|
|
|
|
"MATCH_DESCRIPTION": "EXACT"
|
|
|
|
}',
|
|
|
|
)
|
|
|
|
end
|
|
|
|
|
|
|
|
describe "#postcode" do
|
|
|
|
it "returns postcode" do
|
|
|
|
expect(presenter.postcode).to eq("postcode")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe "#address_line1" do
|
|
|
|
it "returns address_line1" do
|
|
|
|
expect(presenter.address_line1).to eq("0, Building Name, Thoroughfare")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe "#address_line2" do
|
|
|
|
it "returns address_line2" do
|
|
|
|
expect(presenter.address_line2).to eq("Double Dependent Locality, Dependent Locality")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe "#town_or_city" do
|
|
|
|
it "returns town_or_city" do
|
|
|
|
expect(presenter.town_or_city).to eq("Posttown")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
context "when address_line2 fields are missing" do
|
|
|
|
let(:data) { {} }
|
|
|
|
|
|
|
|
describe "#address_line2" do
|
|
|
|
it "returns nil" do
|
|
|
|
expect(presenter.address_line2).to be_nil
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe "LPI data" do
|
|
|
|
let(:data) do
|
|
|
|
JSON.parse(
|
|
|
|
'{
|
|
|
|
"UPRN": "UPRN",
|
|
|
|
"ADDRESS": "flat 1, 22, street name, posttown, postcode",
|
|
|
|
"SAO_TEXT": "flat 1",
|
|
|
|
"PAO_START_NUMBER": "22",
|
|
|
|
"STREET_DESCRIPTION": "street name",
|
|
|
|
"TOWN_NAME": "posttown",
|
|
|
|
"POSTCODE_LOCATOR": "postcode",
|
|
|
|
"LPI_KEY": "LPI_KEY"
|
|
|
|
}',
|
|
|
|
)
|
|
|
|
end
|
|
|
|
|
|
|
|
describe "#postcode" do
|
|
|
|
it "returns postcode" do
|
|
|
|
expect(presenter.postcode).to eq("postcode")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe "#address_line1" do
|
|
|
|
it "returns address_line1" do
|
|
|
|
expect(presenter.address_line1).to eq("Flat 1, 22, Street Name")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe "#address_line2" do
|
|
|
|
it "returns address_line2" do
|
|
|
|
expect(presenter.address_line2).to be_nil
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe "#town_or_city" do
|
|
|
|
it "returns town_or_city" do
|
|
|
|
expect(presenter.town_or_city).to eq("Posttown")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|