app/tests/Unit/ScheduleRepositoryTest.php

43 lines
1.2 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;
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);
}
}