app/backend/tests/Unit/UpdateScheduledUserDishActionTest.php
2025-10-13 14:58:50 +02:00

35 lines
1.3 KiB
PHP

<?php
namespace Tests\Unit;
use App\Models\Dish;
use App\Models\Planner;
use App\Models\Schedule;
use App\Models\ScheduledUserDish;
use App\Models\User;
use App\Models\UserDish;
use DishPlanner\ScheduledUserDish\Actions\UpdateScheduledUserDishAction;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
class UpdateScheduledUserDishActionTest extends TestCase
{
use RefreshDatabase;
public function test_dish_of_scheduled_user_dish_can_be_updated(): void
{
$planner = Planner::factory()->create();
$user = User::factory()->planner($planner)->create();
$dish = Dish::factory()->planner($planner)->create();
$otherDish = Dish::factory()->planner($planner)->create();
$userDish = UserDish::factory()->user($user)->dish($dish)->create();
$otherUserDish = UserDish::factory()->user($user)->dish($otherDish)->create();
$schedule = Schedule::factory()->planner($planner)->create();
$scheduledUserDish = ScheduledUserDish::factory()->schedule($schedule)->userDish($userDish)->create();
(new UpdateScheduledUserDishAction())->execute($scheduledUserDish, $otherUserDish);
$scheduledUserDish->refresh();
$this->assertEquals($otherUserDish->id, $scheduledUserDish->user_dish_id);
}
}