49 lines
1.3 KiB
PHP
49 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace Tests\Unit;
|
|
|
|
use App\Models\Schedule;
|
|
use DishPlanner\Schedule\Repositories\ScheduleRepository;
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
use Illuminate\Support\Carbon;
|
|
use Tests\TestCase;
|
|
use Tests\Traits\HasPlanner;
|
|
|
|
class ScheduleRepositoryTest extends TestCase
|
|
{
|
|
use HasPlanner;
|
|
use RefreshDatabase;
|
|
|
|
protected function setUp(): void
|
|
{
|
|
parent::setUp();
|
|
$this->setUpHasPlanner();
|
|
}
|
|
|
|
public function test_find_or_create_finds_existing_model(): void
|
|
{
|
|
$planner = $this->planner;
|
|
$date = Carbon::parse(fake()->date);
|
|
Schedule::factory()->planner($planner)->date($date)->create();
|
|
|
|
$this->assertDatabaseCount(Schedule::class, 1);
|
|
|
|
$schedule = (new ScheduleRepository())->findOrCreate($planner, $date);
|
|
|
|
$this->assertDatabaseCount(Schedule::class, 1);
|
|
$this->assertEquals($date, $schedule->date);
|
|
}
|
|
|
|
public function test_find_or_create_creates_new_schedule_for_date(): void
|
|
{
|
|
$planner = $this->planner;
|
|
$date = Carbon::parse(fake()->date);
|
|
|
|
$this->assertDatabaseEmpty(Schedule::class);
|
|
|
|
$schedule = (new ScheduleRepository())->findOrCreate($planner, $date);
|
|
|
|
$this->assertDatabaseCount(Schedule::class, 1);
|
|
$this->assertEquals($date, $schedule->date);
|
|
}
|
|
}
|