* 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