Import parteneri: coduri fiscale/CNP invalide se salveaza gol, partenerii straini nu se valideaza romaneste
This commit is contained in:
104
Teste/test_cod_fiscal.prg
Normal file
104
Teste/test_cod_fiscal.prg
Normal file
@@ -0,0 +1,104 @@
|
||||
* test_cod_fiscal.prg - test unitar pentru GetCodFiscalValid (validare CNP / CUI la import parteneri).
|
||||
* Verifica regula ceruta: cod fiscal / CNP invalid => se salveaza GOL in ROA, ca sa nu dea
|
||||
* erori la declaratii (D394 / D406).
|
||||
*
|
||||
* Rulare directa:
|
||||
* vfp9.exe -A -T "D:\PROIECTE\FLORA\FLORA2ROA\Teste\test_cod_fiscal.prg"
|
||||
|
||||
SET SAFETY OFF
|
||||
SET TALK OFF
|
||||
|
||||
PUBLIC gcUILog, gcSyncDir, gnTestFail, gnMockRaspuns, gcMockUltimMesaj, gnMockUltimTip
|
||||
gnTestFail = 0
|
||||
gnMockRaspuns = 6
|
||||
gcMockUltimMesaj = ''
|
||||
gnMockUltimTip = 0
|
||||
|
||||
LOCAL lcTestDir
|
||||
lcTestDir = ADDBS(JUSTPATH(SYS(16, 0)))
|
||||
gcUILog = lcTestDir + 'test_cod_fiscal_log.txt'
|
||||
gcSyncDir = lcTestDir + 'uisync\'
|
||||
IF !DIRECTORY(gcSyncDir)
|
||||
MD (gcSyncDir)
|
||||
ENDIF
|
||||
STRTOFILE('START ' + TTOC(DATETIME()) + CHR(13) + CHR(10), gcUILog)
|
||||
|
||||
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
|
||||
|
||||
LOCAL lnTip, lcRez
|
||||
|
||||
*--- CNP valid: se pastreaza, tip persoana fizica ---
|
||||
lnTip = 0
|
||||
lcRez = GetCodFiscalValid('1800101410013', @lnTip)
|
||||
TestAssertEqual('1800101410013', m.lcRez, 'CNP valid pastrat')
|
||||
TestAssertEqual(2, m.lnTip, 'CNP valid => persoana fizica')
|
||||
|
||||
*--- CNP valid murdar (spatii, punct): se curata si ramane ---
|
||||
TestAssertEqual('1800101410013', GetCodFiscalValid(' 1800101410013. '), 'CNP valid curatat de spatii/punct')
|
||||
|
||||
*--- CNP cu cifra de control gresita => sir gol ---
|
||||
TestAssertEqual('', GetCodFiscalValid('1800101410018'), 'CNP cu cifra de control alterata se sterge')
|
||||
TestAssertEqual('', GetCodFiscalValid('2650407170374'), 'CNP invalid real din Fidelio (1)')
|
||||
TestAssertEqual('', GetCodFiscalValid('1550622400577'), 'CNP invalid real din Fidelio (2)')
|
||||
|
||||
*--- lungimi gresite (12 / 14 cifre) => sir gol ---
|
||||
TestAssertEqual('', GetCodFiscalValid('171030126201'), '12 cifre => invalid')
|
||||
TestAssertEqual('', GetCodFiscalValid('29050709211182'), '14 cifre => invalid')
|
||||
TestAssertEqual('', GetCodFiscalValid('60109121600600'), '14 cifre => invalid (2)')
|
||||
* '2920121295914.' are 13 cifre dupa curatarea punctului si CNP-ul e valid => se pastreaza
|
||||
TestAssertEqual('2920121295914', GetCodFiscalValid('2920121295914.'), 'CNP valid cu punct la final se curata')
|
||||
|
||||
*--- CUI persoana juridica ---
|
||||
lnTip = 0
|
||||
lcRez = GetCodFiscalValid('RO21675175', @lnTip)
|
||||
TestAssertEqual('RO21675175', m.lcRez, 'CUI cu prefix RO pastrat')
|
||||
TestAssertEqual(1, m.lnTip, 'CUI => persoana juridica')
|
||||
|
||||
TestAssertEqual('RO23565004', GetCodFiscalValid('RO 23565004'), 'CUI cu spatiu normalizat')
|
||||
|
||||
lnTip = 0
|
||||
lcRez = GetCodFiscalValid('24536740', @lnTip)
|
||||
TestAssertEqual('24536740', m.lcRez, 'CUI fara RO pastrat')
|
||||
TestAssertEqual(1, m.lnTip, 'CUI fara RO => persoana juridica')
|
||||
|
||||
*--- CUI cu cifra de control gresita => sir gol ---
|
||||
TestAssertEqual('', GetCodFiscalValid('24536741'), 'CUI cu cifra de control gresita se sterge')
|
||||
|
||||
*--- valori goale / fara cifre utile ---
|
||||
TestAssertEqual('', GetCodFiscalValid(''), 'sir gol')
|
||||
TestAssertEqual('', GetCodFiscalValid(' '), 'spatii')
|
||||
|
||||
*--- parteneri STRAINI: codul nu respecta algoritmul romanesc, deci NU se sterge ---
|
||||
lnTip = 0
|
||||
lcRez = GetCodFiscalValid('BE0325777171', @lnTip)
|
||||
TestAssertEqual('BE0325777171', m.lcRez, 'TVA belgian pastrat ca atare')
|
||||
TestAssertEqual(1, m.lnTip, 'cod strain => persoana juridica')
|
||||
|
||||
TestAssertEqual('DICA9712015/99KS', GetCodFiscalValid('DICA9712015/99KS'), 'cod strain cu slash pastrat')
|
||||
TestAssertEqual('NN9J17714', GetCodFiscalValid('NN9J17714'), 'cod strain alfanumeric pastrat')
|
||||
TestAssertEqual('XD 061964', GetCodFiscalValid('XD 061964'), 'cod strain cu spatiu pastrat')
|
||||
TestAssertEqual('ABC', GetCodFiscalValid('ABC'), 'cod strain fara cifre pastrat')
|
||||
|
||||
*--- prefixele romanesti se trateaza tot cu regulile RO ---
|
||||
TestAssertEqual('RO14770212', GetCodFiscalValid('CUI 14770212'), 'prefix CUI => CUI romanesc valid')
|
||||
TestAssertEqual('RO12870', GetCodFiscalValid('RO 12870'), 'CUI scurt valid, spatiu eliminat')
|
||||
TestAssertEqual('', GetCodFiscalValid('RO 12871'), 'CUI romanesc invalid se sterge')
|
||||
|
||||
*--- codul de tara declarat opreste validarea romaneasca ---
|
||||
lnTip = 0
|
||||
lcRez = GetCodFiscalValid('123456789012345', @lnTip, 'BE')
|
||||
TestAssertEqual('123456789012345', m.lcRez, 'cod numeric cu tara straina nu se valideaza romaneste')
|
||||
TestAssertEqual(1, m.lnTip, 'tara straina => persoana juridica')
|
||||
|
||||
TestAssertEqual('', GetCodFiscalValid('1800101410018', 0, 'RO'), 'tara RO => se valideaza romaneste')
|
||||
|
||||
DO HarnessStep WITH 0, 'validari cod fiscal'
|
||||
|
||||
HarnessLog('REZULTAT: ' + TestRezultat())
|
||||
DO HarnessDone WITH TestRezultat()
|
||||
|
||||
QUIT
|
||||
Reference in New Issue
Block a user