* test_catalog_articole_s1.prg *!* 15.09.2026 *!* marius.mutu *!* Proba headless S1: verifica inregistrarea oproceduri_articole.prg si onom_articole *!* in Programe\roafacturare.prg si instantiaza frm_catalog_articole fara eroare VFP. *!* Rulare: vfp9.exe -A -T "\test_catalog_articole_s1.prg" *!* Log: test_catalog_articole_s1.log, langa script. LPARAMETERS tcHost, tcSchema, tcPassword SET SAFETY OFF SET TALK OFF SET TABLEPROMPT OFF SET ESCAPE OFF SET CONSOLE OFF SET NOTIFY OFF SET EXCLUSIVE OFF CLOSE DATABASES PUBLIC glLogFile LOCAL lcDir, lcApp, lcHarness, lcPrg, lcProc, llProc, llCls, llConn, llForm, loForm lcDir = ADDBS(JUSTPATH(SYS(16,0))) IF EMPTY(lcDir) lcDir = 'D:\ROA\ROAFACTURARE\Utile\Teste\' ENDIF lcApp = 'D:\ROA\ROAFACTURARE\' glLogFile = lcDir + 'test_catalog_articole_s1.log' STRTOFILE('', glLogFile, .F.) s1log('== test_catalog_articole_s1 ==') s1log('SAFETY=' + SET('SAFETY') + ' RESOURCE=' + SET('RESOURCE') + ' TABLEPROMPT=' + SET('TABLEPROMPT')) IF EMPTY(tcHost) tcHost = 'CENTRAL' ENDIF IF EMPTY(tcSchema) tcSchema = 'MARIUSM_AUTO' ENDIF IF EMPTY(tcPassword) tcPassword = 'ROMFASTSOFT' ENDIF ON ERROR DO s1err WITH ERROR(), MESSAGE(), PROGRAM(), LINENO() * 1) liniile de inregistrare exista in roafacturare.prg lcPrg = FILETOSTR(lcApp + 'Programe\roafacturare.prg') llProc = ('Set Procedure To oproceduri_articole.prg Additive' $ lcPrg) llCls = ('Set Classlib To onom_articole Additive' $ lcPrg) s1check('roafacturare.prg contine Set Procedure To oproceduri_articole.prg Additive', llProc) s1check('roafacturare.prg contine Set Classlib To onom_articole Additive', llCls) * 2) mediu ROAFACTURARE + conexiune Oracle dev lcHarness = lcApp + 'COMUN\utile\Teste\test_init_env_auto_roafacturare.prg' DO (lcHarness) WITH tcHost, tcSchema, tcPassword llConn = (gnHandle > 0) s1check('conexiune Oracle ' + tcHost + '/' + tcSchema, llConn) * 3) inregistrarea efectiva, exact ca in roafacturare.prg SET PROCEDURE TO oproceduri_articole.prg ADDITIVE SET CLASSLIB TO onom_articole ADDITIVE lcProc = FILETOSTR(lcApp + 'COMUN\programe\oproceduri_articole.prg') s1check('oproceduri_articole.prg defineste PROCEDURE viz_catalog_articole', ('PROCEDURE viz_catalog_articole' $ lcProc)) * 4) clasa frm_catalog_articole se instantiaza loForm = .NULL. llForm = .F. TRY loForm = CREATEOBJECT('frm_catalog_articole') llForm = (TYPE('loForm') = 'O' AND !ISNULL(loForm)) CATCH TO loEroare s1log('[ERR] CREATEOBJECT(frm_catalog_articole): ' + TRANSFORM(loEroare.Message) + ' linia ' + TRANSFORM(loEroare.LineNo)) ENDTRY s1check('CREATEOBJECT(frm_catalog_articole)', llForm) IF llForm TRY s1log(' ColumnCount grila = ' + TRANSFORM(loForm.Ct_grid_search1._Grid1.ColumnCount) + ' (0 headless nu e esec)') CATCH TO loEroare s1log(' ColumnCount indisponibil: ' + TRANSFORM(loEroare.Message)) ENDTRY loForm.Release() loForm = .NULL. ENDIF * 5) verdict IF llProc AND llCls AND llConn AND llForm s1log('REZULTAT: PASS') ELSE s1log('REZULTAT: FAIL') ENDIF CLOSE DATABASES SET PROCEDURE TO SET CLASSLIB TO QUIT PROCEDURE s1log LPARAMETERS tcText STRTOFILE(TRANSFORM(tcText) + CHR(13) + CHR(10), glLogFile, .T.) ENDPROC PROCEDURE s1check LPARAMETERS tcDescriere, tlOk s1log(IIF(tlOk, '[PASS] ', '[FAIL] ') + tcDescriere) ENDPROC PROCEDURE s1err LPARAMETERS tnEroare, tcMesaj, tcProgram, tnLinia s1log('[ERR] ' + TRANSFORM(tnEroare) + ' ' + TRANSFORM(tcMesaj) + ' in ' + TRANSFORM(tcProgram) + ' linia ' + TRANSFORM(tnLinia)) ENDPROC