/* * codjo.net * * Common Apache License 2.0 */ package net.codjo.dataprocess.common.util; import static net.codjo.test.common.matcher.JUnitMatchers.assertThat; import static net.codjo.test.common.matcher.JUnitMatchers.equalTo; import org.junit.Test; /** * */ public class XMLUtilsTest { @Test public void flatten() { String strXml = "<treatment id=\"transcoVl\" scope=\"TREATMENT\" type=\"sql\"> <comment/> <title>Transco AP_VL_GPFO > TI_CSCOP_VL_10" + "</title><target>delete TI_CSCOP_VL_10 where PERIODE = ? and SYSTEME= ?\n\ninsert into TI_CSCOP_VL_10 (PERIODE, CODE_PORTEFEUILLE, LIBELLE_PORTEFEUILLE, CODE_VALEUR, CODE_COMMISSAIRE, DEVISE, NOMBRE_PARTS, VALEUR_LIQUIDATIVE_UNITAIRE, DATE_VALORISATION, DATE_TRAVAIL, CODE_ISIN, INSTRUMENT, PLACE_COTATION, STATUT, STATUT_LIGNE, SYSTEME ) \nselect PERIODE, CODE_PORTEFEUILLE, LIBELLE_PORTEFEUILLE, CODE_VALEUR, CODE_COMMISSAIRE, DEVISE, NOMBRE_PARTS, VALEUR_LIQUIDATIVE_UNITAIRE, DATE_VALORISATION, DATE_TRAVAIL, CODE_ISIN, ?, ?, ?, ?, ? from AP_VL_GPFO where AP_VL_GPFO.PERIODE = ?</target>\n" + "<result-table/>\n<arguments><arg position=\"1\" type=\"12\"><name>periodeDelete</name><value>$periode$</value></arg><arg position=\"2\" type=\"12\"><name>systeme.1</name><value>GPFO</value></arg><arg position=\"3\" type=\"12\"><name>instrument</name><value>SICAV</value></arg><arg position=\"4\" type=\"12\"><name>placeCotation</name><value>XXX</value></arg><arg position=\"5\" type=\"12\"><name>statut</name><value>OUVERT</value></arg><arg position=\"6\" type=\"12\"><name>statutLigne</name><value>PROPRE</value></arg><arg position=\"7\" type=\"12\"><name>systeme.2</name><value>GPFO</value></arg><arg position=\"8\" type=\"12\"><name>periodeWhere</name><value>$periode$</value></arg></arguments></treatment>"; String result = XMLUtils.flatten(strXml, true); assertThat(result, equalTo( "<treatment id=\"transcoVl\" scope=\"TREATMENT\" type=\"sql\"> <comment/> <title>Transco AP_VL_GPFO > TI_CSCOP_VL_10</title><target>delete TI_CSCOP_VL_10 where PERIODE = ? and SYSTEME= ?insert into TI_CSCOP_VL_10 (PERIODE, CODE_PORTEFEUILLE, LIBELLE_PORTEFEUILLE, CODE_VALEUR, CODE_COMMISSAIRE, DEVISE, NOMBRE_PARTS, VALEUR_LIQUIDATIVE_UNITAIRE, DATE_VALORISATION, DATE_TRAVAIL, CODE_ISIN, INSTRUMENT, PLACE_COTATION, STATUT, STATUT_LIGNE, SYSTEME ) select PERIODE, CODE_PORTEFEUILLE, LIBELLE_PORTEFEUILLE, CODE_VALEUR, CODE_COMMISSAIRE, DEVISE, NOMBRE_PARTS, VALEUR_LIQUIDATIVE_UNITAIRE, DATE_VALORISATION, DATE_TRAVAIL, CODE_ISIN, ?, ?, ?, ?, ? from AP_VL_GPFO where AP_VL_GPFO.PERIODE = ?</target><result-table/><arguments><arg position=\"1\" type=\"12\"><name>periodeDelete</name><value>$periode$</value></arg><arg position=\"2\" type=\"12\"><name>systeme.1</name><value>GPFO</value></arg><arg position=\"3\" type=\"12\"><name>instrument</name><value>SICAV</value></arg><arg position=\"4\" type=\"12\"><name>placeCotation</name><value>XXX</value></arg><arg position=\"5\" type=\"12\"><name>statut</name><value>OUVERT</value></arg><arg position=\"6\" type=\"12\"><name>statutLigne</name><value>PROPRE</value></arg><arg position=\"7\" type=\"12\"><name>systeme.2</name><value>GPFO</value></arg><arg position=\"8\" type=\"12\"><name>periodeWhere</name><value>$periode$</value></arg></arguments></treatment>")); result = XMLUtils.flatten(strXml, false); assertThat(result, equalTo( "<treatment id=\"transcoVl\" scope=\"TREATMENT\" type=\"sql\"> <comment/> <title>Transco AP_VL_GPFO > TI_CSCOP_VL_10</title><target>delete TI_CSCOP_VL_10 where PERIODE = ? and SYSTEME= ?insert into TI_CSCOP_VL_10 (PERIODE, CODE_PORTEFEUILLE, LIBELLE_PORTEFEUILLE, CODE_VALEUR, CODE_COMMISSAIRE, DEVISE, NOMBRE_PARTS, VALEUR_LIQUIDATIVE_UNITAIRE, DATE_VALORISATION, DATE_TRAVAIL, CODE_ISIN, INSTRUMENT, PLACE_COTATION, STATUT, STATUT_LIGNE, SYSTEME ) select PERIODE, CODE_PORTEFEUILLE, LIBELLE_PORTEFEUILLE, CODE_VALEUR, CODE_COMMISSAIRE, DEVISE, NOMBRE_PARTS, VALEUR_LIQUIDATIVE_UNITAIRE, DATE_VALORISATION, DATE_TRAVAIL, CODE_ISIN, ?, ?, ?, ?, ? from AP_VL_GPFO where AP_VL_GPFO.PERIODE = ?</target><result-table/><arguments><arg position=\"1\" type=\"12\"><name>periodeDelete</name><value>$periode$</value></arg><arg position=\"2\" type=\"12\"><name>systeme.1</name><value>GPFO</value></arg><arg position=\"3\" type=\"12\"><name>instrument</name><value>SICAV</value></arg><arg position=\"4\" type=\"12\"><name>placeCotation</name><value>XXX</value></arg><arg position=\"5\" type=\"12\"><name>statut</name><value>OUVERT</value></arg><arg position=\"6\" type=\"12\"><name>statutLigne</name><value>PROPRE</value></arg><arg position=\"7\" type=\"12\"><name>systeme.2</name><value>GPFO</value></arg><arg position=\"8\" type=\"12\"><name>periodeWhere</name><value>$periode$</value></arg></arguments></treatment>")); } @Test public void flattenAndReplaceSpecialChar() { String strXml = "<treatment id=\"transcoVl\" scope=\"TREATMENT\" type=\"sql\"><comment/><title>Transco AP_VL_GPFO > TI_CSCOP_VL_10" + "</title><target>delete TI_CSCOP_VL_10 where PERIODE = ? and SYSTEME= ?\n\ninsert into TI_CSCOP_VL_10 (PERIODE, CODE_PORTEFEUILLE, LIBELLE_PORTEFEUILLE, CODE_VALEUR, CODE_COMMISSAIRE, DEVISE, NOMBRE_PARTS, VALEUR_LIQUIDATIVE_UNITAIRE, DATE_VALORISATION, DATE_TRAVAIL, CODE_ISIN, INSTRUMENT, PLACE_COTATION, STATUT, STATUT_LIGNE, SYSTEME ) \nselect PERIODE, CODE_PORTEFEUILLE, LIBELLE_PORTEFEUILLE, CODE_VALEUR, CODE_COMMISSAIRE, DEVISE, NOMBRE_PARTS, VALEUR_LIQUIDATIVE_UNITAIRE, DATE_VALORISATION, DATE_TRAVAIL, CODE_ISIN, ?, ?, ?, ?, ? from AP_VL_GPFO where AP_VL_GPFO.PERIODE = ?</target>\n" + "<result-table/>\n<arguments><arg position=\"1\" type=\"12\"><name>periodeDelete</name><value>$periode$</value></arg><arg position=\"2\" type=\"12\"><name>systeme.1</name><value>GPFO</value></arg><arg position=\"3\" type=\"12\"><name>instrument</name><value>SICAV</value></arg><arg position=\"4\" type=\"12\"><name>placeCotation</name><value>XXX</value></arg><arg position=\"5\" type=\"12\"><name>statut</name><value>OUVERT</value></arg><arg position=\"6\" type=\"12\"><name>statutLigne</name><value>PROPRE</value></arg><arg position=\"7\" type=\"12\"><name>systeme.2</name><value>GPFO</value></arg><arg position=\"8\" type=\"12\"><name>periodeWhere</name><value>$periode$</value></arg></arguments></treatment>"; String result = XMLUtils.flattenAndReplaceCRLF(strXml, true); assertThat(result, equalTo( "<treatment id=\"transcoVl\" scope=\"TREATMENT\" type=\"sql\"><comment/><title>Transco AP_VL_GPFO > TI_CSCOP_VL_10" + "</title><target>delete TI_CSCOP_VL_10 where PERIODE = ? and SYSTEME= ?[@][@]insert into TI_CSCOP_VL_10 (PERIODE, CODE_PORTEFEUILLE, LIBELLE_PORTEFEUILLE, CODE_VALEUR, CODE_COMMISSAIRE, DEVISE, NOMBRE_PARTS, VALEUR_LIQUIDATIVE_UNITAIRE, DATE_VALORISATION, DATE_TRAVAIL, CODE_ISIN, INSTRUMENT, PLACE_COTATION, STATUT, STATUT_LIGNE, SYSTEME ) [@]select PERIODE, CODE_PORTEFEUILLE, LIBELLE_PORTEFEUILLE, CODE_VALEUR, CODE_COMMISSAIRE, DEVISE, NOMBRE_PARTS, VALEUR_LIQUIDATIVE_UNITAIRE, DATE_VALORISATION, DATE_TRAVAIL, CODE_ISIN, ?, ?, ?, ?, ? from AP_VL_GPFO where AP_VL_GPFO.PERIODE = ?</target>[@]" + "<result-table/>[@]<arguments><arg position=\"1\" type=\"12\"><name>periodeDelete</name><value>$periode$</value></arg><arg position=\"2\" type=\"12\"><name>systeme.1</name><value>GPFO</value></arg><arg position=\"3\" type=\"12\"><name>instrument</name><value>SICAV</value></arg><arg position=\"4\" type=\"12\"><name>placeCotation</name><value>XXX</value></arg><arg position=\"5\" type=\"12\"><name>statut</name><value>OUVERT</value></arg><arg position=\"6\" type=\"12\"><name>statutLigne</name><value>PROPRE</value></arg><arg position=\"7\" type=\"12\"><name>systeme.2</name><value>GPFO</value></arg><arg position=\"8\" type=\"12\"><name>periodeWhere</name><value>$periode$</value></arg></arguments></treatment>")); result = XMLUtils.flattenAndReplaceCRLF(strXml, false); assertThat(result, equalTo( "<treatment id=\"transcoVl\" scope=\"TREATMENT\" type=\"sql\"><comment/><title>Transco AP_VL_GPFO > TI_CSCOP_VL_10" + "</title><target>delete TI_CSCOP_VL_10 where PERIODE = ? and SYSTEME= ?[@][@]insert into TI_CSCOP_VL_10 (PERIODE, CODE_PORTEFEUILLE, LIBELLE_PORTEFEUILLE, CODE_VALEUR, CODE_COMMISSAIRE, DEVISE, NOMBRE_PARTS, VALEUR_LIQUIDATIVE_UNITAIRE, DATE_VALORISATION, DATE_TRAVAIL, CODE_ISIN, INSTRUMENT, PLACE_COTATION, STATUT, STATUT_LIGNE, SYSTEME ) [@]select PERIODE, CODE_PORTEFEUILLE, LIBELLE_PORTEFEUILLE, CODE_VALEUR, CODE_COMMISSAIRE, DEVISE, NOMBRE_PARTS, VALEUR_LIQUIDATIVE_UNITAIRE, DATE_VALORISATION, DATE_TRAVAIL, CODE_ISIN, ?, ?, ?, ?, ? from AP_VL_GPFO where AP_VL_GPFO.PERIODE = ?</target>[@]" + "<result-table/>[@]<arguments><arg position=\"1\" type=\"12\"><name>periodeDelete</name><value>$periode$</value></arg><arg position=\"2\" type=\"12\"><name>systeme.1</name><value>GPFO</value></arg><arg position=\"3\" type=\"12\"><name>instrument</name><value>SICAV</value></arg><arg position=\"4\" type=\"12\"><name>placeCotation</name><value>XXX</value></arg><arg position=\"5\" type=\"12\"><name>statut</name><value>OUVERT</value></arg><arg position=\"6\" type=\"12\"><name>statutLigne</name><value>PROPRE</value></arg><arg position=\"7\" type=\"12\"><name>systeme.2</name><value>GPFO</value></arg><arg position=\"8\" type=\"12\"><name>periodeWhere</name><value>$periode$</value></arg></arguments></treatment>")); } @Test public void getRidOfHeader() { String str = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n\naaaaaaaaa\r\r\n" + "<treatment id=\"CexportCapitalDiminution\" scope=\"TREATMENT\" type=\"sql_with_result\">"; assertThat( "<treatment id=\"CexportCapitalDiminution\" scope=\"TREATMENT\" type=\"sql_with_result\">", equalTo(XMLUtils.getRidOfHeader(str))); } }