diff --git a/.styleci.yml b/.styleci.yml deleted file mode 100644 index f4d3cbc..0000000 --- a/.styleci.yml +++ /dev/null @@ -1,4 +0,0 @@ -preset: laravel - -disabled: - - single_class_element_per_statement diff --git a/tests/DatiTrasmissioneTest.php b/tests/DatiTrasmissioneTest.php new file mode 100644 index 0000000..f87b9fe --- /dev/null +++ b/tests/DatiTrasmissioneTest.php @@ -0,0 +1,60 @@ +assertInstanceOf(DatiTrasmissione::class, $datiTrasmissione); + $this->assertInstanceOf(Id::class, $datiTrasmissione->IdTrasmittente); + $this->assertEquals($progressivoInvio, $datiTrasmissione->ProgressivoInvio); + $this->assertEquals($codiceDestinatario, $datiTrasmissione->CodiceDestinatario); + $this->assertEquals($pecDestinatario, $datiTrasmissione->PECDestinatario); + $this->assertEquals($formatoTrasmissione, $datiTrasmissione->FormatoTrasmissione); + } + + public function testConstructorWithoutEmailPECDestinatario(): void + { + $id = '0123456789'; + + $progressivoInvio = '001'; + $codiceDestinatario = '1234567'; + $formatoTrasmissione = 'FPA12'; + + $datiTrasmissione = new DatiTrasmissione($id, $progressivoInvio, $codiceDestinatario, null, $formatoTrasmissione); + + $this->assertInstanceOf(DatiTrasmissione::class, $datiTrasmissione); + $this->assertInstanceOf(Id::class, $datiTrasmissione->IdTrasmittente); + $this->assertEquals($progressivoInvio, $datiTrasmissione->ProgressivoInvio); + $this->assertEquals($codiceDestinatario, $datiTrasmissione->CodiceDestinatario); + $this->assertEquals($formatoTrasmissione, $datiTrasmissione->FormatoTrasmissione); + } + + public function testValidation(): void + { + $id = '0123456789'; + + $datiTrasmissione = new DatiTrasmissione($id, '001', '1234567', 'pec@example.com', 'FPA12'); + + $validator = Validation::createValidatorBuilder()->enableAnnotationMapping()->getValidator(); + + $violations = $validator->validate($datiTrasmissione); + + $this->assertCount(0, $violations); + } +} diff --git a/tests/DettaglioLineeTest.php b/tests/DettaglioLineeTest.php new file mode 100644 index 0000000..2038770 --- /dev/null +++ b/tests/DettaglioLineeTest.php @@ -0,0 +1,61 @@ +assertInstanceOf(DettaglioLinee::class, $dettaglioLinee); + $this->assertEquals($descrizione, $dettaglioLinee->Descrizione); + $this->assertEquals($prezzoUnitario, $dettaglioLinee->PrezzoUnitario); + $this->assertEquals($quantita, $dettaglioLinee->Quantita); + $this->assertEquals($unitaMisura, $dettaglioLinee->UnitaMisura); + $this->assertEquals($aliquotaIVA, $dettaglioLinee->AliquotaIVA); + $this->assertEquals($prezzoUnitario * $quantita, $dettaglioLinee->PrezzoTotale); + $this->assertEquals($natura, $dettaglioLinee->Natura); + } + + public function testConstructorWithoutNatura(): void + { + $descrizione = 'Product Description'; + $prezzoUnitario = 10.00; + $quantita = 2.5; + $unitaMisura = 'PCE'; + $aliquotaIVA = 22.00; + + $dettaglioLinee = new DettaglioLinee($descrizione, $prezzoUnitario, $quantita, $unitaMisura, $aliquotaIVA); + + $this->assertInstanceOf(DettaglioLinee::class, $dettaglioLinee); + $this->assertEquals($descrizione, $dettaglioLinee->Descrizione); + $this->assertEquals($prezzoUnitario, $dettaglioLinee->PrezzoUnitario); + $this->assertEquals($quantita, $dettaglioLinee->Quantita); + $this->assertEquals($unitaMisura, $dettaglioLinee->UnitaMisura); + $this->assertEquals($aliquotaIVA, $dettaglioLinee->AliquotaIVA); + $this->assertEquals($prezzoUnitario * $quantita, $dettaglioLinee->PrezzoTotale); + } + + public function testValidation(): void + { + $dettaglioLinee = new DettaglioLinee('Product Description', 10.00, 2.5, 'PCE', 22.00); + + $validator = Validation::createValidatorBuilder()->enableAnnotationMapping()->getValidator(); + + $violations = $validator->validate($dettaglioLinee); + + $this->assertCount(0, $violations); + } +} diff --git a/tests/DettaglioPagamentoTest.php b/tests/DettaglioPagamentoTest.php new file mode 100644 index 0000000..d57c139 --- /dev/null +++ b/tests/DettaglioPagamentoTest.php @@ -0,0 +1,97 @@ +assertInstanceOf(DettaglioPagamento::class, $dettaglioPagamento); + $this->assertEquals($importoPagamento, $dettaglioPagamento->ImportoPagamento); + $this->assertEquals($dataScadenzaPagamento, $dettaglioPagamento->DataScadenzaPagamento); + $this->assertEquals($dataRiferimentoTerminiPagamento, $dettaglioPagamento->DataRiferimentoTerminiPagamento); + $this->assertEquals($giorniTerminiPagamento, $dettaglioPagamento->GiorniTerminiPagamento); + $this->assertEquals($beneficiario, $dettaglioPagamento->Beneficiario); + $this->assertEquals($istitutoFinanziario, $dettaglioPagamento->IstituroFinanziario); + $this->assertEquals($iban, $dettaglioPagamento->IBAN); + $this->assertEquals($abi, $dettaglioPagamento->ABI); + $this->assertEquals($cab, $dettaglioPagamento->CAB); + $this->assertEquals($bic, $dettaglioPagamento->BIC); + $this->assertEquals($modalitaPagamento, $dettaglioPagamento->ModalitaPagamento); + } + + public function testConstructorWithoutIBAN(): void + { + $importoPagamento = 100.00; + $dataScadenzaPagamento = '2023-01-01'; + $dataRiferimentoTerminiPagamento = '2023-01-05'; + $giorniTerminiPagamento = '5'; + $beneficiario = 'John Doe'; + $istitutoFinanziario = 'Bank ABC'; + $modalitaPagamento = 'MP02'; + + $dettaglioPagamento = new DettaglioPagamento( + $importoPagamento, + $dataScadenzaPagamento, + $dataRiferimentoTerminiPagamento, + $giorniTerminiPagamento, + $beneficiario, + $istitutoFinanziario, + null, + null, + null, + null, + $modalitaPagamento + ); + + $this->assertInstanceOf(DettaglioPagamento::class, $dettaglioPagamento); + $this->assertEquals($importoPagamento, $dettaglioPagamento->ImportoPagamento); + $this->assertEquals($dataScadenzaPagamento, $dettaglioPagamento->DataScadenzaPagamento); + $this->assertEquals($dataRiferimentoTerminiPagamento, $dettaglioPagamento->DataRiferimentoTerminiPagamento); + $this->assertEquals($giorniTerminiPagamento, $dettaglioPagamento->GiorniTerminiPagamento); + $this->assertEquals($beneficiario, $dettaglioPagamento->Beneficiario); + $this->assertEquals($istitutoFinanziario, $dettaglioPagamento->IstituroFinanziario); + $this->assertEquals($modalitaPagamento, $dettaglioPagamento->ModalitaPagamento); + } + + public function testValidation(): void + { + $dettaglioPagamento = new DettaglioPagamento(100.00, '2023-01-01', '2023-01-05', '5', 'John Doe', 'Bank ABC', 'IT60X0542811101000000123456', '12345', '67890', 'ABCITR12345', 'MP02'); + + $validator = Validation::createValidatorBuilder()->enableAnnotationMapping()->getValidator(); + + $violations = $validator->validate($dettaglioPagamento); + + $this->assertCount(0, $violations); + } +}