Skip to content

Commit

Permalink
Wip...
Browse files Browse the repository at this point in the history
  • Loading branch information
Andrea Pollastri committed Nov 13, 2023
1 parent dd6c344 commit 5f24221
Show file tree
Hide file tree
Showing 4 changed files with 218 additions and 4 deletions.
4 changes: 0 additions & 4 deletions .styleci.yml

This file was deleted.

60 changes: 60 additions & 0 deletions tests/DatiTrasmissioneTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
<?php

namespace Axiostudio\FatturaElettronica\Tests;

use Axiostudio\FatturaElettronica\Models\DatiTrasmissione;
use Axiostudio\FatturaElettronica\Models\Id;
use PHPUnit\Framework\TestCase;
use Symfony\Component\Validator\Validation;

class DatiTrasmissioneTest extends TestCase
{
public function testConstructorWithEmailPECDestinatario(): void
{
$id = '0123456789';

$progressivoInvio = '001';
$codiceDestinatario = '1234567';
$pecDestinatario = '[email protected]';
$formatoTrasmissione = 'FPA12';

$datiTrasmissione = new DatiTrasmissione($id, $progressivoInvio, $codiceDestinatario, $pecDestinatario, $formatoTrasmissione);

$this->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', '[email protected]', 'FPA12');

$validator = Validation::createValidatorBuilder()->enableAnnotationMapping()->getValidator();

$violations = $validator->validate($datiTrasmissione);

$this->assertCount(0, $violations);
}
}
61 changes: 61 additions & 0 deletions tests/DettaglioLineeTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
<?php

namespace Axiostudio\FatturaElettronica\Tests;

use Axiostudio\FatturaElettronica\Models\DettaglioLinee;
use PHPUnit\Framework\TestCase;
use Symfony\Component\Validator\Validation;

class DettaglioLineeTest extends TestCase
{
public function testConstructorWithNatura(): void
{
$descrizione = 'Product Description';
$prezzoUnitario = 10.00;
$quantita = 2.5;
$unitaMisura = 'PCE';
$aliquotaIVA = 22.00;
$natura = 'N1';

$dettaglioLinee = new DettaglioLinee($descrizione, $prezzoUnitario, $quantita, $unitaMisura, $aliquotaIVA, $natura);

$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);
$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);
}
}
97 changes: 97 additions & 0 deletions tests/DettaglioPagamentoTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
<?php

namespace Axiostudio\FatturaElettronica\Tests;

use Axiostudio\FatturaElettronica\Models\DettaglioPagamento;
use PHPUnit\Framework\TestCase;
use Symfony\Component\Validator\Validation;

class DettaglioPagamentoTest extends TestCase
{
public function testConstructorWithIBAN(): void
{
$importoPagamento = 100.00;
$dataScadenzaPagamento = '2023-01-01';
$dataRiferimentoTerminiPagamento = '2023-01-05';
$giorniTerminiPagamento = '5';
$beneficiario = 'John Doe';
$istitutoFinanziario = 'Bank ABC';
$iban = 'IT60X0542811101000000123456';
$abi = '12345';
$cab = '67890';
$bic = 'ABCITR12345';
$modalitaPagamento = 'MP02';

$dettaglioPagamento = new DettaglioPagamento(
$importoPagamento,
$dataScadenzaPagamento,
$dataRiferimentoTerminiPagamento,
$giorniTerminiPagamento,
$beneficiario,
$istitutoFinanziario,
$iban,
$abi,
$cab,
$bic,
$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($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);
}
}

0 comments on commit 5f24221

Please sign in to comment.