Files
michaelschiemer/tests/debug/test-smartlink-deletion.php

77 lines
2.5 KiB
PHP

<?php
declare(strict_types=1);
require_once __DIR__ . '/../../vendor/autoload.php';
use App\Domain\SmartLink\Services\SmartLinkService;
use App\Domain\SmartLink\ValueObjects\{LinkType, LinkTitle, DestinationUrl, Platform};
use App\Framework\Core\AppBootstrapper;
echo "=== SmartLink Deletion Debug Test ===\n\n";
// Bootstrap application
$app = AppBootstrapper::bootstrap(__DIR__ . '/../..');
$container = $app->container;
// Get service
$service = $container->get(SmartLinkService::class);
try {
// Create link with destinations
echo "1. Creating SmartLink...\n";
$link = $service->createLink(
type: LinkType::RELEASE,
title: LinkTitle::fromString('Test Album')
);
echo " Created link: {$link->id->value}\n\n";
// Add destinations
echo "2. Adding destinations...\n";
$service->addDestination(
linkId: $link->id,
platform: Platform::SPOTIFY,
url: DestinationUrl::fromString('https://spotify.com/test')
);
$service->addDestination(
linkId: $link->id,
platform: Platform::APPLE_MUSIC,
url: DestinationUrl::fromString('https://apple.com/test')
);
echo " Added 2 destinations\n\n";
// Get destinations before deletion
echo "3. Getting destinations before deletion...\n";
$beforeDelete = $service->getDestinations($link->id);
echo " Found " . count($beforeDelete) . " destinations\n\n";
// Delete link
echo "4. Deleting link...\n";
$service->deleteLink($link->id);
echo " Link deleted\n\n";
// Try to find deleted link
echo "5. Trying to find deleted link (should throw exception)...\n";
try {
$deletedLink = $service->findById($link->id);
echo " ❌ ERROR: Link found when it should be deleted!\n";
} catch (\App\Domain\SmartLink\Exceptions\SmartLinkNotFoundException $e) {
echo " ✅ Correctly threw SmartLinkNotFoundException: {$e->getMessage()}\n";
} catch (\Throwable $e) {
echo " ❌ ERROR: Unexpected exception type: " . get_class($e) . "\n";
echo " Message: {$e->getMessage()}\n";
echo " Stack trace:\n";
echo $e->getTraceAsString() . "\n";
}
echo "\n✅ Test completed\n";
} catch (\Throwable $e) {
echo "❌ Test failed with exception:\n";
echo "Type: " . get_class($e) . "\n";
echo "Message: {$e->getMessage()}\n";
echo "File: {$e->getFile()}:{$e->getLine()}\n";
echo "\nStack trace:\n";
echo $e->getTraceAsString() . "\n";
exit(1);
}