36 lines
1.3 KiB
PHP
36 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);
|
||
|
|
}
|
||
|
|
}
|