/* * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * Copyright (c) 2013, MPL CodeInside http://codeinside.ru */ package ru.codeinside.gws3564c.enclosure.grp; import org.hamcrest.Matchers; import org.junit.Before; import org.junit.Test; import ru.codeinside.gws.api.ExchangeContext; import ru.codeinside.gws3564c.DummyContext; import ru.grp.RequestGRP; import ru.grp.TArea; import ru.grp.TRequiredObject; import java.math.BigDecimal; import java.util.List; import static org.hamcrest.Matchers.closeTo; import static org.hamcrest.core.IsEqual.equalTo; import static org.hamcrest.core.IsNull.notNullValue; import static org.hamcrest.core.IsNull.nullValue; import static org.junit.Assert.assertThat; /** * Тестируем построение вложения для запроса содержимого правоустанавливающего документа */ public class DocumentContentEnclosureBuilderTest { private ExchangeContext context; private DocumentContentEnclosureBuilder enclosureBuilder; @Before public void setUp() throws Exception { context = new DummyContext(); enclosureBuilder = new DocumentContentEnclosureBuilder(context); } @Test public void testFillRequiredData() throws Exception { fillContext(); RequestGRP request = enclosureBuilder.createRequest("id"); final RequestGRP.Request.RequiredData.RequiredDataDocument requiredDataDocument = request.getRequest() .getRequiredData() .getRequiredDataDocument(); assertThat(requiredDataDocument, notNullValue()); assertThat(requiredDataDocument.getContentDocument(), notNullValue()); } @Test public void testFillRequiredDataWhenObjectIsParcel() throws Exception { fillContext(); // fill parcel data context.setVariable("parcels", 2l); context.setVariable("parcelCadastralNumber_1", "cadastralNumber"); context.setVariable("parcelAreaValue_1", "23.09"); context.setVariable("parcelAreaUnit_1", "unit"); context.setVariable("parcelLocationOKATO_1", "okato_1"); context.setVariable("parcelLocationOKATO_2", "okato_2"); context.setVariable("parcelCadastralNumber_2", "222cadastralNumber"); context.setVariable("parcelAreaValue_2", "25.09"); context.setVariable("parcelAreaUnit_2", "unit222"); RequestGRP request = enclosureBuilder.createRequest("id"); final List<TRequiredObject> objects = request.getRequest() .getRequiredData() .getRequiredDataDocument() .getContentDocument() .getObjects() .getObject(); assertThat(objects.size(), equalTo(2)); // verify first object TRequiredObject.Parcel parcel = objects.get(0).getParcel(); final TRequiredObject.Parcel.Description.Address address = parcel.getDescription().getAddress(); assertThat(address.getLocation().getCodeOKATO(), equalTo("okato_1")); assertThat(address.getCadastralNumber(), Matchers.equalTo("cadastralNumber")); TArea areas = parcel.getDescription().getAddress().getAreas(); assertThat(areas.getValue(), closeTo(BigDecimal.valueOf(23.09), BigDecimal.valueOf(.001))); assertThat(areas.getUnit(), equalTo("unit")); // verify second object parcel = objects.get(1).getParcel(); String cadastralNumber = parcel.getDescription().getAddress().getCadastralNumber(); assertThat(cadastralNumber, equalTo("222cadastralNumber")); areas = parcel.getDescription().getAddress().getAreas(); assertThat(areas.getValue(), closeTo(BigDecimal.valueOf(25.09), BigDecimal.valueOf(0.001))); assertThat(areas.getUnit(), equalTo("unit222")); } @Test public void testFillRequiredDataNonDomesticRoomObjectData() throws Exception { fillContext(); // fill parcel data context.setVariable("objects", 1l); context.setVariable("objectCadastralNumber_1", "cadastralNumber"); context.setVariable("objectAreaValue_1", "23.09"); context.setVariable("objectAreaUnit_1", "unit"); context.setVariable("objectLocationOKATO_1", "okato_1"); context.setVariable("objectKind_1", "ROOM"); context.setVariable("objectRoomKind_1", "NONDOMESTIC"); RequestGRP request = enclosureBuilder.createRequest("id"); final List<TRequiredObject> objects = request.getRequest() .getRequiredData() .getRequiredDataDocument() .getContentDocument() .getObjects() .getObject(); assertThat(objects.size(), equalTo(1)); final TRequiredObject.Object object = objects.get(0).getObject(); assertThat(object.getLocation().getCodeOKATO(), equalTo("okato_1")); assertThat(object.getArea().getUnit(), equalTo("unit")); assertThat(object.getArea().getValue(), closeTo(BigDecimal.valueOf(23.09), BigDecimal.valueOf(0.001))); assertThat(object.getObjKind().getRoom().isIsNondomestic(), equalTo(true)); assertThat(object.getObjKind().getRoom().isIsFlat(), nullValue()); assertThat(object.getObjKind().getRoom().isIsRoom(), nullValue()); } @Test public void testFillRequiredDataFlatRoomObjectData() throws Exception { fillContext(); // fill parcel data context.setVariable("objects", 1l); context.setVariable("objectCadastralNumber_1", "cadastralNumber"); context.setVariable("objectAreaValue_1", "23.09"); context.setVariable("objectAreaUnit_1", "unit"); context.setVariable("objectLocationOKATO_1", "okato_1"); context.setVariable("objectKind_1", "ROOM"); context.setVariable("objectRoomKind_1", "FLAT"); RequestGRP request = enclosureBuilder.createRequest("id"); final List<TRequiredObject> objects = request.getRequest() .getRequiredData() .getRequiredDataDocument() .getContentDocument() .getObjects() .getObject(); assertThat(objects.size(), equalTo(1)); final TRequiredObject.Object object = objects.get(0).getObject(); assertThat(object.getObjKind().getRoom().isIsNondomestic(), nullValue()); assertThat(object.getObjKind().getRoom().isIsFlat(), equalTo(true)); assertThat(object.getObjKind().getRoom().isIsRoom(), nullValue()); } @Test public void testFillRequiredDataRoomRoomObjectData() throws Exception { fillContext(); // fill parcel data context.setVariable("objects", 1l); context.setVariable("objectCadastralNumber_1", "cadastralNumber"); context.setVariable("objectAreaValue_1", "23.09"); context.setVariable("objectAreaUnit_1", "unit"); context.setVariable("objectLocationOKATO_1", "okato_1"); context.setVariable("objectKind_1", "ROOM"); context.setVariable("objectRoomKind_1", "ROOM"); RequestGRP request = enclosureBuilder.createRequest("id"); final List<TRequiredObject> objects = request.getRequest() .getRequiredData() .getRequiredDataDocument() .getContentDocument() .getObjects() .getObject(); assertThat(objects.size(), equalTo(1)); final TRequiredObject.Object object = objects.get(0).getObject(); assertThat(object.getObjKind().getRoom().isIsNondomestic(), nullValue()); assertThat(object.getObjKind().getRoom().isIsFlat(), nullValue()); assertThat(object.getObjKind().getRoom().isIsRoom(), equalTo(true)); } @Test public void testFillRequiredDataBuildingNonDomesticObject() throws Exception { fillContext(); // fill parcel data context.setVariable("objects", 1l); context.setVariable("objectCadastralNumber_1", "cadastralNumber"); context.setVariable("objectAreaValue_1", "23.09"); context.setVariable("objectAreaUnit_1", "unit"); context.setVariable("objectLocationOKATO_1", "okato_1"); context.setVariable("objectKind_1", "BUILDING"); context.setVariable("buildingKind_1", "NONDOMESTIC"); RequestGRP request = enclosureBuilder.createRequest("id"); final List<TRequiredObject> objects = request.getRequest() .getRequiredData() .getRequiredDataDocument() .getContentDocument() .getObjects() .getObject(); assertThat(objects.size(), equalTo(1)); final TRequiredObject.Object object = objects.get(0).getObject(); assertThat(object.getObjKind().getBuilding().isIsNondomestic(), equalTo(true)); assertThat(object.getObjKind().getBuilding().isIsApartments(), nullValue()); assertThat(object.getObjKind().getBuilding().isIsLiving(), nullValue()); } @Test public void testFillRequiredDataBuildingLivingObject() throws Exception { fillContext(); // fill parcel data context.setVariable("objects", 1l); context.setVariable("objectCadastralNumber_1", "cadastralNumber"); context.setVariable("objectAreaValue_1", "23.09"); context.setVariable("objectAreaUnit_1", "unit"); context.setVariable("objectLocationOKATO_1", "okato_1"); context.setVariable("objectKind_1", "BUILDING"); context.setVariable("buildingKind_1", "LIVING"); RequestGRP request = enclosureBuilder.createRequest("id"); final List<TRequiredObject> objects = request.getRequest() .getRequiredData() .getRequiredDataDocument() .getContentDocument() .getObjects() .getObject(); assertThat(objects.size(), equalTo(1)); final TRequiredObject.Object object = objects.get(0).getObject(); assertThat(object.getObjKind().getBuilding().isIsNondomestic(), nullValue()); assertThat(object.getObjKind().getBuilding().isIsApartments(), nullValue()); assertThat(object.getObjKind().getBuilding().isIsLiving(), equalTo(true)); } @Test public void testFillRequiredDataOtherObject() throws Exception { fillContext(); // fill parcel data context.setVariable("objects", 1l); context.setVariable("objectCadastralNumber_1", "cadastralNumber"); context.setVariable("objectAreaValue_1", "23.09"); context.setVariable("objectAreaUnit_1", "unit"); context.setVariable("objectLocationOKATO_1", "okato_1"); context.setVariable("objectKind_1", "OTHER"); context.setVariable("objectOtherKind_1", "123131313"); RequestGRP request = enclosureBuilder.createRequest("id"); final List<TRequiredObject> objects = request.getRequest() .getRequiredData() .getRequiredDataDocument() .getContentDocument() .getObjects() .getObject(); assertThat(objects.size(), equalTo(1)); final TRequiredObject.Object object = objects.get(0).getObject(); assertThat(object.getObjKind().getObjKind(), equalTo("123131313")); } @Test public void testFillRequiredDataBuildingApartmentsObject() throws Exception { fillContext(); // fill parcel data context.setVariable("objects", 1l); context.setVariable("objectCadastralNumber_1", "cadastralNumber"); context.setVariable("objectAreaValue_1", "23.09"); context.setVariable("objectAreaUnit_1", "unit"); context.setVariable("objectLocationOKATO_1", "okato_1"); context.setVariable("objectKind_1", "BUILDING"); context.setVariable("buildingKind_1", "APARTMENTS"); RequestGRP request = enclosureBuilder.createRequest("id"); final List<TRequiredObject> objects = request.getRequest() .getRequiredData() .getRequiredDataDocument() .getContentDocument() .getObjects() .getObject(); assertThat(objects.size(), equalTo(1)); final TRequiredObject.Object object = objects.get(0).getObject(); assertThat(object.getObjKind().getBuilding().isIsNondomestic(), nullValue()); assertThat(object.getObjKind().getBuilding().isIsApartments(), equalTo(true)); assertThat(object.getObjKind().getBuilding().isIsLiving(), nullValue()); } private void fillContext() { //declarant context.setVariable("declarantType", "GOVERNANCE"); context.setVariable("declKind", "357007000000"); //Required context.setVariable("declGovernanceName", "Пенсионный фонд"); context.setVariable("declGovernanceCode", "007001001001"); context.setVariable("declGovernanceEmail", "test@test.ru"); //AppliedDocument context.setVariable("applied", 1l); context.setVariable("appliedADocumentCode_1", "558102100000"); context.setVariable("appliedADocumentName_1", "Запрос о предоставлении сведений, содержащихся в Едином государственном реестре прав на недвижимое имущество и сделок с ним"); context.setVariable("appliedADocumentNumber_1", "26-0-1-21/4001/2011-166"); context.setVariable("appliedADocumentDate_1", TestUtils.getDateValue("2012-07-24")); context.setVariable("appliedADocumentOriginalQuantity_1", 1L); context.setVariable("appliedADocumentOriginalQuantitySheet_1", 1L); context.setVariable("appliedADocumentCopyQuantity_1", 1L); context.setVariable("appliedADocumentCopyQuantitySheet_1", 1L); //ReasonFreeDocument context.setVariable("freeACodeDocument", "555005000000"); context.setVariable("freeADocumentName", "Запрос о предоставлении сведений, содержащихся в Едином государственном реестре прав на недвижимое имущество и сделок с ним"); context.setVariable("freeADocumentNumber", ""); context.setVariable("freeADocumentDate", TestUtils.getDateValue("2012-07-24")); context.setVariable("freeADocumentOriginalQuantity", "1"); context.setVariable("freeADocumentOriginalQuantitySheet", "1"); context.setVariable("isPaymentFree", false); context.setVariable("freePayment", 1L); context.setVariable("payment", 0L); context.setVariable("territory", 0L); context.setVariable("smevTest", "Первичный запрос"); // object location context.setVariable("objectLocationOKATO_1", "objectLocationOKATO"); //тип string context.setVariable("objectLocationCLADR_1", "objectLocationCLADR"); //тип string context.setVariable("objectLocationPostalCode_1", "objectLocationPostalCode"); //тип string context.setVariable("objectLocationRegion_1", "objectLocationRegion"); //тип string context.setVariable("objectLocationDistrictName_1", "objectLocationDistrictName"); //тип string context.setVariable("objectLocationDistrictType_1", "р-н"); //тип enum context.setVariable("objectLocationCityName_1", "objectLocationCityName"); //тип string context.setVariable("objectLocationDCity_1", "г"); //тип string context.setVariable("objectLocationUrbanDistictName_1", "objectLocationUrbanDistictName"); //тип string context.setVariable("objectLocationUrbanDistictType_1", "р-н"); //тип string context.setVariable("objectLocationSovietVillageName_1", "objectLocationSovietVillageName"); //тип string context.setVariable("objectLocationSovietVillageType_1", "волость"); //тип string context.setVariable("objectLocationLocalityName_1", "objectLocationLocalityName"); //тип string context.setVariable("objectLocationLocalityType_1", "аал"); //тип string context.setVariable("objectLocationStreetName_1", "objectLocationStreetName"); //тип string context.setVariable("objectLocationDStreets_1", "аллея"); //тип enum context.setVariable("objectLocationLocationLevel1Type_1", "д"); //тип enum context.setVariable("objectLocationLocationLevel1Value_1", "objectLocationLocationLevel1Value"); //тип string context.setVariable("objectLocationLocationLevel2Type_1", "корп"); //тип enum context.setVariable("objectLocationLocationLevel2Value_1", "objectLocationLocationLevel2Value"); //тип string context.setVariable("objectLocationLocationLevel3Type_1", "блок"); //тип enum context.setVariable("objectLocationLocationLevel3Value_1", "objectLocationLocationLevel3Value"); //тип string context.setVariable("objectLocationLocationApartmentType_1", "кв"); //тип enum context.setVariable("objectLocationLocationApartmentValue_1", "objectLocationLocationApartmentValue"); //тип string context.setVariable("objectLocationLocationOther_1", "objectLocationLocationOther"); //тип string context.setVariable("objectLocationLocationNote_1", "objectLocationLocationNote"); //тип string } }