create(['status' => UserStatus::ACTIVE]); $suspendUser = Mockery::mock(SuspendUser::class); $purgeUser = Mockery::mock(PurgeUser::class); $suspendUser->shouldReceive('execute')->once()->with($user); $purgeUser->shouldNotReceive('execute'); $action = new RemoveUser($purgeUser, $suspendUser); $action->execute($user); expect(true)->toBeTrue(); }); test('it purges inactive user', function () { $user = User::factory()->create(['status' => UserStatus::INACTIVE]); $suspendUser = Mockery::mock(SuspendUser::class); $purgeUser = Mockery::mock(PurgeUser::class); $suspendUser->shouldNotReceive('execute'); $purgeUser->shouldReceive('execute')->once()->with($user); $action = new RemoveUser($purgeUser, $suspendUser); $action->execute($user); expect(true)->toBeTrue(); });