75 lines
2.4 KiB
PHP
75 lines
2.4 KiB
PHP
<?php
|
||
|
||
/*
|
||
* This file is part of the Kimai time-tracking app.
|
||
*
|
||
* For the full copyright and license information, please view the LICENSE
|
||
* file that was distributed with this source code.
|
||
*/
|
||
|
||
namespace App\Tests\Invoice;
|
||
|
||
use App\Entity\Customer;
|
||
use App\Entity\InvoiceTemplate;
|
||
use App\Entity\Project;
|
||
use App\Invoice\InvoiceFilename;
|
||
use App\Invoice\InvoiceModel;
|
||
use App\Invoice\NumberGenerator\DateNumberGenerator;
|
||
use App\Repository\Query\InvoiceQuery;
|
||
use PHPUnit\Framework\TestCase;
|
||
|
||
/**
|
||
* @covers \App\Invoice\InvoiceFilename
|
||
*/
|
||
class InvoiceFilenameTest extends TestCase
|
||
{
|
||
public function testInvoiceFilename()
|
||
{
|
||
$customer = new Customer();
|
||
$template = new InvoiceTemplate();
|
||
|
||
$model = new InvoiceModel(new DebugFormatter());
|
||
$model->setNumberGenerator(new DateNumberGenerator());
|
||
$model->setTemplate($template);
|
||
$model->setCustomer($customer);
|
||
|
||
$datePrefix = date('ymd');
|
||
|
||
$sut = new InvoiceFilename($model);
|
||
|
||
self::assertEquals($datePrefix, $sut->getFilename());
|
||
self::assertEquals($datePrefix, (string) $sut);
|
||
|
||
$customer->setName('foo');
|
||
$sut = new InvoiceFilename($model);
|
||
|
||
self::assertEquals($datePrefix . '-foo', $sut->getFilename());
|
||
self::assertEquals($datePrefix . '-foo', (string) $sut);
|
||
|
||
$customer->setCompany('barß / laölala # ldksjf 123');
|
||
$sut = new InvoiceFilename($model);
|
||
|
||
self::assertEquals($datePrefix . '-barss_laolala_ldksjf123', $sut->getFilename());
|
||
self::assertEquals($datePrefix . '-barss_laolala_ldksjf123', (string) $sut);
|
||
|
||
$customer->setCompany('까깨꺄꺠꺼께껴꼐꼬꽈sssss');
|
||
$sut = new InvoiceFilename($model);
|
||
self::assertEquals($datePrefix . '-kkakkaekkyakkyaekkeokkekkyeokkyekkokkwasssss', $sut->getFilename());
|
||
|
||
$customer->setCompany('\"#+ß.!$%&/()=?\\n=/*-+´_<>@' . "\n");
|
||
$sut = new InvoiceFilename($model);
|
||
self::assertEquals($datePrefix . '-ss_n', $sut->getFilename());
|
||
|
||
$project = new Project();
|
||
$project->setName('Demo ProjecT1');
|
||
|
||
$query = new InvoiceQuery();
|
||
$query->addProject($project);
|
||
$model->setQuery($query);
|
||
|
||
$customer->setCompany('\"#+ß.!$%&/()=?\\n=/*-+´_<>@' . "\n");
|
||
$sut = new InvoiceFilename($model);
|
||
self::assertEquals($datePrefix . '-ss_n-demo_projec_t1', $sut->getFilename());
|
||
}
|
||
}
|