47 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
<?php
 | 
						|
 | 
						|
namespace Tests\Feature\Membership;
 | 
						|
 | 
						|
use App\Member\Member;
 | 
						|
use App\Member\Membership;
 | 
						|
use App\Membership\AgeGroupCountBlock;
 | 
						|
use Illuminate\Foundation\Testing\DatabaseTransactions;
 | 
						|
use Tests\TestCase;
 | 
						|
 | 
						|
class AgeGroupCountBlockTest extends TestCase
 | 
						|
{
 | 
						|
    use DatabaseTransactions;
 | 
						|
 | 
						|
    public function testItDisplaysAgeGroups(): void
 | 
						|
    {
 | 
						|
        $this->withoutExceptionHandling();
 | 
						|
        Member::factory()->count(3)
 | 
						|
            ->has(Membership::factory()->in('€ Mitglied', 1, 'Biber', 2))
 | 
						|
            ->defaults()
 | 
						|
            ->create();
 | 
						|
        Member::factory()->count(4)
 | 
						|
            ->has(Membership::factory()->in('€ Mitglied', 1, 'Wölfling', 3))
 | 
						|
            ->defaults()
 | 
						|
            ->create();
 | 
						|
        Member::factory()->count(2)->has(Membership::factory()->in('€ LeiterIn', 2, 'Wölfling', 3))
 | 
						|
            ->defaults()
 | 
						|
            ->create();
 | 
						|
        Member::factory()->count(2)
 | 
						|
            ->has(Membership::factory()->in('€ LeiterIn', 2, 'Jungpfadfinder', 3))
 | 
						|
            ->has(Membership::factory()->ended()->in('€ LeiterIn', 2, 'Pfadfinder', 3))
 | 
						|
            ->has(Membership::factory()->ended()->in('€ Mitglied', 2, 'Jungpfadfinder', 3))
 | 
						|
            ->defaults()
 | 
						|
            ->create();
 | 
						|
 | 
						|
        $data = app(AgeGroupCountBlock::class)->render()['data'];
 | 
						|
 | 
						|
        $this->assertEquals([
 | 
						|
            'groups' => [
 | 
						|
                ['slug' => 'biber', 'name' => 'Biber', 'count' => 3],
 | 
						|
                ['slug' => 'woelfling', 'name' => 'Wölfling', 'count' => 4],
 | 
						|
                ['slug' => 'leiter', 'name' => 'Leiter', 'count' => 4],
 | 
						|
            ],
 | 
						|
        ], $data);
 | 
						|
    }
 | 
						|
}
 |