Add unmarshaller tests

change_data_scheme
Terekhin Alexander 5 years ago
parent 9fae8eb95c
commit 0e47028087
  1. 10
      src/test/java/me/bearns/fias/SchemeTest.java
  2. 56
      src/test/java/me/bearns/fias/helper/XMLSourceHelper.java
  3. 48
      src/test/java/me/bearns/fias/service/StreamSaverTest.java

@ -24,6 +24,7 @@ public class SchemeTest {
private final UUID aoID = UUID.randomUUID();
private final UUID firstHouseID = UUID.randomUUID();
private final UUID nextHouseID = UUID.randomUUID();
private final String REGION_CODE = "22";
@Autowired
private TestEntityManager entityManager;
@ -40,6 +41,7 @@ public class SchemeTest {
final Addrobj addrobj = new Addrobj();
addrobj.aoid = aoID;
addrobj.aoguid = aoID;
addrobj.regioncode = REGION_CODE;
final House firstHouse = new House();
firstHouse.houseid = firstHouseID;
@ -73,6 +75,14 @@ public class SchemeTest {
assertThat(firstAoguid.aoguid).isEqualByComparingTo(nextAoguid.aoguid);
final Optional<Addrobj> addrobjRet = addrobjRepository.findByAoguid(aoID);
assertThat(addrobjRet.isPresent()).isTrue();
final Addrobj retval = addrobjRet.orElse(null);
assertThat(retval).isNotNull();
assertThat(retval.regioncode).isEqualTo(REGION_CODE);
}
}

@ -0,0 +1,56 @@
package me.bearns.fias.helper;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
public class XMLSourceHelper {
/* <? xml version = "1.0" encoding="utf-8"?>
<AddressObjects>
<Object AOID="7635a901-83d9-4ce5-8472-ff8f31476566"AOGUID="7635a901-83d9-4ce5-8472-ff8f31476566"PARENTGUID="f696b011-8ba9-4059-8e35-aa202e97eb2d"FORMALNAME="Объездная"SHORTNAME="ул"AOLEVEL="7"REGIONCODE="89"AREACODE="006"AUTOCODE="0"CITYCODE="000"CTARCODE="000"PLACECODE="001"PLANCODE="0000"STREETCODE="0045"EXTRCODE="0000"SEXTCODE="000"PLAINCODE="890060000010045"CODE="89006000001004500"CURRSTATUS="0"ACTSTATUS="1"LIVESTATUS="1"CENTSTATUS="0"OPERSTATUS="10"IFNSFL="8901"IFNSUL="8901"OKATO="71166912001"OKTMO="71926412101"STARTDATE="2020-08-25"ENDDATE="2079-06-06"UPDATEDATE="2020-08-27"DIVTYPE="0"/>
<Object AOID="789843b8-8101-4f72-baa2-aeef3712304a"AOGUID="4f1abc44-1bfb-4c8d-b41b-5544dde1fa38"PARENTGUID="4136d0c1-3ff7-44c0-aa30-fa2e7eb96ef7"NEXTID="dc4fa806-30cb-4b71-a223-3504b8488e77"FORMALNAME="Северное Кольцо"SHORTNAME="ул"AOLEVEL="7"REGIONCODE="89"AREACODE="000"AUTOCODE="0"CITYCODE="006"CTARCODE="000"PLACECODE="000"PLANCODE="0000"STREETCODE="0104"EXTRCODE="0000"SEXTCODE="000"PLAINCODE="890000060000104"CODE="89000006000010401"CURRSTATUS="1"ACTSTATUS="0"LIVESTATUS="0"CENTSTATUS="0"OPERSTATUS="1"IFNSFL="8904"IFNSUL="8904"OKATO="71176000000"OKTMO="71956000"POSTALCODE="629306"STARTDATE="1900-01-01"ENDDATE="2079-06-06"UPDATEDATE="2020-08-27"DIVTYPE="0"/>
<Object AOID="dc4fa806-30cb-4b71-a223-3504b8488e77"AOGUID="4f1abc44-1bfb-4c8d-b41b-5544dde1fa38"PARENTGUID="4136d0c1-3ff7-44c0-aa30-fa2e7eb96ef7"PREVID="789843b8-8101-4f72-baa2-aeef3712304a"NEXTID="02dd311b-dfff-4e9d-8c65-07b90e4d9001"FORMALNAME="Северное Кольцо"SHORTNAME="ул"AOLEVEL="7"REGIONCODE="89"AREACODE="000"AUTOCODE="0"CITYCODE="006"CTARCODE="000"PLACECODE="000"PLANCODE="0000"STREETCODE="0104"EXTRCODE="0000"SEXTCODE="000"PLAINCODE="890000060000104"CODE="89000006000010400"CURRSTATUS="0"ACTSTATUS="0"LIVESTATUS="0"CENTSTATUS="0"OPERSTATUS="21"IFNSFL="8904"IFNSUL="8904"OKATO="71176000000"OKTMO="71956000"STARTDATE="2015-08-31"ENDDATE="2020-08-25"UPDATEDATE="2020-08-27"DIVTYPE="0"/>
<Object AOID="02dd311b-dfff-4e9d-8c65-07b90e4d9001"AOGUID="4f1abc44-1bfb-4c8d-b41b-5544dde1fa38"PARENTGUID="4136d0c1-3ff7-44c0-aa30-fa2e7eb96ef7"PREVID="dc4fa806-30cb-4b71-a223-3504b8488e77"FORMALNAME="Северное Кольцо"SHORTNAME="ул"AOLEVEL="7"REGIONCODE="89"AREACODE="000"AUTOCODE="0"CITYCODE="006"CTARCODE="000"PLACECODE="000"PLANCODE="0000"STREETCODE="0104"EXTRCODE="0000"SEXTCODE="000"PLAINCODE="890000060000104"CODE="89000006000010400"CURRSTATUS="0"ACTSTATUS="1"LIVESTATUS="1"CENTSTATUS="0"OPERSTATUS="20"IFNSFL="8904"IFNSUL="8904"OKATO="71176000000"OKTMO="71956000001"STARTDATE="2020-08-25"ENDDATE="2079-06-06"UPDATEDATE="2020-08-27"DIVTYPE="0"/>
<Object AOID="fe893ae4-db60-4276-9c75-2aa0538a909a"AOGUID="fe893ae4-db60-4276-9c75-2aa0538a909a"PARENTGUID="5cb37760-9ac7-4d35-b3bb-b54e559c0017"FORMALNAME="Капитана Раскина"SHORTNAME="пр-д"AOLEVEL="7"REGIONCODE="91"AREACODE="000"AUTOCODE="0"CITYCODE="001"CTARCODE="000"PLACECODE="000"PLANCODE="0963"STREETCODE="0965"EXTRCODE="0000"SEXTCODE="000"PLAINCODE="910000010000965"CODE="91000001000096500"CURRSTATUS="0"ACTSTATUS="1"LIVESTATUS="1"CENTSTATUS="0"OPERSTATUS="10"IFNSFL="9111"IFNSUL="9111"OKATO="35412000000"OKTMO="35715000001"STARTDATE="2020-08-25"ENDDATE="2079-06-06"UPDATEDATE="2020-08-27"DIVTYPE="0"/>
</AddressObjects>*/
/*<?xml version="1.0" encoding="utf-8"?>
<Houses>
<House HOUSEID="67774cf4-f7e5-425c-9ab1-474e835dda74" HOUSEGUID="67774cf4-f7e5-425c-9ab1-474e835dda74" AOGUID="f31986b1-d29e-4aa5-aea0-a1e9f261c735" HOUSENUM="108" STRSTATUS="0" ESTSTATUS="2" STATSTATUS="0" IFNSFL="4177" IFNSUL="4177" TERRIFNSFL="4105" TERRIFNSUL="4105" OKATO="30207000021" OKTMO="30607421101" POSTALCODE="684017" STARTDATE="2020-08-28" ENDDATE="2079-06-06" UPDATEDATE="2020-08-29" COUNTER="1" CADNUM="41:05:0101081:2153" DIVTYPE="0" REGIONCODE="41" />
<House HOUSEID="23b7f431-72f1-47ee-bb1c-6b59a6567490" HOUSEGUID="23b7f431-72f1-47ee-bb1c-6b59a6567490" AOGUID="7e2cb4f7-1f8f-48bf-84a4-07899022f5a7" HOUSENUM="42" STRSTATUS="0" ESTSTATUS="2" STATSTATUS="0" IFNSFL="4177" IFNSUL="4177" TERRIFNSFL="4105" TERRIFNSUL="4105" OKATO="30207554000" OKTMO="30607154051" POSTALCODE="684036" STARTDATE="2020-08-28" ENDDATE="2079-06-06" UPDATEDATE="2020-08-29" COUNTER="32" DIVTYPE="0" REGIONCODE="41" />
<House HOUSEID="ba1974ff-b056-47eb-b0d6-60eab6a5b122" HOUSEGUID="ba1974ff-b056-47eb-b0d6-60eab6a5b122" AOGUID="f8b60155-e3ba-4d29-8994-5e4be88e8523" HOUSENUM="8а" STRSTATUS="0" ESTSTATUS="2" STATSTATUS="0" IFNSFL="4177" IFNSUL="4177" TERRIFNSFL="4105" TERRIFNSUL="4105" OKATO="30402000000" OKTMO="30607101001" POSTALCODE="684007" STARTDATE="2020-08-27" ENDDATE="2079-06-06" UPDATEDATE="2020-08-29" COUNTER="42" DIVTYPE="0" REGIONCODE="41" />
<House HOUSEID="3b565d5b-8ca7-460e-9271-0e56723917d7" HOUSEGUID="3b565d5b-8ca7-460e-9271-0e56723917d7" AOGUID="273b6a28-c1c4-4b40-96fa-7a783b0f71ca" HOUSENUM="42" STRSTATUS="0" ESTSTATUS="5" STATSTATUS="0" IFNSFL="4177" IFNSUL="4177" TERRIFNSFL="4105" TERRIFNSUL="4105" OKATO="30207554000" OKTMO="30607154051" POSTALCODE="684036" STARTDATE="2020-08-28" ENDDATE="2079-06-06" UPDATEDATE="2020-08-29" COUNTER="20" DIVTYPE="0" REGIONCODE="41" />
<House HOUSEID="9a2abe0e-5d39-496d-b442-8ca9588bc775" HOUSEGUID="9a2abe0e-5d39-496d-b442-8ca9588bc775" AOGUID="72f96554-fc02-48ed-a7ad-b1f807f4d99a" HOUSENUM="9" STRSTATUS="0" ESTSTATUS="2" STATSTATUS="0" IFNSFL="4177" IFNSUL="4177" TERRIFNSFL="4105" TERRIFNSUL="4105" OKATO="30402000000" OKTMO="30607101001" POSTALCODE="684000" STARTDATE="2020-08-27" ENDDATE="2079-06-06" UPDATEDATE="2020-08-29" COUNTER="4" DIVTYPE="0" REGIONCODE="41" />
</Houses>
*/
public static InputStream getAOStream() {
final StringBuilder sba = new StringBuilder();
sba.append("<? xml version = \"1.0\" encoding=\"utf-8\"?>")
.append("<AddressObjects>")
.append("<Object AOID=\"7635a901-83d9-4ce5-8472-ff8f31476566\"AOGUID=\"7635a901-83d9-4ce5-8472-ff8f31476566\"PARENTGUID=\"f696b011-8ba9-4059-8e35-aa202e97eb2d\"FORMALNAME=\"Объездная\"SHORTNAME=\"ул\"AOLEVEL=\"7\"REGIONCODE=\"89\"AREACODE=\"006\"AUTOCODE=\"0\"CITYCODE=\"000\"CTARCODE=\"000\"PLACECODE=\"001\"PLANCODE=\"0000\"STREETCODE=\"0045\"EXTRCODE=\"0000\"SEXTCODE=\"000\"PLAINCODE=\"890060000010045\"CODE=\"89006000001004500\"CURRSTATUS=\"0\"ACTSTATUS=\"1\"LIVESTATUS=\"1\"CENTSTATUS=\"0\"OPERSTATUS=\"10\"IFNSFL=\"8901\"IFNSUL=\"8901\"OKATO=\"71166912001\"OKTMO=\"71926412101\"STARTDATE=\"2020-08-25\"ENDDATE=\"2079-06-06\"UPDATEDATE=\"2020-08-27\"DIVTYPE=\"0\"/>")
.append("<Object AOID=\"789843b8-8101-4f72-baa2-aeef3712304a\"AOGUID=\"4f1abc44-1bfb-4c8d-b41b-5544dde1fa38\"PARENTGUID=\"4136d0c1-3ff7-44c0-aa30-fa2e7eb96ef7\"NEXTID=\"dc4fa806-30cb-4b71-a223-3504b8488e77\"FORMALNAME=\"Северное Кольцо\"SHORTNAME=\"ул\"AOLEVEL=\"7\"REGIONCODE=\"89\"AREACODE=\"000\"AUTOCODE=\"0\"CITYCODE=\"006\"CTARCODE=\"000\"PLACECODE=\"000\"PLANCODE=\"0000\"STREETCODE=\"0104\"EXTRCODE=\"0000\"SEXTCODE=\"000\"PLAINCODE=\"890000060000104\"CODE=\"89000006000010401\"CURRSTATUS=\"1\"ACTSTATUS=\"0\"LIVESTATUS=\"0\"CENTSTATUS=\"0\"OPERSTATUS=\"1\"IFNSFL=\"8904\"IFNSUL=\"8904\"OKATO=\"71176000000\"OKTMO=\"71956000\"POSTALCODE=\"629306\"STARTDATE=\"1900-01-01\"ENDDATE=\"2079-06-06\"UPDATEDATE=\"2020-08-27\"DIVTYPE=\"0\"/>")
.append("<Object AOID=\"dc4fa806-30cb-4b71-a223-3504b8488e77\"AOGUID=\"4f1abc44-1bfb-4c8d-b41b-5544dde1fa38\"PARENTGUID=\"4136d0c1-3ff7-44c0-aa30-fa2e7eb96ef7\"PREVID=\"789843b8-8101-4f72-baa2-aeef3712304a\"NEXTID=\"02dd311b-dfff-4e9d-8c65-07b90e4d9001\"FORMALNAME=\"Северное Кольцо\"SHORTNAME=\"ул\"AOLEVEL=\"7\"REGIONCODE=\"89\"AREACODE=\"000\"AUTOCODE=\"0\"CITYCODE=\"006\"CTARCODE=\"000\"PLACECODE=\"000\"PLANCODE=\"0000\"STREETCODE=\"0104\"EXTRCODE=\"0000\"SEXTCODE=\"000\"PLAINCODE=\"890000060000104\"CODE=\"89000006000010400\"CURRSTATUS=\"0\"ACTSTATUS=\"0\"LIVESTATUS=\"0\"CENTSTATUS=\"0\"OPERSTATUS=\"21\"IFNSFL=\"8904\"IFNSUL=\"8904\"OKATO=\"71176000000\"OKTMO=\"71956000\"STARTDATE=\"2015-08-31\"ENDDATE=\"2020-08-25\"UPDATEDATE=\"2020-08-27\"DIVTYPE=\"0\"/>")
.append("<Object AOID=\"02dd311b-dfff-4e9d-8c65-07b90e4d9001\"AOGUID=\"4f1abc44-1bfb-4c8d-b41b-5544dde1fa38\"PARENTGUID=\"4136d0c1-3ff7-44c0-aa30-fa2e7eb96ef7\"PREVID=\"dc4fa806-30cb-4b71-a223-3504b8488e77\"FORMALNAME=\"Северное Кольцо\"SHORTNAME=\"ул\"AOLEVEL=\"7\"REGIONCODE=\"89\"AREACODE=\"000\"AUTOCODE=\"0\"CITYCODE=\"006\"CTARCODE=\"000\"PLACECODE=\"000\"PLANCODE=\"0000\"STREETCODE=\"0104\"EXTRCODE=\"0000\"SEXTCODE=\"000\"PLAINCODE=\"890000060000104\"CODE=\"89000006000010400\"CURRSTATUS=\"0\"ACTSTATUS=\"1\"LIVESTATUS=\"1\"CENTSTATUS=\"0\"OPERSTATUS=\"20\"IFNSFL=\"8904\"IFNSUL=\"8904\"OKATO=\"71176000000\"OKTMO=\"71956000001\"STARTDATE=\"2020-08-25\"ENDDATE=\"2079-06-06\"UPDATEDATE=\"2020-08-27\"DIVTYPE=\"0\"/>")
.append("<Object AOID=\"fe893ae4-db60-4276-9c75-2aa0538a909a\"AOGUID=\"fe893ae4-db60-4276-9c75-2aa0538a909a\"PARENTGUID=\"5cb37760-9ac7-4d35-b3bb-b54e559c0017\"FORMALNAME=\"Капитана Раскина\"SHORTNAME=\"пр-д\"AOLEVEL=\"7\"REGIONCODE=\"91\"AREACODE=\"000\"AUTOCODE=\"0\"CITYCODE=\"001\"CTARCODE=\"000\"PLACECODE=\"000\"PLANCODE=\"0963\"STREETCODE=\"0965\"EXTRCODE=\"0000\"SEXTCODE=\"000\"PLAINCODE=\"910000010000965\"CODE=\"91000001000096500\"CURRSTATUS=\"0\"ACTSTATUS=\"1\"LIVESTATUS=\"1\"CENTSTATUS=\"0\"OPERSTATUS=\"10\"IFNSFL=\"9111\"IFNSUL=\"9111\"OKATO=\"35412000000\"OKTMO=\"35715000001\"STARTDATE=\"2020-08-25\"ENDDATE=\"2079-06-06\"UPDATEDATE=\"2020-08-27\"DIVTYPE=\"0\"/>")
.append("</AddressObjects>");
return new ByteArrayInputStream(sba.toString().getBytes());
}
public static InputStream getHouseStream() {
final StringBuilder sbh = new StringBuilder();
sbh.append("?xml version=\"1.0\" encoding=\"utf-8\"?>")
.append("<Houses>")
.append("<House HOUSEID=\"67774cf4-f7e5-425c-9ab1-474e835dda74\" HOUSEGUID=\"67774cf4-f7e5-425c-9ab1-474e835dda74\" AOGUID=\"f31986b1-d29e-4aa5-aea0-a1e9f261c735\" HOUSENUM=\"108\" STRSTATUS=\"0\" ESTSTATUS=\"2\" STATSTATUS=\"0\" IFNSFL=\"4177\" IFNSUL=\"4177\" TERRIFNSFL=\"4105\" TERRIFNSUL=\"4105\" OKATO=\"30207000021\" OKTMO=\"30607421101\" POSTALCODE=\"684017\" STARTDATE=\"2020-08-28\" ENDDATE=\"2079-06-06\" UPDATEDATE=\"2020-08-29\" COUNTER=\"1\" CADNUM=\"41:05:0101081:2153\" DIVTYPE=\"0\" REGIONCODE=\"41\" />")
.append("<House HOUSEID=\"23b7f431-72f1-47ee-bb1c-6b59a6567490\" HOUSEGUID=\"23b7f431-72f1-47ee-bb1c-6b59a6567490\" AOGUID=\"7e2cb4f7-1f8f-48bf-84a4-07899022f5a7\" HOUSENUM=\"42\" STRSTATUS=\"0\" ESTSTATUS=\"2\" STATSTATUS=\"0\" IFNSFL=\"4177\" IFNSUL=\"4177\" TERRIFNSFL=\"4105\" TERRIFNSUL=\"4105\" OKATO=\"30207554000\" OKTMO=\"30607154051\" POSTALCODE=\"684036\" STARTDATE=\"2020-08-28\" ENDDATE=\"2079-06-06\" UPDATEDATE=\"2020-08-29\" COUNTER=\"32\" DIVTYPE=\"0\" REGIONCODE=\"41\" />")
.append("<House HOUSEID=\"ba1974ff-b056-47eb-b0d6-60eab6a5b122\" HOUSEGUID=\"ba1974ff-b056-47eb-b0d6-60eab6a5b122\" AOGUID=\"f8b60155-e3ba-4d29-8994-5e4be88e8523\" HOUSENUM=\"8а\" STRSTATUS=\"0\" ESTSTATUS=\"2\" STATSTATUS=\"0\" IFNSFL=\"4177\" IFNSUL=\"4177\" TERRIFNSFL=\"4105\" TERRIFNSUL=\"4105\" OKATO=\"30402000000\" OKTMO=\"30607101001\" POSTALCODE=\"684007\" STARTDATE=\"2020-08-27\" ENDDATE=\"2079-06-06\" UPDATEDATE=\"2020-08-29\" COUNTER=\"42\" DIVTYPE=\"0\" REGIONCODE=\"41\" />")
.append("<House HOUSEID=\"3b565d5b-8ca7-460e-9271-0e56723917d7\" HOUSEGUID=\"3b565d5b-8ca7-460e-9271-0e56723917d7\" AOGUID=\"273b6a28-c1c4-4b40-96fa-7a783b0f71ca\" HOUSENUM=\"42\" STRSTATUS=\"0\" ESTSTATUS=\"5\" STATSTATUS=\"0\" IFNSFL=\"4177\" IFNSUL=\"4177\" TERRIFNSFL=\"4105\" TERRIFNSUL=\"4105\" OKATO=\"30207554000\" OKTMO=\"30607154051\" POSTALCODE=\"684036\" STARTDATE=\"2020-08-28\" ENDDATE=\"2079-06-06\" UPDATEDATE=\"2020-08-29\" COUNTER=\"20\" DIVTYPE=\"0\" REGIONCODE=\"41\" />")
.append("<House HOUSEID=\"9a2abe0e-5d39-496d-b442-8ca9588bc775\" HOUSEGUID=\"9a2abe0e-5d39-496d-b442-8ca9588bc775\" AOGUID=\"72f96554-fc02-48ed-a7ad-b1f807f4d99a\" HOUSENUM=\"9\" STRSTATUS=\"0\" ESTSTATUS=\"2\" STATSTATUS=\"0\" IFNSFL=\"4177\" IFNSUL=\"4177\" TERRIFNSFL=\"4105\" TERRIFNSUL=\"4105\" OKATO=\"30402000000\" OKTMO=\"30607101001\" POSTALCODE=\"684000\" STARTDATE=\"2020-08-27\" ENDDATE=\"2079-06-06\" UPDATEDATE=\"2020-08-29\" COUNTER=\"4\" DIVTYPE=\"0\" REGIONCODE=\"41\" />")
.append("</Houses>");
return new ByteArrayInputStream(sbh.toString().getBytes());
}
}

@ -0,0 +1,48 @@
package me.bearns.fias.service;
import me.bearns.fias.exceptions.CommonException;
import me.bearns.fias.helper.XMLSourceHelper;
import me.bearns.fias.helpers.Catalog;
import me.bearns.fias.helpers.UnmarshallerParameters;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.test.context.ActiveProfiles;
import java.io.InputStream;
@ActiveProfiles("test")
@DataJpaTest
public class StreamSaverTest {
private static final String AO_FILENAME = "AS_ADDROBJ_20200903_b02fb98f-354f-4ed4-af2f-467c5789989f.XML";
private static final String HOUSE_FILENAME = "AS_HOUSE_20200903_f7ab498f-1f85-4d80-8254-349399de9460.XML";
@Autowired
private StreamSaver service;
@Autowired
private static Catalog catalog;
@Test
public void addrobjTest() throws CommonException {
final UnmarshallerParameters config = catalog.getByPrefix(AO_FILENAME);
final InputStream stream = XMLSourceHelper.getAOStream();
service.process(stream, config, null);
}
@Test
public void houseTest() throws CommonException {
final UnmarshallerParameters config = catalog.getByPrefix(AO_FILENAME);
final InputStream stream = XMLSourceHelper.getAOStream();
service.process(stream, config, null);
}
}
Loading…
Cancel
Save