First Commit

This commit is contained in:
marco
2026-09-01 10:46:29 -03:00
commit bf96b77e9c
10000 changed files with 3508600 additions and 0 deletions
+124
View File
@@ -0,0 +1,124 @@
<?php
namespace Tests\Unit;
use PHPUnit\Framework\TestCase;
use Illuminate\Database\Capsule\Manager as Capsule;
use Modules\Blog\Models\Category;
use Modules\Blog\Models\Post;
use Modules\Blog\Models\Comment;
class BlogTest extends TestCase
{
public function setUp(): void
{
parent::setUp();
$capsule = new Capsule;
$capsule->addConnection([
'driver' => 'sqlite',
'database' => ':memory:',
'prefix' => '',
]);
$capsule->setAsGlobal();
$capsule->bootEloquent();
// Create tables with correct primary keys for Eloquent models
Capsule::schema()->create('blog_categories', function ($table) {
$table->id('categories_id'); // Match $primaryKey = 'categories_id'
$table->string('categories_name');
$table->string('categories_slug');
$table->text('categories_description')->nullable();
$table->timestamps();
});
Capsule::schema()->create('blog_posts', function ($table) {
$table->id('posts_id'); // Match $primaryKey = 'posts_id'
$table->foreignId('posts_category_id')->nullable(); // Match $fillable 'posts_category_id'
$table->foreignId('posts_author_id')->nullable();
$table->integer('posts_bus_id')->default(1);
$table->string('posts_title');
$table->string('posts_slug');
$table->text('posts_content');
$table->enum('posts_status', ['draft', 'published'])->default('draft');
$table->string('posts_visibility')->default('public');
$table->timestamps();
});
Capsule::schema()->create('blog_comments', function ($table) {
$table->id('comments_id'); // Match $primaryKey = 'comments_id'
$table->foreignId('comments_post_id'); // Match $fillable 'comments_post_id'
$table->foreignId('comments_user_id')->nullable();
$table->string('comments_author_name');
$table->string('comments_author_email');
$table->text('comments_content');
$table->enum('comments_status', ['pending', 'approved', 'spam'])->default('pending');
$table->timestamps();
$table->softDeletes();
});
}
public function test_can_create_category()
{
$category = Category::create([
'categories_name' => 'Tech',
'categories_slug' => 'tech',
'categories_description' => 'Technology news'
]);
$this->assertNotNull($category->categories_id);
$this->assertEquals('Tech', $category->categories_name);
}
public function test_can_create_post_with_category()
{
$category = Category::create([
'categories_name' => 'Tech',
'categories_slug' => 'tech'
]);
$post = Post::create([
'posts_category_id' => $category->categories_id,
'posts_author_id' => 1,
'posts_title' => 'New PHP Version',
'posts_slug' => 'new-php-version',
'posts_content' => 'PHP 8.2 is out!',
'posts_status' => 'published'
]);
$this->assertNotNull($post->posts_id);
$this->assertEquals($category->categories_id, $post->posts_category_id);
$this->assertEquals('New PHP Version', $post->posts_title);
}
public function test_can_create_comment_on_post()
{
$category = Category::create([
'categories_name' => 'Tech',
'categories_slug' => 'tech'
]);
$post = Post::create([
'posts_category_id' => $category->categories_id,
'posts_author_id' => 1,
'posts_title' => 'New PHP Version',
'posts_slug' => 'new-php-version',
'posts_content' => 'PHP 8.2 is out!',
'posts_status' => 'published'
]);
$comment = Comment::create([
'comments_post_id' => $post->posts_id,
'comments_author_name' => 'John Doe',
'comments_author_email' => 'john@example.com',
'comments_content' => 'Great post!',
'comments_status' => 'approved'
]);
$this->assertNotNull($comment->comments_id);
$this->assertEquals($post->posts_id, $comment->comments_post_id);
$this->assertEquals('John Doe', $comment->comments_author_name);
}
}