GPLXPAT0 ; CCDCCR/GPL - XPATH TEST CASES ; 6/1/08 ;;0.2;CCDCCR;nopatch;noreleasedate ;Copyright 2008 WorldVistA. Licensed under the terms of the GNU ;General Public License See attached copy of the License. ; ;This program is free software; you can redistribute it and/or modify ;it under the terms of the GNU General Public License as published by ;the Free Software Foundation; either version 2 of the License, or ;(at your option) any later version. ; ;This program is distributed in the hope that it will be useful, ;but WITHOUT ANY WARRANTY; without even the implied warranty of ;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;GNU General Public License for more details. ; ;You should have received a copy of the GNU General Public License along ;with this program; if not, write to the Free Software Foundation, Inc., ;51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ; W "NO ENTRY",! Q ; ;;> ;;> ;;>>>K GPL S GPL="" ;;>>>D PUSH^GPLXPATH("GPL","FIRST") ;;>>>D PUSH^GPLXPATH("GPL","SECOND") ;;>>>D PUSH^GPLXPATH("GPL","THIRD") ;;>>>D PUSH^GPLXPATH("GPL","FOURTH") ;;>>?GPL(0)=4 ;;> ;;>>>K GXML S GXML="" ;;>>>D PUSH^GPLXPATH("GXML","") ;;>>>D PUSH^GPLXPATH("GXML","") ;;>>>D PUSH^GPLXPATH("GXML","") ;;>>>D PUSH^GPLXPATH("GXML","@@DATA1@@") ;;>>>D PUSH^GPLXPATH("GXML","") ;;>>>D PUSH^GPLXPATH("GXML","@@DATA2@@") ;;>>>D PUSH^GPLXPATH("GXML","") ;;>>>D PUSH^GPLXPATH("GXML","") ;;>>>D PUSH^GPLXPATH("GXML","") ;;>>>D PUSH^GPLXPATH("GXML","") ;;>>>D PUSH^GPLXPATH("GXML","") ;;>>>D PUSH^GPLXPATH("GXML","") ;;>>>D PUSH^GPLXPATH("GXML","") ;;> ;;>>>K GXML S GXML="" ;;>>>D PUSH^GPLXPATH("GXML","") ;;>>>D PUSH^GPLXPATH("GXML","") ;;>>>D PUSH^GPLXPATH("GXML","") ;;>>>D PUSH^GPLXPATH("GXML","DATA1") ;;>>>D PUSH^GPLXPATH("GXML","") ;;>>>D PUSH^GPLXPATH("GXML","DATA2") ;;>>>D PUSH^GPLXPATH("GXML","") ;;>>>D PUSH^GPLXPATH("GXML","") ;;>>>D PUSH^GPLXPATH("GXML","<_SECOND>") ;;>>>D PUSH^GPLXPATH("GXML","DATA3") ;;>>>D PUSH^GPLXPATH("GXML","") ;;>>>D PUSH^GPLXPATH("GXML","") ;;>>>D PUSH^GPLXPATH("GXML","") ;;> ;;>>>D ZLOAD^GPLUNIT("ZTMP","GPLXPAT0") ;;>>>D ZTEST^GPLUNIT(.ZTMP,"INIT") ;;>>?GPL(GPL(0))="FOURTH" ;;>>>D POP^GPLXPATH("GPL",.GX) ;;>>?GX="FOURTH" ;;>>?GPL(GPL(0))="THIRD" ;;>>>D POP^GPLXPATH("GPL",.GX) ;;>>?GX="THIRD" ;;>>?GPL(GPL(0))="SECOND" ;;> ;;>>>D ZLOAD^GPLUNIT("ZTMP","GPLXPAT0") ;;>>>D ZTEST^GPLUNIT(.ZTMP,"INIT") ;;>>>S GX="" ;;>>>D MKMDX^GPLXPATH("GPL",.GX) ;;>>?GX="//FIRST/SECOND/THIRD/FOURTH" ;;> ;;>>?$$XNAME^GPLXPATH("DATA1")="FOURTH" ;;>>?$$XNAME^GPLXPATH("")="SIXTH" ;;>>?$$XNAME^GPLXPATH("")="THIRD" ;;> ;;>>>D ZLOAD^GPLUNIT("ZTMP","GPLXPAT0") ;;>>>D ZTEST^GPLUNIT(.ZTMP,"INITXML") ;;>>>D INDEX^GPLXPATH("GXML") ;;>>?GXML("//FIRST/SECOND")="2^12" ;;>>?GXML("//FIRST/SECOND/THIRD")="3^9" ;;>>?GXML("//FIRST/SECOND/THIRD/FIFTH")="5^7" ;;>>?GXML("//FIRST/SECOND/THIRD/FOURTH")="4^4" ;;>>?GXML("//FIRST/SECOND/THIRD/SIXTH")="8^8" ;;>>?GXML("//FIRST/SECOND")="2^12" ;;>>?GXML("//FIRST")="1^13" ;;> ;;>>>D ZTEST^GPLXPATH("INITXML2") ;;>>>D INDEX^GPLXPATH("GXML") ;;>>?GXML("//FIRST/SECOND")="2^12" ;;>>?GXML("//FIRST/SECOND/_SECOND")="9^11" ;;>>?GXML("//FIRST/SECOND/_SECOND/FOURTH")="10^10" ;;>>?GXML("//FIRST/SECOND/THIRD")="3^8" ;;>>?GXML("//FIRST/SECOND/THIRD/FOURTH")="4^7" ;;>>?GXML("//FIRST")="1^13" ;;> ;;>>>D ZTEST^GPLXPATH("INITXML") ;;>>>S OUTARY="^TMP($J,""MISSINGTEST"")" ;;>>>D MISSING^GPLXPATH("GXML",OUTARY) ;;>>?@OUTARY@(1)="DATA1" ;;>>?@OUTARY@(2)="DATA2" ;;> ;;>>>D ZTEST^GPLXPATH("INITXML") ;;>>>S MAPARY="^TMP($J,""MAPVALUES"")" ;;>>>S OUTARY="^TMP($J,""MAPTEST"")" ;;>>>S @MAPARY@("DATA2")="VALUE2" ;;>>>D MAP^GPLXPATH("GXML",MAPARY,OUTARY) ;;>>?@OUTARY@(6)="VALUE2" ;;> ;;>>>D ZTEST^GPLXPATH("INITXML") ;;>>>S MAPARY="^TMP($J,""MAPVALUES"")" ;;>>>S OUTARY="^TMP($J,""MAPTEST"")" ;;>>>S @MAPARY@("DATA1")="VALUE1" ;;>>>S @MAPARY@("DATA2")="VALUE2" ;;>>>S @MAPARY@("DATA3")="VALUE3" ;;>>>S GXML(4)="@@DATA1@@ AND @@DATA3@@" ;;>>>D MAP^GPLXPATH("GXML",MAPARY,OUTARY) ;;>>>D PARY^GPLXPATH(OUTARY) ;;>>?@OUTARY@(4)="VALUE1 AND VALUE3" ;;> ;;>>>D QUEUE^GPLXPATH("BTLIST","GXML",2,3) ;;>>>D QUEUE^GPLXPATH("BTLIST","GXML",4,5) ;;>>?$P(BTLIST(2),";",2)=4 ;;> ;;>>>D ZTEST^GPLXPATH("INITXML") ;;>>>D QUERY^GPLXPATH("GXML","//FIRST/SECOND/THIRD/FOURTH","G2") ;;>>>D ZTEST^GPLXPATH("QUEUE") ;;>>>D BUILD^GPLXPATH("BTLIST","G3") ;;> ;;>>>D ZTEST^GPLXPATH("INITXML") ;;>>>D CP^GPLXPATH("GXML","G2") ;;>>?G2(0)=13 ;;> ;;>>>K G2,GBL ;;>>>D ZTEST^GPLXPATH("INITXML") ;;>>>D QOPEN^GPLXPATH("GBL","GXML") ;;>>?$P(GBL(1),";",3)=12 ;;>>>D BUILD^GPLXPATH("GBL","G2") ;;>>?G2(G2(0))="" ;;> ;;>>>K G2,GBL ;;>>>D ZTEST^GPLXPATH("INITXML") ;;>>>D QOPEN^GPLXPATH("GBL","GXML","//FIRST/SECOND") ;;>>?$P(GBL(1),";",3)=11 ;;>>>D BUILD^GPLXPATH("GBL","G2") ;;>>?G2(G2(0))="" ;;> ;;>>>K G2,GBL ;;>>>D ZTEST^GPLXPATH("INITXML") ;;>>>D QCLOSE^GPLXPATH("GBL","GXML") ;;>>?$P(GBL(1),";",3)=13 ;;>>>D BUILD^GPLXPATH("GBL","G2") ;;>>?G2(G2(0))="" ;;> ;;>>>K G2,GBL ;;>>>D ZTEST^GPLXPATH("INITXML") ;;>>>D QCLOSE^GPLXPATH("GBL","GXML","//FIRST/SECOND/THIRD") ;;>>?$P(GBL(1),";",3)=13 ;;>>>D BUILD^GPLXPATH("GBL","G2") ;;>>?G2(G2(0))="" ;;>>?G2(1)="" ;;> ;;>>>K G2,GBL,G3,G4 ;;>>>D ZTEST^GPLXPATH("INITXML") ;;>>>D QUERY^GPLXPATH("GXML","//FIRST/SECOND/THIRD/FIFTH","G2") ;;>>>D INSERT^GPLXPATH("GXML","G2","//FIRST/SECOND/THIRD") ;;>>>D INSERT^GPLXPATH("G3","G2","//") ;;>>?G2(1)=GXML(9) ;;> ;;>>>K G2,GBL,G3 ;;>>>D ZTEST^GPLXPATH("INITXML") ;;>>>D QUERY^GPLXPATH("GXML","//FIRST/SECOND/THIRD/FIFTH","G2") ;;>>>D REPLACE^GPLXPATH("GXML","G2","//FIRST/SECOND") ;;>>?GXML(2)="" ;;> ;;>>>K GXML,G2,GBL,G3 ;;>>>D ZTEST^GPLXPATH("INITXML") ;;>>>D QUERY^GPLXPATH("GXML","//FIRST/SECOND/THIRD","G2") ;;>>>D INSINNER^GPLXPATH("GXML","G2","//FIRST/SECOND/THIRD") ;;>>?GXML(10)="" ;;> ;;>>>K GXML,G2,GBL,G3 ;;>>>D ZTEST^GPLXPATH("INITXML") ;;>>>D QUERY^GPLXPATH("GXML","//FIRST/SECOND/THIRD","G2") ;;>>>D INSINNER^GPLXPATH("G2","G2") ;;>>?G2(8)="" ;;> ;;>>>K GTMP,GTMP2 ;;>>>N GTMP,GTMP2 ;;>>>D PUSH^GPLXPATH("GTMP","A") ;;>>>D PUSH^GPLXPATH("GTMP2","B") ;;>>>D PUSH^GPLXPATH("GTMP2","C") ;;>>>D PUSHA^GPLXPATH("GTMP","GTMP2") ;;>>?GTMP(3)="C" ;;>>?GTMP(0)=3 ;;> ;;>>>K GTMP,GTMP2 ;;>>>S GTMP("TEST1")=1 ;;>>>D H2ARY^GPLXPATH("GTMP2","GTMP") ;;>>?GTMP2(0)=1 ;;>>?GTMP2(1)="^TEST1^1" ;;> ;;>>>K GTMP,GTMP2 ;;>>>D PUSH^GPLXPATH("GTMP","@@VAR1@@") ;;>>>D XVARS^GPLXPATH("GTMP2","GTMP") ;;>>?GTMP2(1)="^VAR1^1" ;;>