feat: CI/CD pipeline setup complete - Ansible playbooks updated, secrets configured, workflow ready
This commit is contained in:
@@ -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; }
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user