/* * 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.gws3457c; import junit.framework.Assert; import org.junit.Test; import ru.tower.mvd.response.addpayment.ResponseAdditionalPaymentRequest; import java.math.BigDecimal; import java.math.BigInteger; import java.util.List; public class UnmarshallHelperTest { @Test public void testUnmarshalResponseAdditionalPaymentData() throws Exception { String data = "<?xml version=\"1.0\" encoding=\"WINDOWS-1251\"?>\n" + "<ОТВЕТ_НА_ЗАПРОС_СВЕДЕНИЙ_О_ПОЛУЧЕНИИ_ПЕНСИИ_НА_МЕСЯЦ_УСТАНОВЛЕНИЯ_ДОПЛАТЫ><ФИО><Фамилия>МИХАЙЛОВ</Фамилия><Имя>ЮРИЙ</Имя><Отчество>СЕРГЕЕВИЧ</Отчество></ФИО><СтраховойНомер>077-817-954 25</СтраховойНомер><ДатаПоСостояниюНа>08.08.2011</ДатаПоСостояниюНа><ДатаФормирования>28.09.2012</ДатаФормирования><НаличиеДанных>ДА</НаличиеДанных><Подразделение><Наименование>ГУ МВД России по г. Москве</Наименование><Регион>77</Регион></Подразделение><ЛичныйДокумент><Вид>ПЕНСИОННОЕ УДОСТОВЕРЕНИЕ</Вид><Номер>1234567890</Номер></ЛичныйДокумент><ВсеВыплаты><Выплата><ВидВыплаты>ГОСУДАРСТВЕННАЯ_ПЕНСИЯ</ВидВыплаты><СуммаВыплаты>3000</СуммаВыплаты></Выплата><Выплата><ВидВыплаты>ТРУДОВАЯ_ПЕНСИЯ</ВидВыплаты><СуммаВыплаты>2000</СуммаВыплаты></Выплата><Выплата><ВидВыплаты>ЕДВ_ГЕРОЯМ</ВидВыплаты><СуммаВыплаты>1000</СуммаВыплаты></Выплата><КоличествоВыплат>3</КоличествоВыплат></ВсеВыплаты></ОТВЕТ_НА_ЗАПРОС_СВЕДЕНИЙ_О_ПОЛУЧЕНИИ_ПЕНСИИ_НА_МЕСЯЦ_УСТАНОВЛЕНИЯ_ДОПЛАТЫ>"; final ResponseAdditionalPaymentRequest additionalPaymentResponse = UnmarshallHelper.parseAdditionaPaymentResult(data); Assert.assertNotNull(additionalPaymentResponse); Assert.assertNotNull(additionalPaymentResponse.getФИО()); Assert.assertEquals("МИХАЙЛОВ", additionalPaymentResponse.getФИО().getФамилия()); Assert.assertEquals("ЮРИЙ", additionalPaymentResponse.getФИО().getИмя()); Assert.assertEquals("СЕРГЕЕВИЧ", additionalPaymentResponse.getФИО().getОтчество()); Assert.assertEquals("077-817-954 25", additionalPaymentResponse.getСтраховойНомер()); Assert.assertEquals("08.08.2011", additionalPaymentResponse.getДатаПоСостояниюНа()); Assert.assertEquals("28.09.2012", additionalPaymentResponse.getДатаФормирования()); Assert.assertEquals("ДА", additionalPaymentResponse.getНаличиеДанных()); Assert.assertEquals("ГУ МВД России по г. Москве", additionalPaymentResponse.getПодразделение().getНаименование()); Assert.assertEquals("77", additionalPaymentResponse.getПодразделение().getРегион()); Assert.assertEquals("ПЕНСИОННОЕ УДОСТОВЕРЕНИЕ", additionalPaymentResponse.getЛичныйДокумент().getВид()); Assert.assertEquals(new BigInteger("1234567890"), additionalPaymentResponse.getЛичныйДокумент().getНомер()); ResponseAdditionalPaymentRequest.ВсеВыплаты.Выплата payment = findPaymentByType( additionalPaymentResponse.getВсеВыплаты().getВыплата(), "ГОСУДАРСТВЕННАЯ_ПЕНСИЯ"); Assert.assertEquals(new BigDecimal(3000), payment.getСуммаВыплаты()); payment = findPaymentByType( additionalPaymentResponse.getВсеВыплаты().getВыплата(), "ТРУДОВАЯ_ПЕНСИЯ"); Assert.assertEquals(new BigDecimal(2000), payment.getСуммаВыплаты()); payment = findPaymentByType( additionalPaymentResponse.getВсеВыплаты().getВыплата(), "ЕДВ_ГЕРОЯМ"); Assert.assertEquals(new BigDecimal(1000), payment.getСуммаВыплаты()); } @Test public void testUnmarshalResponsePensionValue() throws Exception { String data = "<?xml version=\"1.0\" encoding=\"WINDOWS-1251\"?>\n" + "<ОТВЕТ_НА_ЗАПРОС_СВЕДЕНИЙ_О_ПОЛУЧЕНИИ_ПЕНСИИ_НА_МЕСЯЦ_УСТАНОВЛЕНИЯ_ДОПЛАТЫ><ФИО><Фамилия>МИХАЙЛОВ</Фамилия><Имя>ЮРИЙ</Имя><Отчество>СЕРГЕЕВИЧ</Отчество></ФИО><СтраховойНомер>077-817-954 25</СтраховойНомер><ДатаПоСостояниюНа>08.08.2011</ДатаПоСостояниюНа><ДатаФормирования>28.09.2012</ДатаФормирования><НаличиеДанных>ДА</НаличиеДанных><Подразделение><Наименование>ГУ МВД России по г. Москве</Наименование><Регион>77</Регион></Подразделение><ЛичныйДокумент><Вид>ПЕНСИОННОЕ УДОСТОВЕРЕНИЕ</Вид><Номер>1234567890</Номер></ЛичныйДокумент><ВсеВыплаты><Выплата><ВидВыплаты>ГОСУДАРСТВЕННАЯ_ПЕНСИЯ</ВидВыплаты><СуммаВыплаты>3000</СуммаВыплаты></Выплата><Выплата><ВидВыплаты>ТРУДОВАЯ_ПЕНСИЯ</ВидВыплаты><СуммаВыплаты>2000</СуммаВыплаты></Выплата><Выплата><ВидВыплаты>ЕДВ_ГЕРОЯМ</ВидВыплаты><СуммаВыплаты>1000</СуммаВыплаты></Выплата><КоличествоВыплат>3</КоличествоВыплат></ВсеВыплаты></ОТВЕТ_НА_ЗАПРОС_СВЕДЕНИЙ_О_ПОЛУЧЕНИИ_ПЕНСИИ_НА_МЕСЯЦ_УСТАНОВЛЕНИЯ_ДОПЛАТЫ>"; final ResponseAdditionalPaymentRequest additionalPaymentResponse = UnmarshallHelper.parseAdditionaPaymentResult(data); Assert.assertNotNull(additionalPaymentResponse); Assert.assertNotNull(additionalPaymentResponse.getФИО()); Assert.assertEquals("МИХАЙЛОВ", additionalPaymentResponse.getФИО().getФамилия()); Assert.assertEquals("ЮРИЙ", additionalPaymentResponse.getФИО().getИмя()); Assert.assertEquals("СЕРГЕЕВИЧ", additionalPaymentResponse.getФИО().getОтчество()); Assert.assertEquals("077-817-954 25", additionalPaymentResponse.getСтраховойНомер()); Assert.assertEquals("08.08.2011", additionalPaymentResponse.getДатаПоСостояниюНа()); Assert.assertEquals("28.09.2012", additionalPaymentResponse.getДатаФормирования()); Assert.assertEquals("ДА", additionalPaymentResponse.getНаличиеДанных()); Assert.assertEquals("ГУ МВД России по г. Москве", additionalPaymentResponse.getПодразделение().getНаименование()); Assert.assertEquals("77", additionalPaymentResponse.getПодразделение().getРегион()); Assert.assertEquals("ПЕНСИОННОЕ УДОСТОВЕРЕНИЕ", additionalPaymentResponse.getЛичныйДокумент().getВид()); Assert.assertEquals(new BigInteger("1234567890"), additionalPaymentResponse.getЛичныйДокумент().getНомер()); ResponseAdditionalPaymentRequest.ВсеВыплаты.Выплата payment = findPaymentByType( additionalPaymentResponse.getВсеВыплаты().getВыплата(), "ГОСУДАРСТВЕННАЯ_ПЕНСИЯ"); Assert.assertEquals(new BigDecimal(3000), payment.getСуммаВыплаты()); payment = findPaymentByType( additionalPaymentResponse.getВсеВыплаты().getВыплата(), "ТРУДОВАЯ_ПЕНСИЯ"); Assert.assertEquals(new BigDecimal(2000), payment.getСуммаВыплаты()); payment = findPaymentByType( additionalPaymentResponse.getВсеВыплаты().getВыплата(), "ЕДВ_ГЕРОЯМ"); Assert.assertEquals(new BigDecimal(1000), payment.getСуммаВыплаты()); } private ResponseAdditionalPaymentRequest.ВсеВыплаты.Выплата findPaymentByType(List<ResponseAdditionalPaymentRequest.ВсеВыплаты.Выплата> payments, String paymentType) { for (ResponseAdditionalPaymentRequest.ВсеВыплаты.Выплата payment : payments) { if (payment.getВидВыплаты().equals(paymentType)) { return payment; } } return null; } }