Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
30 / 30
n/a
0 / 0
CRAP
n/a
0 / 0
1<?php
2
3// ╔════════════════════════════════════════════════════════════╗
4// ║ MIT Licence (#Expat) - https://opensource.org/licenses/MIT ║
5// ║ Copyright 2026 Frederic Poeydomenge <dyno@phexium.com>     ║
6// ╚════════════════════════════════════════════════════════════╝
7
8declare(strict_types=1);
9
10pest()->group('integration');
11
12use Tests\Phexium\Component\Support\PdoRegistry;
13
14describe('Registration', function (): void {
15    it('initializes Sqlite database with test schema', function (): void {
16        PdoRegistry::initializeSqlite(false);
17        $pdo = PdoRegistry::getConnection();
18        expect($pdo)->toBeInstanceOf(PDO::class);
19
20        $sql = "SELECT name FROM sqlite_master WHERE type='table' AND name='sample'";
21        $result = $pdo->query($sql);
22        expect($result->fetchColumn())->toBe('sample');
23
24        PdoRegistry::cleanupSqlite();
25    });
26
27    it('initializes Mysql database with test schema', function (): void {
28        $dbName = PdoRegistry::initializeMysql(false);
29        $pdo = PdoRegistry::getConnection();
30        expect($pdo)->toBeInstanceOf(PDO::class);
31
32        $sql = "SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='sample'";
33        $result = $pdo->query($sql);
34        expect($result->fetchColumn())->toBe('sample');
35
36        PdoRegistry::cleanupMysql($dbName);
37    });
38
39    it('initializes Postgresql database with test schema', function (): void {
40        $dbName = PdoRegistry::initializePostgresql(false);
41        $pdo = PdoRegistry::getConnection();
42        expect($pdo)->toBeInstanceOf(PDO::class);
43
44        $sql = "SELECT tablename FROM pg_tables WHERE schemaname='public' AND tablename='sample'";
45        $result = $pdo->query($sql);
46        expect($result->fetchColumn())->toBe('sample');
47
48        PdoRegistry::cleanupPostgresql($dbName);
49    });
50});