HEX
Server: LiteSpeed
System: Linux server334.web-hosting.com 4.18.0-553.124.4.lve.el8.x86_64 #1 SMP Fri May 15 13:02:13 UTC 2026 x86_64
User: richfield (1256)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: /home/richfield/www/rich/vendor/cviebrock/eloquent-sluggable/tests/StaticTests.php
<?php namespace Cviebrock\EloquentSluggable\Tests;

use Cviebrock\EloquentSluggable\Services\SlugService;
use Cviebrock\EloquentSluggable\Tests\Models\Post;

/**
 * Class StaticTests
 *
 * @package Tests
 */
class StaticTests extends TestCase
{

    /**
     * Test that we can generate a slug statically.
     */
    public function testStaticSlugGenerator(): void
    {
        $slug = SlugService::createSlug(Post::class, 'slug', 'My Test Post');
        self::assertEquals('my-test-post', $slug);
    }

    /**
     * Test that we generate unique slugs in a static context.
     */
    public function testStaticSlugGeneratorWhenEntriesExist(): void
    {
        $post = Post::create(['title' => 'My Test Post']);
        self::assertEquals('my-test-post', $post->slug);

        $slug = SlugService::createSlug(Post::class, 'slug', 'My Test Post');
        self::assertEquals('my-test-post-2', $slug);
    }

    /**
     * Test that we can generate a slug statically with different configuration.
     */
    public function testStaticSlugGeneratorWithConfig(): void
    {
        $config = [
            'separator' => '.'
        ];
        $slug = SlugService::createSlug(Post::class, 'slug', 'My Test Post', $config);
        self::assertEquals('my.test.post', $slug);
    }

    /**
     * Test passing an invalid attribute to static method
     */
    public function testStaticSlugWithInvalidAttribute(): void
    {
        $this->expectException(\InvalidArgumentException::class);
        SlugService::createSlug(Post::class, 'foo', 'My Test Post');
    }
}