64 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
<?php
 | 
						|
 | 
						|
namespace Tests\RequestFactories;
 | 
						|
 | 
						|
use App\Activity;
 | 
						|
use App\Group;
 | 
						|
use App\Subactivity;
 | 
						|
use Carbon\Carbon;
 | 
						|
use Worksome\RequestFactories\RequestFactory;
 | 
						|
 | 
						|
class MembershipRequestFactory extends RequestFactory
 | 
						|
{
 | 
						|
    public function definition(): array
 | 
						|
    {
 | 
						|
        return [
 | 
						|
            'has_promise' => null,
 | 
						|
        ];
 | 
						|
    }
 | 
						|
 | 
						|
    public function in(Activity $activity, ?Subactivity $subactivity = null): self
 | 
						|
    {
 | 
						|
        return $this->state([
 | 
						|
            'activity_id' => $activity->id,
 | 
						|
            'subactivity_id' => $subactivity ? $subactivity->id : null,
 | 
						|
        ]);
 | 
						|
    }
 | 
						|
 | 
						|
    public function missingAll(): self
 | 
						|
    {
 | 
						|
        return $this->state([
 | 
						|
            'activity_id' => null,
 | 
						|
            'subactivity_id' => null,
 | 
						|
        ]);
 | 
						|
    }
 | 
						|
 | 
						|
    public function invalidActivity(): self
 | 
						|
    {
 | 
						|
        return $this->state([
 | 
						|
            'activity_id' => 10000,
 | 
						|
            'subactivity_id' => null,
 | 
						|
        ]);
 | 
						|
    }
 | 
						|
 | 
						|
    public function unmatchingSubactivity(): self
 | 
						|
    {
 | 
						|
        return $this->state([
 | 
						|
            'activity_id' => Activity::factory()->create()->id,
 | 
						|
            'subactivity_id' => Subactivity::factory()->create()->id,
 | 
						|
        ]);
 | 
						|
    }
 | 
						|
 | 
						|
    public function promise(Carbon $value): self
 | 
						|
    {
 | 
						|
        return $this->state([
 | 
						|
            'promised_at' => $value->format('Y-m-d'),
 | 
						|
        ]);
 | 
						|
    }
 | 
						|
 | 
						|
    public function group(Group $group): self
 | 
						|
    {
 | 
						|
        return $this->state(['group_id' => $group->id]);
 | 
						|
    }
 | 
						|
}
 |