/* * 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.gws.core.cproto; import com.sun.xml.ws.transport.http.client.HttpTransportPipe; import org.apache.commons.lang.time.DateUtils; import org.junit.Assert; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import org.w3c.dom.Element; import ru.codeinside.gws.api.ClientRequest; import ru.codeinside.gws.api.ClientResponse; import ru.codeinside.gws.api.ExchangeContext; import ru.codeinside.gws.api.InfoSystem; import ru.codeinside.gws.api.VerifyResult; import ru.codeinside.gws.api.XmlNormalizer; import ru.codeinside.gws.crypto.cryptopro.CryptoProvider; import ru.codeinside.gws.stubs.DummyContext; import ru.codeinside.gws.wsdl.ServiceDefinitionParser; import ru.codeinside.gws.xml.normalizer.XmlNormalizerImpl; import ru.codeinside.gws3572c.GMPClient3572; import xmltype.R; import javax.xml.namespace.QName; import javax.xml.soap.SOAPMessage; import java.io.IOException; import java.io.InputStream; import java.text.ParseException; import java.util.logging.LogManager; @Ignore public class ExportPaymentITest extends Assert { static { final InputStream is = ExportPaymentITest.class.getClassLoader().getResourceAsStream("logging.properties"); try { if (is != null) { LogManager.getLogManager().readConfiguration(is); } } catch (IOException e) { throw new RuntimeException(e); } } private GMPClient3572 client; public static final String SERVICE_ADDRESS = "http://188.254.16.92:7777/gateway/services/SID0003218?wsdl"; private InfoSystem pnzr01581; private ClientRev111111 rev111111; private DummyContext createContext() throws ParseException { DummyContext ctx = new DummyContext(); ctx.setVariable("operationType", "exportData"); ctx.setVariable("postBlockTimeStamp", DateUtils.parseDate("2001-12-17 09:30:47", new String[]{"yyyy-MM-dd HH:mm:ss"})); // не обязательно ctx.setVariable("postBlockId", "1538442"); // генерируется ctx.setVariable("postBlockSenderIdentifier", "0277777777"); // ctx.setVariable("startDate" , DateUtils.parseDate("2000-12-17", new String[]{"yyyy-MM-dd"})); // ctx.setVariable("endDate" , DateUtils.parseDate("2012-12-17", new String[]{"yyyy-MM-dd"})); ctx.setVariable("SupplierBillIDBlock", 1L); ctx.setVariable("SupplierBillID_1", "FK800122222222222221"); ctx.setVariable("-SupplierBillIDBlock", ""); return ctx; } @Before public void setUp() throws Exception { pnzr01581 = new InfoSystem("8201", "Комплексная система предоставления государственных и муниципальных услуг Пензенской области"); CryptoProvider cryptoProvider = new CryptoProvider(); XmlNormalizer xmlNormalizer = new XmlNormalizerImpl(); rev111111 = new ClientRev111111(new ServiceDefinitionParser(), cryptoProvider, xmlNormalizer, null); client = new GMPClient3572(); // client.bindCryptoProvider (cryptoProvider); HttpTransportPipe.dump = true; ClientRev111111.validate = true; } @Test public void testExportPayment() throws Exception { ExchangeContext ctx = createContext(); ctx.setVariable("smevTest", "Первичный запрос"); ctx.setVariable("exportRequestType", "PAYMENT"); ClientRequest request = client.createClientRequest(ctx); System.out.print(request.appData); request.portAddress = SERVICE_ADDRESS; request.packet.sender = request.packet.originator = pnzr01581; ClientResponse response = rev111111.send(client.getWsdlUrl(), request, null); client.processClientResponse(response, ctx); assertEquals(true, ctx.getVariable("responseSuccess")); assertEquals(1L, ctx.getVariable("paymentBlock")); } @Test public void testExportUnmatchedPayment() throws Exception { ExchangeContext ctx = createContext(); ctx.setVariable("smevTest", "Первичный запрос"); ctx.setVariable("exportRequestType", "PAYMENTUNMATCHED"); ctx.setVariable("SupplierBillID_1", "FK800122222222222221"); ClientRequest request = client.createClientRequest(ctx); System.out.print(request.appData); request.portAddress = SERVICE_ADDRESS; request.packet.sender = request.packet.originator = pnzr01581; ClientResponse response = rev111111.send(client.getWsdlUrl(), request, null); client.processClientResponse(response, ctx); assertEquals(true, ctx.getVariable("responseSuccess")); assertEquals(1L, ctx.getVariable("paymentBlock")); } @Test @Ignore public void testParseSampleRequest() throws Exception { SOAPMessage soapResource = R.getSoapResource("gmp/export_charge/sample_request.xml"); ClientResponse response = new ClientResponse(); response.action = new QName("http://roskazna.ru/SmevUnifoService/", "UnifoTransferMsg"); response.verifyResult = new VerifyResult(null, null, null); response.appData = (Element) soapResource.getSOAPBody().getElementsByTagNameNS("http://smev.gosuslugi.ru/rev111111", "AppData").item(0); assertNotNull(response.appData); DummyContext context = createContext(); client.processClientResponse(response, context); assertNotNull(context.getVariable("BillDate_1")); } }