/*
* 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.apache.commons.io.IOUtils;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import ru.codeinside.gws.api.ExchangeContext;
import ru.codeinside.gws3564c.DummyContext;
import ru.grp.*;
import java.io.IOException;
import java.io.InputStream;
import java.text.ParseException;
import java.util.List;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertNotNull;
import static ru.grp.RequestGRP.Request.RequiredData.RequiredDataIncapacity.IncapacityOwner;
public class ExtractDataAboutIncapacityOwnerBuilderTest {
private ExchangeContext context;
private ExtractDataAboutIncapacityOwnerBuilder enclosureBuilder;
@Before
public void setUp() throws Exception {
context = new DummyContext();
enclosureBuilder = new ExtractDataAboutIncapacityOwnerBuilder(context);
}
@Test
public void testFillPersonSingleOwner() throws Exception {
fillContext();
context.setVariable("incapacityOwner" , 1L);
RequestGRP request = enclosureBuilder.createRequest( "id");
List<IncapacityOwner> owners = request.getRequest()
.getRequiredData()
.getRequiredDataIncapacity()
.getIncapacityOwner();
assertNotNull(owners);
assertEquals(1, owners.size());
final TPersonOwner personOwner = owners.get(0);
assertEquals("Иванов", personOwner.getFIO().getSurname());
assertEquals("Иван", personOwner.getFIO().getFirst());
assertEquals("Иванович", personOwner.getFIO().getPatronymic());
assertEquals(TestUtils.getDateValue("2012-07-12"), personOwner.getDateBirth().toGregorianCalendar().getTime());
assertEquals("birthLocation", personOwner.getPlaceBirth());
assertEquals("112-233-332 33", personOwner.getSNILS());
assertEquals("contactInfo", personOwner.getContactInfo());
assertEquals("citizenShip", personOwner.getCitizenship());
assertEquals("familyStatus", personOwner.getFamilyStatus());
assertEquals("Phone", personOwner.getPhone());
assertEquals("E-mail", personOwner.getEMail());
assertNotNull(personOwner.getLocationTemporary());
assertNotNull(personOwner.getDocument());
}
@Test
public void testFillSeveralIncapacityOwners() throws Exception {
fillContext();
context.setVariable("incapacityOwner" , 2L);
RequestGRP request = enclosureBuilder.createRequest( "id");
List<IncapacityOwner> owners = request.getRequest()
.getRequiredData()
.getRequiredDataIncapacity()
.getIncapacityOwner();
assertEquals(2, owners.size());
TPersonOwner personOwner = owners.get(0);
assertEquals("Иванов", personOwner.getFIO().getSurname());
personOwner = owners.get(1);
assertEquals("Иванов", personOwner.getFIO().getSurname());
}
private void fillContext() {
//owner _ 1
context.setVariable("ownerPersonFIOSurname_1", "Иванов");
context.setVariable("ownerPersonFIOFirst_1", "Иван");
context.setVariable("ownerPersonFIOPatronymic_1", "Иванович");
context.setVariable("ownerPersonDateBirth_1", TestUtils.getDateValue("2012-07-12"));
context.setVariable("ownerPersonPlaceBirth_1", "birthLocation");
context.setVariable("ownerPersonEmail_1", "E-mail");
context.setVariable("ownerPersonPhone_1", "Phone");
context.setVariable("ownerPersonCitizenShip_1", "citizenShip");
context.setVariable("ownerPersonFamilyStatus_1", "familyStatus");
context.setVariable("ownerPersonSNILS_1", "112-233-332 33");
context.setVariable("ownerPersonContactInfo_1", "contactInfo");
context.setVariable("ownerTemporaryLocationOKATO_1", "ownerTemporaryLocationOKATO"); //тип string
context.setVariable("ownerTemporaryLocationCLADR_1", "ownerTemporaryLocationCLADR"); //тип string
context.setVariable("ownerTemporaryLocationPostalCode_1", "ownerTemporaryLocationPostalCode"); //тип string
context.setVariable("ownerTemporaryLocationRegion_1", "ownerTemporaryLocationRegion"); //тип string
context.setVariable("ownerTemporaryLocationDistrictName_1", "ownerTemporaryLocationDistrictName"); //тип string
context.setVariable("ownerTemporaryLocationDistrictType_1", "р-н"); //тип enum
context.setVariable("ownerTemporaryLocationCityName_1", "ownerTemporaryLocationCityName"); //тип string
context.setVariable("ownerTemporaryLocationDCity_1", "г"); //тип string
context.setVariable("ownerTemporaryLocationUrbanDistictName_1",
"ownerTemporaryLocationUrbanDistictName"); //тип string
context.setVariable("ownerTemporaryLocationUrbanDistictType_1", "р-н"); //тип string
context.setVariable("ownerTemporaryLocationSovietVillageName_1",
"ownerTemporaryLocationSovietVillageName"); //тип string
context.setVariable("ownerTemporaryLocationSovietVillageType_1", "волость"); //тип string
context.setVariable("ownerTemporaryLocationLocalityName_1", "ownerTemporaryLocationLocalityName"); //тип string
context.setVariable("ownerTemporaryLocationLocalityType_1", "аал"); //тип string
context.setVariable("ownerTemporaryLocationStreetName_1", "ownerTemporaryLocationStreetName"); //тип string
context.setVariable("ownerTemporaryLocationDStreets_1", "аллея"); //тип enum
context.setVariable("ownerTemporaryLocationLocationLevel1Type_1", "д"); //тип enum
context.setVariable("ownerTemporaryLocationLocationLevel1Value_1",
"ownerTemporaryLocationLocationLevel1Value"); //тип string
context.setVariable("ownerTemporaryLocationLocationLevel2Type_1", "корп"); //тип enum
context.setVariable("ownerTemporaryLocationLocationLevel2Value_1",
"ownerTemporaryLocationLocationLevel2Value"); //тип string
context.setVariable("ownerTemporaryLocationLocationLevel3Type_1", "блок"); //тип enum
context.setVariable("ownerTemporaryLocationLocationLevel3Value_1",
"ownerTemporaryLocationLocationLevel3Value"); //тип string
context.setVariable("ownerTemporaryLocationLocationApartmentType_1", "кв"); //тип enum
context.setVariable("ownerTemporaryLocationLocationApartmentValue_1",
"ownerTemporaryLocationLocationApartmentValue"); //тип string
context.setVariable("ownerTemporaryLocationLocationOther_1", "ownerTemporaryLocationLocationOther"); //тип string
context.setVariable("ownerTemporaryLocationLocationNote_1", "ownerTemporaryLocationLocationNote"); //тип string
context.setVariable("ownerPDocumentCode_1", "ownerPDocumentCode"); //тип enum
context.setVariable("ownerPDocumentSeries_1", "ownerPDocumentSeries"); //тип string
context.setVariable("ownerPDocumentNumber_1", "ownerPDocumentNumber"); //тип string
context.setVariable("ownerPDocumentDate_1", TestUtils.getDateValue("2001-11-01")); //тип date
context.setVariable("ownerPDocumentIssueOrgan_1", "ownerPDocumentIssueOrgan"); //тип string
context.setVariable("ownerPDocumentDesc_1", "ownerPDocumentDesc"); //тип string
context.setVariable("ownerPersonFIOSurname_2", "Иванов");
context.setVariable("ownerPersonFIOFirst_2", "Иван");
context.setVariable("ownerPersonFIOPatronymic_2", "Иванович");
context.setVariable("ownerPersonDateBirth_2", TestUtils.getDateValue("2012-07-12"));
context.setVariable("ownerPersonPlaceBirth_2", "birthLocation");
context.setVariable("ownerPersonEmail_2", "E-mail");
context.setVariable("ownerPersonPhone_2", "Phone");
context.setVariable("ownerPersonCitizenShip_2", "citizenShip");
context.setVariable("ownerPersonFamilyStatus_2", "familyStatus");
context.setVariable("ownerPersonSNILS_2", "112-233-332 33");
context.setVariable("ownerPersonContactInfo_2", "contactInfo");
context.setVariable("ownerTemporaryLocationOKATO_2", "ownerTemporaryLocationOKATO"); //тип string
context.setVariable("ownerTemporaryLocationCLADR_2", "ownerTemporaryLocationCLADR"); //тип string
context.setVariable("ownerTemporaryLocationPostalCode_2", "ownerTemporaryLocationPostalCode"); //тип string
context.setVariable("ownerTemporaryLocationRegion_2", "ownerTemporaryLocationRegion"); //тип string
context.setVariable("ownerTemporaryLocationDistrictName_2", "ownerTemporaryLocationDistrictName"); //тип string
context.setVariable("ownerTemporaryLocationDistrictType_2", "р-н"); //тип enum
context.setVariable("ownerTemporaryLocationCityName_2", "ownerTemporaryLocationCityName"); //тип string
context.setVariable("ownerTemporaryLocationDCity_2", "г"); //тип string
context.setVariable("ownerTemporaryLocationUrbanDistictName_2",
"ownerTemporaryLocationUrbanDistictName"); //тип string
context.setVariable("ownerTemporaryLocationUrbanDistictType_2", "р-н"); //тип string
context.setVariable("ownerTemporaryLocationSovietVillageName_2",
"ownerTemporaryLocationSovietVillageName"); //тип string
context.setVariable("ownerTemporaryLocationSovietVillageType_2", "волость"); //тип string
context.setVariable("ownerTemporaryLocationLocalityName_2", "ownerTemporaryLocationLocalityName"); //тип string
context.setVariable("ownerTemporaryLocationLocalityType_2", "аал"); //тип string
context.setVariable("ownerTemporaryLocationStreetName_2", "ownerTemporaryLocationStreetName"); //тип string
context.setVariable("ownerTemporaryLocationDStreets_2", "аллея"); //тип enum
context.setVariable("ownerTemporaryLocationLocationLevel1Type_2", "д"); //тип enum
context.setVariable("ownerTemporaryLocationLocationLevel1Value_2",
"ownerTemporaryLocationLocationLevel1Value"); //тип string
context.setVariable("ownerTemporaryLocationLocationLevel2Type_2", "корп"); //тип enum
context.setVariable("ownerTemporaryLocationLocationLevel2Value_2",
"ownerTemporaryLocationLocationLevel2Value"); //тип string
context.setVariable("ownerTemporaryLocationLocationLevel3Type_2", "блок"); //тип enum
context.setVariable("ownerTemporaryLocationLocationLevel3Value_2",
"ownerTemporaryLocationLocationLevel3Value"); //тип string
context.setVariable("ownerTemporaryLocationLocationApartmentType_2", "кв"); //тип enum
context.setVariable("ownerTemporaryLocationLocationApartmentValue_2",
"ownerTemporaryLocationLocationApartmentValue"); //тип string
context.setVariable("ownerTemporaryLocationLocationOther_2", "ownerTemporaryLocationLocationOther"); //тип string
context.setVariable("ownerTemporaryLocationLocationNote_2", "ownerTemporaryLocationLocationNote"); //тип string
context.setVariable("ownerPDocumentCode_2", "ownerPDocumentCode"); //тип enum
context.setVariable("ownerPDocumentSeries_2", "ownerPDocumentSeries"); //тип string
context.setVariable("ownerPDocumentNumber_2", "ownerPDocumentNumber"); //тип string
context.setVariable("ownerPDocumentDate_2", TestUtils.getDateValue("2001-11-01")); //тип date
context.setVariable("ownerPDocumentIssueOrgan_2", "ownerPDocumentIssueOrgan"); //тип string
context.setVariable("ownerPDocumentDesc_2", "ownerPDocumentDesc"); //тип string
//Territory
context.setVariable("territoryRegion", "40"); //req Attr
//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", "Первичный запрос");
}
@Test
public void testRealtyRightsByOwner() throws Exception {
createContextForGetIncapacityOwner();
testCreateEnclosure("/enclosure/grp/incapacity_owner.xml", "7b983700-651d-43d8-bdb4-26dd683df535");
}
private void createContextForGetIncapacityOwner() throws ParseException {
context.setVariable("incapacityOwner" , 1L);
context.setVariable("smevTest", "Первичный запрос");
context.setVariable("okato", "60000000000"); // string
context.setVariable("oktmo", "01234567"); // string
context.setVariable("requestType", "558102100000"); // string
context.setVariable("enclosure_request_type", "SUBJECT_RIGHTS"); // string
context.setVariable("declarantType", "GOVERNANCE"); // string
context.setVariable("ownerPersonFIOSurname_1", "Иванов");
context.setVariable("ownerPersonFIOFirst_1", "Иван");
context.setVariable("ownerPersonFIOPatronymic_1", "Иваныч");
context.setVariable("ownerPersonSNILS_1", "112-233-332 33");
context.setVariable("ownerPersonDateBirth_1", TestUtils.getDateValue("2012-07-12"));
context.setVariable("ownerPersonPDocumentCode_1", "008001001000"); //тип string
context.setVariable("ownerPersonPDocumentSeries_1", "1111"); //тип string
context.setVariable("ownerPersonPDocumentNumber_1", "222222"); //тип string
context.setVariable("ownerPersonPDocumentDate_1", TestUtils.getDateValue("2001-01-01")); //тип date
context.setVariable("ownerPersonPDocumentIssueOrgan_1", "ОВД Калуга, 2321"); //тип string
context.setVariable("ownerTemporaryLocationRegion_1", "40"); //тип string
context.setVariable("ownerTemporaryLocationCityName_1", "Калуга"); //тип string
context.setVariable("ownerTemporaryLocationDCity_1", "г"); //тип string
context.setVariable("ownerTemporaryLocationStreetName_1", "Ленина"); //тип string
context.setVariable("ownerTemporaryLocationDStreets_1", "уч-к"); //тип enum
context.setVariable("ownerTemporaryLocationLocationLevel1Type_1", "д"); //тип enum
context.setVariable("ownerTemporaryLocationLocationLevel1Value_1", "32"); //тип string
context.setVariable("ownerTemporaryLocationLocationLevel2Type_1", "корп"); //тип enum
context.setVariable("ownerTemporaryLocationLocationLevel2Value_1", "2"); //тип string
context.setVariable("ownerTemporaryLocationLocationLevel3Type_1", "литера"); //тип enum
context.setVariable("ownerTemporaryLocationLocationLevel3Value_1", "а"); //тип string
context.setVariable("ownerTemporaryLocationLocationApartmentType_1", "кв"); //тип enum
context.setVariable("ownerTemporaryLocationLocationApartmentValue_1", "32"); //тип string
context.setVariable("ownerTemporaryLocationLocationOther_1", "Иное"); //тип string
context.setVariable("ownerTemporaryLocationLocationNote_1", "Неформализованное описнаие");
context.setVariable("applied", 1l);
context.setVariable("territory", 2L);
context.setVariable("territory_1", "01");
context.setVariable("territory_2", "02");
context.setVariable("payment", 0l);
context.setVariable("appliedADocumentDate_1", TestUtils.getDateValue("2012-07-24")); // string
context.setVariable("appliedADocumentOriginalQuantity_1", 1L); // string
context.setVariable("appliedADocumentOriginalQuantitySheet_1", 1L); // string
context.setVariable("appliedADocumentName_1",
"Запрос о предоставлении сведений, содержащихся в Едином государственном реестре прав на недвижимое имущество и сделок с ним");
context.setVariable("appliedADocumentCode_1", "558102100000"); // string
context.setVariable("appliedADocumentNumber_1", "26-0-1-21/4001/2011-166"); // string
context.setVariable("declarantType", "GOVERNANCE");
context.setVariable("declKind", "357007000000"); //Required
context.setVariable("declGovernanceName", "Пенсионный фонд");
context.setVariable("declGovernanceCode", "007001001001");
context.setVariable("declGovernanceEmail", "test@test");
context.setVariable("agentFIOSurname", "Антонов");
context.setVariable("agentFIOFirst", "Антон");
context.setVariable("agentFIOPatronymic", "Антонович");
context.setVariable("agentSNILS", "233-234-434 34");
context.setVariable("agentKind", "356003000000");
context.setVariable("agentEmail", "test@test.ru");
context.setVariable("agentPhone", "213-23-12");
context.setVariable("agentContactInfo", "Адрес для почтовой корреспонденции");
context.setVariable("agentPDocumentCode", "008001001000"); //тип string
context.setVariable("agentPDocumentSeries", "2222"); //тип string
context.setVariable("agentPDocumentNumber", "222222"); //тип string
context.setVariable("agentPDocumentDate", TestUtils.getDateValue("2010-10-10")); //тип date
context.setVariable("agentPDocumentIssueOrgan", "УВД, Код подразделен"); //тип string
context.setVariable("agentTemporaryLocationRegion", "40"); //тип string
context.setVariable("agentTemporaryLocationPostalCode", "113563"); //тип string
context.setVariable("agentTemporaryLocationCityName", "Калуга"); //тип string
context.setVariable("agentTemporaryLocationDCity", "г"); //тип string
context.setVariable("agentTemporaryLocationStreetName", "Советская"); //тип string
context.setVariable("agentTemporaryLocationDStreets", "ул"); //тип enum
context.setVariable("agentTemporaryLocationLocationLevel1Type", "д"); //тип enum
context.setVariable("agentTemporaryLocationLocationLevel1Value", "10"); //тип string
context.setVariable("agentTemporaryLocationLocationLevel2Type", "корп"); //тип enum
context.setVariable("agentTemporaryLocationLocationLevel2Value", "1"); //тип string
context.setVariable("agentTemporaryLocationLocationLevel3Type", "литера"); //тип enum
context.setVariable("agentTemporaryLocationLocationLevel3Value", "а"); //тип string
context.setVariable("agentTemporaryLocationLocationApartmentType", "к"); //тип enum
context.setVariable("agentTemporaryLocationLocationApartmentValue", "1"); //тип string
context.setVariable("agentTemporaryLocationLocationOther", "Иное"); //тип string
context.setVariable("agentTemporaryLocationLocationNote", "Неформализованное описание");
//ReasonFreeDocument
context.setVariable("freePaymentADocumentCode_1", "555005000000");
context.setVariable("freePaymentADocumentName_1",
"Документ, подтверждающий право заявителя на безвозмездное получение сведений");
context.setVariable("freePaymentADocumentNumber_1", "");
context.setVariable("freePaymentADocumentDate_1", TestUtils.getDateValue("2012-07-24"));
context.setVariable("freePaymentADocumentOriginalQuantity_1", 1L);
context.setVariable("freePaymentADocumentOriginalQuantitySheet_1", 1L);
context.setVariable("isPaymentFree", true);
context.setVariable("freePayment", 1L);
}
private void testCreateEnclosure(String fileWithExpectedEnclosure, String guid) throws IOException {
String xml = enclosureBuilder.createEnclosure( guid);
InputStream is = this.getClass().getResourceAsStream(fileWithExpectedEnclosure);
String expectedContent = IOUtils.toString(is, "UTF-8");
Assert.assertEquals(expectedContent, xml);
}
}