feat: CI/CD pipeline setup complete - Ansible playbooks updated, secrets configured, workflow ready

This commit is contained in:
2025-10-31 01:39:24 +01:00
parent 55c04e4fd0
commit e26eb2aa12
601 changed files with 44184 additions and 32477 deletions

View File

@@ -2,35 +2,48 @@
declare(strict_types=1);
use App\Framework\Cache\Driver\InMemoryCache;
use App\Framework\Cache\GeneralCache;
use App\Framework\Core\ValueObjects\Byte;
use App\Framework\Filesystem\InMemoryStorage;
use App\Framework\Http\HttpRequest;
use App\Framework\Http\Responses\JsonResponse;
use App\Framework\LiveComponents\Controllers\ChunkedUploadController;
use App\Framework\LiveComponents\Services\CacheUploadSessionStore;
use App\Framework\LiveComponents\Services\ChunkAssembler;
use App\Framework\LiveComponents\Services\ChunkedUploadManager;
use App\Framework\LiveComponents\Services\IntegrityValidator;
use App\Framework\LiveComponents\Services\UploadProgressTracker;
use App\Framework\LiveComponents\Services\UploadProgressTrackerInterface;
use App\Framework\LiveComponents\Services\UploadSessionIdGenerator;
use App\Framework\LiveComponents\Services\UploadSessionStore;
use App\Framework\LiveComponents\ValueObjects\ChunkHash;
use App\Framework\LiveComponents\ValueObjects\UploadSessionId;
use App\Framework\Random\SecureRandomGenerator;
use App\Framework\Router\Result\Status;
use App\Framework\Serializer\Php\PhpSerializer;
beforeEach(function () {
// Setup dependencies
$this->sessionIdGenerator = new UploadSessionIdGenerator();
$this->sessionStore = new UploadSessionStore();
$this->integrityValidator = new IntegrityValidator();
$this->chunkAssembler = new ChunkAssembler();
$randomGenerator = new SecureRandomGenerator();
$this->sessionIdGenerator = new UploadSessionIdGenerator($randomGenerator);
// Setup cache for session store
$inMemoryCache = new InMemoryCache();
$serializer = new PhpSerializer();
$cache = new GeneralCache($inMemoryCache, $serializer);
$this->sessionStore = new CacheUploadSessionStore($cache);
$this->fileStorage = new InMemoryStorage();
$this->integrityValidator = new IntegrityValidator();
$this->chunkAssembler = new ChunkAssembler($this->fileStorage);
// Mock progress tracker (no SSE in tests)
$this->progressTracker = new class {
public function broadcastInitialized($session, $userId): void {}
public function broadcastChunkUploaded($session, $userId): void {}
public function broadcastCompleted($session, $userId): void {}
public function broadcastAborted($sessionId, $userId, $reason): void {}
$this->progressTracker = new class implements UploadProgressTrackerInterface {
public function broadcastInitialized($session, $userId): int { return 0; }
public function broadcastChunkUploaded($session, $userId): int { return 0; }
public function broadcastCompleted($session, $userId): int { return 0; }
public function broadcastAborted($sessionId, $userId, $reason = 'User cancelled'): int { return 0; }
public function broadcastError($sessionId, $userId, $error): int { return 0; }
public function broadcastQuarantineStatus($session, $userId): int { return 0; }
public function getProgress($sessionId): ?array { return null; }
};