Files
comun/utile/Teste/valuta581/test_valuta581.prg
2026-09-29 16:36:56 +03:00

117 lines
4.9 KiB
Plaintext

LPARAMETERS tcHost, tcSchema, tcPassword
SET SAFETY OFF
SET TALK OFF
LOCAL lcLog, lnPass, lnFail, lcMsg
lcLog = 'D:\ROA\ROACONT\COMUN\utile\Teste\valuta581\test_valuta581_log.txt'
STRTOFILE('start ' + TTOC(DATETIME()) + CHR(13)+CHR(10), lcLog)
lnPass = 0
lnFail = 0
ON ERROR STRTOFILE('ERROR: ' + MESSAGE() + ' | ' + PROGRAM() + ' | line ' + TRANSFORM(LINENO()) + CHR(13)+CHR(10), lcLog, 1)
DO D:\ROA\ROACONT\COMUN\utile\Teste\test_init_env_auto.prg WITH (tcHost), (tcSchema), (tcPassword)
IF gnHandle <= 0
STRTOFILE('FAIL init_env: conectare esuata' + CHR(13)+CHR(10), lcLog, 1)
QUIT
ENDIF
STRTOFILE('SAFETY=' + SET('SAFETY') + ' RESOURCE=' + SET('RESOURCE') + CHR(13)+CHR(10), lcLog, 1)
LOCAL lcCampLista, lcFisLista, lcIdFisier
lcCampLista = ''
lcFisLista = ''
lcIdFisier = ''
IF goExecutor.oExecuta("select camp_lista, fis_lista, id_fisier from xitems where id_item = 81", "cXItem81")
SELECT cXItem81
IF RECCOUNT() = 1
lcCampLista = ALLTRIM(camp_lista)
lcFisLista = LOWER(ALLTRIM(fis_lista))
lcIdFisier = ALLTRIM(id_fisier)
lnPass = lnPass + 1
STRTOFILE('PASS xitems81 lookup: camp_lista=' + lcCampLista + ' fis_lista=' + lcFisLista + ' id_fisier=' + lcIdFisier + CHR(13)+CHR(10), lcLog, 1)
ELSE
lnFail = lnFail + 1
STRTOFILE('FAIL xitems81 lookup: ' + TRANSFORM(RECCOUNT()) + ' randuri' + CHR(13)+CHR(10), lcLog, 1)
ENDIF
USE IN (SELECT('cXItem81'))
ELSE
lnFail = lnFail + 1
STRTOFILE('FAIL xitems81 query esuata' + CHR(13)+CHR(10), lcLog, 1)
ENDIF
* reproduce exact codul corectat din baza.vc2:10159 (item.Text_item1.GotFocus), cu valorile reale din xitems 81
LOCAL F, C, lcIdFis, pcselect
F = lcFisLista
C = lcCampLista
lcIdFis = lcIdFisier
pcselect = ['select ] + C + [,] + Iif(F == 'vnom_valute' And Lower(lcIdFis) == 'id_valuta2', [id_valuta3 as id_valuta2], lcIdFis) + [ from ] + F + [ where 2=2']
STRTOFILE('pcselect=' + pcselect + CHR(13)+CHR(10), lcLog, 1)
* pcselect pastreaza apostroful santinela de la inceput/sfarsit (contract cauta_alfa.prg:87-93,
* Left(lcSelect,1) in ['],["],"["), neatins de aceasta corectie - nu se modifica
IF pcselect == ['select nume_val2,id_valuta3 as id_valuta2 from vnom_valute where 2=2']
lnPass = lnPass + 1
STRTOFILE('PASS pcselect text corect (id_valuta3 as id_valuta2)' + CHR(13)+CHR(10), lcLog, 1)
ELSE
lnFail = lnFail + 1
STRTOFILE('FAIL pcselect text neasteptat' + CHR(13)+CHR(10), lcLog, 1)
ENDIF
* executa efectiv select-ul corectat (fara apostroful santinela, cum il consuma downstream cauta_alfa) si verifica EUR/USD dau id intern (2/1), nu ISO (44/142)
LOCAL lcSqlClean
lcSqlClean = SUBSTR(pcselect, 2, LEN(pcselect) - 2)
IF goExecutor.oExecuta(lcSqlClean + [ and nume_val2 in ('EUR','USD')], "cVal")
SELECT cVal
LOCATE FOR ALLTRIM(nume_val2) = 'EUR'
IF FOUND() AND id_valuta2 = 2
lnPass = lnPass + 1
STRTOFILE('PASS EUR -> id_valuta2=' + TRANSFORM(id_valuta2) + ' (asteptat 2, intern EURO)' + CHR(13)+CHR(10), lcLog, 1)
ELSE
lnFail = lnFail + 1
STRTOFILE('FAIL EUR -> id_valuta2=' + TRANSFORM(IIF(FOUND(),id_valuta2,-999)) + CHR(13)+CHR(10), lcLog, 1)
ENDIF
LOCATE FOR ALLTRIM(nume_val2) = 'USD'
IF FOUND() AND id_valuta2 = 1
lnPass = lnPass + 1
STRTOFILE('PASS USD -> id_valuta2=' + TRANSFORM(id_valuta2) + ' (asteptat 1, intern USD)' + CHR(13)+CHR(10), lcLog, 1)
ELSE
lnFail = lnFail + 1
STRTOFILE('FAIL USD -> id_valuta2=' + TRANSFORM(IIF(FOUND(),id_valuta2,-999)) + CHR(13)+CHR(10), lcLog, 1)
ENDIF
USE IN (SELECT('cVal'))
ELSE
lnFail = lnFail + 1
STRTOFILE('FAIL query corectata esuata' + CHR(13)+CHR(10), lcLog, 1)
ENDIF
* regresie: acelasi cod, dar item 11 (valuta facturii) - lcIdFis = id_valuta, nu trebuie atins de conditie
LOCAL F2, C2, lcIdFis2, pcselect2
F2 = 'vnom_valute'
C2 = 'nume_val'
lcIdFis2 = 'id_valuta'
pcselect2 = ['select ] + C2 + [,] + Iif(F2 == 'vnom_valute' And Lower(lcIdFis2) == 'id_valuta2', [id_valuta3 as id_valuta2], lcIdFis2) + [ from ] + F2 + [ where 2=2']
IF pcselect2 == ['select nume_val,id_valuta from vnom_valute where 2=2']
lnPass = lnPass + 1
STRTOFILE('PASS regresie item 11 (id_valuta) neatins' + CHR(13)+CHR(10), lcLog, 1)
ELSE
lnFail = lnFail + 1
STRTOFILE('FAIL regresie item 11: ' + pcselect2 + CHR(13)+CHR(10), lcLog, 1)
ENDIF
* regresie: schimb valutar 10633, items 88/89 - lcIdFis = id_valuta3, nu trebuie atins de conditie
LOCAL F3, C3, lcIdFis3, pcselect3
F3 = 'vnom_valute'
C3 = 'nume_val3'
lcIdFis3 = 'id_valuta3'
pcselect3 = ['select ] + C3 + [,] + Iif(F3 == 'vnom_valute' And Lower(lcIdFis3) == 'id_valuta2', [id_valuta3 as id_valuta2], lcIdFis3) + [ from ] + F3 + [ where 2=2']
IF pcselect3 == ['select nume_val3,id_valuta3 from vnom_valute where 2=2']
lnPass = lnPass + 1
STRTOFILE('PASS regresie 10633 item 88/89 (id_valuta3) neatins' + CHR(13)+CHR(10), lcLog, 1)
ELSE
lnFail = lnFail + 1
STRTOFILE('FAIL regresie 10633: ' + pcselect3 + CHR(13)+CHR(10), lcLog, 1)
ENDIF
STRTOFILE('TOTAL PASS=' + TRANSFORM(lnPass) + ' FAIL=' + TRANSFORM(lnFail) + CHR(13)+CHR(10), lcLog, 1)
STRTOFILE('end ' + TTOC(DATETIME()) + CHR(13)+CHR(10), lcLog, 1)
QUIT