added invoice archive & configurable invoice numbers (#1541)

This commit is contained in:
Kevin Papst
2020-03-14 01:16:58 +01:00
committed by GitHub
parent dd64eb98f9
commit e6e6a1eeea
106 changed files with 2587 additions and 339 deletions

View File

@@ -15,6 +15,7 @@ use App\Invoice\NumberGenerator\DateNumberGenerator;
use App\Invoice\Renderer\TwigRenderer;
use App\Invoice\ServiceInvoice;
use App\Repository\InvoiceDocumentRepository;
use App\Utils\FileHelper;
use PHPUnit\Framework\TestCase;
use Twig\Environment;
@@ -23,10 +24,16 @@ use Twig\Environment;
*/
class ServiceInvoiceTest extends TestCase
{
private function getSut(array $paths): ServiceInvoice
{
$repo = new InvoiceDocumentRepository($paths);
return new ServiceInvoice($repo, new FileHelper(realpath(__DIR__ . '/../../var/data/')));
}
public function testEmptyObject()
{
$repo = new InvoiceDocumentRepository([]);
$sut = new ServiceInvoice($repo);
$sut = $this->getSut([]);
$this->assertEmpty($sut->getCalculator());
$this->assertIsArray($sut->getCalculator());
@@ -44,8 +51,7 @@ class ServiceInvoiceTest extends TestCase
public function testWithDocumentDirectory()
{
$repo = new InvoiceDocumentRepository(['templates/invoice/renderer/']);
$sut = new ServiceInvoice($repo);
$sut = $this->getSut(['templates/invoice/renderer/']);
$actual = $sut->getDocuments();
$this->assertNotEmpty($actual);
@@ -59,8 +65,7 @@ class ServiceInvoiceTest extends TestCase
public function testAdd()
{
$repo = new InvoiceDocumentRepository([]);
$sut = new ServiceInvoice($repo);
$sut = $this->getSut([]);
$sut->addCalculator(new DefaultCalculator());
$sut->addNumberGenerator(new DateNumberGenerator());
@@ -74,7 +79,7 @@ class ServiceInvoiceTest extends TestCase
$this->assertInstanceOf(DefaultCalculator::class, $sut->getCalculatorByName('default'));
$this->assertEquals(1, count($sut->getNumberGenerator()));
$this->assertInstanceOf(DateNumberGenerator::class, $sut->getNumberGeneratorByName('default'));
$this->assertInstanceOf(DateNumberGenerator::class, $sut->getNumberGeneratorByName('date'));
$this->assertEquals(1, count($sut->getRenderer()));
}