Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<?php
// Inclusion de la classe ArrayPieceSquadro et de ses dépendances
require_once 'ArrayPieceSquadro.php';
require_once 'PieceSquadro.php';
/**
* Classe de test pour ArrayPieceSquadro.
*
* Cette classe contient des méthodes permettant de tester les fonctionnalités
* de ArrayPieceSquadro, notamment l'ajout, la suppression, l'accès par tableau,
* la conversion en JSON et la manipulation générale.
*/
class ArrayPieceSquadroTest {
/**
* Teste l'ajout de pièces à la collection.
*
* Vérifie que les pièces ajoutées sont présentes dans la collection.
*
* @return void
*/
public function testAdd() {
$collection = new ArrayPieceSquadro();
$piece1 = PieceSquadro::initNoirNord();
$piece2 = PieceSquadro::initBlancEst();
$collection->add($piece1);
$collection->add($piece2);
echo "Test Add:\n";
echo "Nombre de pièces: " . count($collection) . "\n";
echo "Pièces: " . $collection . "\n\n";
}
/**
* Teste la suppression d'une pièce par index.
*
* Vérifie que la pièce est correctement supprimée de la collection.
*
* @return void
*/
public function testRemove() {
$collection = new ArrayPieceSquadro();
$piece1 = PieceSquadro::initNoirNord();
$piece2 = PieceSquadro::initBlancEst();
$collection->add($piece1);
$collection->add($piece2);
$collection->remove(0);
echo "Test Remove:\n";
echo "Nombre de pièces après suppression: " . count($collection) . "\n";
echo "Pièces restantes: " . $collection . "\n\n";
}
/**
* Teste l'accès par tableau (ArrayAccess).
*
* Vérifie que l'accès et la modification des pièces par index fonctionnent.
*
* @return void
*/
public function testArrayAccess() {
$collection = new ArrayPieceSquadro();
$piece1 = PieceSquadro::initNoirNord();
$piece2 = PieceSquadro::initBlancEst();
$collection[] = $piece1;
$collection[] = $piece2;
echo "Test ArrayAccess:\n";
echo "Pièce à l'index 0: " . $collection[0] . "\n";
echo "Pièce à l'index 1: " . $collection[1] . "\n";
$collection[0] = PieceSquadro::initBlancOuest();
echo "Modification de l'index 0: " . $collection[0] . "\n\n";
}
/**
* Teste la conversion de la collection en chaîne de caractères.
*
* Vérifie que __toString retourne une représentation correcte.
*
* @return void
*/
public function testToString() {
$collection = new ArrayPieceSquadro();
$piece1 = PieceSquadro::initNoirNord();
$piece2 = PieceSquadro::initBlancEst();
$collection->add($piece1);
$collection->add($piece2);
echo "Test ToString:\n";
echo $collection . "\n";
}
/**
* Teste la conversion en JSON et la reconstruction depuis JSON.
*
* Vérifie que toJson et fromJson fonctionnent correctement.
*
* @return void
*/
public function testJsonConversion() {
$collection = new ArrayPieceSquadro();
$piece1 = PieceSquadro::initNoirNord();
$piece2 = PieceSquadro::initBlancEst();
$collection->add($piece1);
$collection->add($piece2);
$json = $collection->toJson();
$restoredCollection = ArrayPieceSquadro::fromJson($json);
echo "Test JsonConversion:\n";
echo "JSON: $json\n";
echo "Collection restaurée:\n" . $restoredCollection . "\n\n";
}
/**
* Teste l'implémentation de Countable.
*
* Vérifie que count() retourne le bon nombre de pièces.
*
* @return void
*/
public function testCountable() {
$collection = new ArrayPieceSquadro();
$piece1 = PieceSquadro::initNoirNord();
$piece2 = PieceSquadro::initBlancEst();
$collection->add($piece1);
$collection->add($piece2);
echo "Test Countable:\n";
echo "Nombre de pièces: " . count($collection) . "\n\n";
}
}
// Exécution des tests
$test = new ArrayPieceSquadroTest();
$test->testAdd();
$test->testRemove();
$test->testArrayAccess();
$test->testToString();
$test->testJsonConversion();
$test->testCountable();
?>