59 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
| <?php
 | |
| 
 | |
| namespace Tests\Feature\Pdf;
 | |
| 
 | |
| use App\Efz\EfzDocument;
 | |
| use App\Member\Member;
 | |
| use Illuminate\Foundation\Testing\DatabaseTransactions;
 | |
| use Tests\TestCase;
 | |
| use Zoomyboy\Tex\Tex;
 | |
| 
 | |
| class EfzTest extends TestCase
 | |
| {
 | |
|     use DatabaseTransactions;
 | |
| 
 | |
|     public function testItCreatesAEfzPdfFile(): void
 | |
|     {
 | |
|         Tex::fake();
 | |
|         $this->withoutExceptionHandling()->login()->withNamiSettings();
 | |
|         $member = Member::factory()->defaults()->create([
 | |
|             'firstname' => 'Max',
 | |
|             'lastname' => 'Muster',
 | |
|             'address' => 'Itt 4',
 | |
|             'zip' => '12345',
 | |
|             'location' => 'Solingen',
 | |
|             'birthday' => '2015-02-11',
 | |
|             'nami_id' => 552,
 | |
|         ]);
 | |
| 
 | |
|         $response = $this->get("/member/{$member->id}/efz");
 | |
| 
 | |
|         $response->assertOk();
 | |
|         $response->assertHeader('Content-Disposition', 'inline; filename="efz-fuer-max-muster.pdf"');
 | |
|         Tex::assertCompiled(EfzDocument::class, fn ($document) => 'Max Muster' === $document->name
 | |
|             && 'efz-fuer-max-muster' === $document->basename()
 | |
|             && 'geb. am 11.02.2015, wohnhaft in Solingen' === $document->secondLine
 | |
|             && now()->format('d.m.Y') === $document->now
 | |
|             && [
 | |
|                 'Max Muster',
 | |
|                 'Itt 4',
 | |
|                 '12345 Solingen',
 | |
|                 'Mglnr.: 552',
 | |
|             ] === $document->sender->values()
 | |
|         );
 | |
|     }
 | |
| 
 | |
|     public function testItReallyCreatesAEfzPdfFile(): void
 | |
|     {
 | |
|         Tex::spy();
 | |
|         $this->withoutExceptionHandling()->login()->withNamiSettings();
 | |
|         $member = Member::factory()->defaults()->create(['firstname' => 'Max', 'lastname' => 'Muster']);
 | |
| 
 | |
|         $response = $this->get("/member/{$member->id}/efz");
 | |
| 
 | |
|         $response->assertOk();
 | |
|         $response->assertHeader('Content-Disposition', 'inline; filename="efz-fuer-max-muster.pdf"');
 | |
|         Tex::assertCompiled(EfzDocument::class, fn ($document) => $document->hasContent('Absender:') && $document->hasContent('Max Muster'));
 | |
|     }
 | |
| }
 |