Files
flora2roa/Teste/test_export_date.prg
Marius Mutu 2736cbd525 Initial: flux text FoxBin2Prg (git urmareste .??2 in-arbore, binarele VFP git-ignored)
Include si sistemul de depanare/testare headless din Teste\ (harness UI cu capturi, verificare de sintaxa prin compilare, wrappere text<->binar) si docs\depanare_testare_flora2roa.md.
2026-08-02 08:56:52 +03:00

112 lines
4.7 KiB
Plaintext

* test_export_date.prg - test functional pe fluxul REAL de citire a fisierelor de import.
* Instantiaza frm_import, seteaza intervalul din controale si apeleaza ExportDate() (pasul pe
* care il declanseaza butonul "Import Fidelio&Biz > ROA"), apoi verifica cursoarele rezultate.
* Nu are nevoie de Oracle: ExportDate citeste doar XML-urile din folderele din settings.ini.
*
* Parametri optionali: data de inceput si data de sfarsit ca AAAALLZZ.
* vfp9.exe -A -T "Teste\test_export_date.prg" 20250601 20250630
* Rulare cu capturi:
* powershell -ExecutionPolicy Bypass -File Teste\vfp_ui_harness.ps1 `
* -TestPrg 'D:\PROIECTE\FLORA\FLORA2ROA\Teste\test_export_date.prg' -Steps @('afisat','importat')
LPARAMETERS tcData1, tcData2
SET SAFETY OFF
SET TALK OFF
PUBLIC gcUILog, gcSyncDir, gnTestFail, gnMockRaspuns, gcMockUltimMesaj, gnMockUltimTip
gnTestFail = 0
gnMockRaspuns = 6
gcMockUltimMesaj = ''
gnMockUltimTip = 0
LOCAL lcTestDir, ldData1, ldData2
lcTestDir = ADDBS(JUSTPATH(SYS(16, 0)))
gcUILog = lcTestDir + 'test_export_date_log.txt'
gcSyncDir = lcTestDir + 'uisync\'
IF !DIRECTORY(gcSyncDir)
MD (gcSyncDir)
ENDIF
STRTOFILE('START ' + TTOC(DATETIME()) + CHR(13) + CHR(10), gcUILog)
ldData1 = IIF(TYPE('tcData1') = 'C' AND LEN(ALLTRIM(TRANSFORM(tcData1))) = 8, ;
DATE(VAL(LEFT(tcData1, 4)), VAL(SUBSTR(tcData1, 5, 2)), VAL(RIGHT(tcData1, 2))), DATE(2025, 6, 1))
ldData2 = IIF(TYPE('tcData2') = 'C' AND LEN(ALLTRIM(TRANSFORM(tcData2))) = 8, ;
DATE(VAL(LEFT(tcData2, 4)), VAL(SUBSTR(tcData2, 5, 2)), VAL(RIGHT(tcData2, 2))), DATE(2025, 6, 30))
DO (lcTestDir + 'test_init_env_auto.prg') WITH .F.
SET PROCEDURE TO (lcTestDir + 'ui_harness.prg') ADDITIVE
SET PROCEDURE TO (lcTestDir + 'mock_amessagebox.prg') ADDITIVE
DO HarnessInit
HarnessLog('Interval cerut: ' + DTOC(ldData1) + ' - ' + DTOC(ldData2))
HarnessLog('cale_import_fidelio = ' + goApp.oSettings.cale_import_fidelio)
HarnessLog('cale_import_biz = ' + goApp.oSettings.cale_import_biz)
HarnessLog('cale_import = ' + goApp.oSettings.cale_import)
TestAssert(DIRECTORY(ADDBS(ALLTRIM(goApp.oSettings.cale_import_fidelio))), 'exista directorul Fidelio')
TestAssert(DIRECTORY(ADDBS(ALLTRIM(goApp.oSettings.cale_import_biz))), 'exista directorul Biz')
TestAssert(DIRECTORY(ADDBS(ALLTRIM(goApp.oSettings.cale_import))), 'exista directorul de import')
PUBLIC goImportFrm
DO FORM (gcAppPath + 'frm_import') NAME goImportFrm NOSHOW
goImportFrm.WindowType = 0
goImportFrm.Show()
DOEVENTS FORCE
DO HarnessStep WITH 0, 'formular afisat'
* fluxul real: utilizatorul completeaza intervalul in controale, apoi apasa butonul de import
goImportFrm.txtData1.Value = ldData1
goImportFrm.txtData2.Value = ldData2
goImportFrm.chkTest.Value = 1
LOCAL lnSucces
lnSucces = goImportFrm.ExportDate()
DOEVENTS FORCE
HarnessLog('ExportDate a returnat ' + TRANSFORM(lnSucces))
TestAssertEqual(1, lnSucces, 'ExportDate returneaza CT_SUCCES')
LOCAL lnFidelio, lnIntrari, lnIesiri, lnVanzari, lnPart
lnFidelio = IIF(USED('cFacturiFidelio'), RECCOUNT('cFacturiFidelio'), -1)
lnIntrari = IIF(USED('cIntrariRestaurant'), RECCOUNT('cIntrariRestaurant'), -1)
lnIesiri = IIF(USED('cIesiriRestaurant'), RECCOUNT('cIesiriRestaurant'), -1)
lnVanzari = IIF(USED('cVanzariRestaurant'), RECCOUNT('cVanzariRestaurant'), -1)
lnPart = IIF(USED('nPart'), RECCOUNT('nPart'), -1)
HarnessLog('Randuri citite: facturi Fidelio=' + TRANSFORM(lnFidelio) + ' intrari=' + TRANSFORM(lnIntrari) + ;
' iesiri=' + TRANSFORM(lnIesiri) + ' vanzari=' + TRANSFORM(lnVanzari) + ' parteneri=' + TRANSFORM(lnPart))
TestAssert(lnFidelio >= 0, 'cursorul cFacturiFidelio exista')
TestAssert(lnIntrari >= 0, 'cursorul cIntrariRestaurant exista')
TestAssert(lnIesiri >= 0, 'cursorul cIesiriRestaurant exista')
TestAssert(lnVanzari >= 0, 'cursorul cVanzariRestaurant exista')
TestAssert(lnPart >= 0, 'cursorul nPart exista')
TestAssert(lnFidelio + lnIntrari + lnIesiri + lnVanzari > 0, ;
's-au citit randuri din fisierele intervalului')
* datele citite trebuie sa fie DOAR din intervalul cerut (filtrul pe numele fisierului)
IF lnVanzari > 0
LOCAL lnInAfara
SELECT cVanzariRestaurant
COUNT FOR !BETWEEN(CTOD(LEFT(ALLTRIM(NVL(datadocument, '')), 10)), ldData1, ldData2) ;
AND !EMPTY(ALLTRIM(NVL(datadocument, ''))) TO lnInAfara
TestAssertEqual(0, lnInAfara, 'vanzarile citite sunt in intervalul cerut')
ENDIF
* cheia externa de partener se calculeaza pentru toate randurile
IF lnPart > 0
LOCAL lnFaraCod
SELECT nPart
COUNT FOR EMPTY(NVL(cod, '')) TO lnFaraCod
TestAssertEqual(0, lnFaraCod, 'toti partenerii au cod cheie externa calculat')
ENDIF
DO HarnessStep WITH 1, 'import citit: ' + TRANSFORM(lnFidelio + lnIntrari + lnIesiri + lnVanzari) + ' randuri'
HarnessLog('REZULTAT: ' + TestRezultat())
DO HarnessDone WITH TestRezultat()
goImportFrm.Release()
QUIT