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.
This commit is contained in:
111
Teste/test_export_date.prg
Normal file
111
Teste/test_export_date.prg
Normal file
@@ -0,0 +1,111 @@
|
||||
* 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
|
||||
Reference in New Issue
Block a user