* @category Class * @license https://www.gnu.org/licenses/lgpl-3.0.en.html GNU Lesser General Public License * @link www.splendidbear.org * @since 2026. 04. 21. */ #[TestDox('Profile Chart Data Dto')] class ProfileChartDataDtoTest extends TestCase { #[Test] #[TestDox('Json serialize returns all properties')] public function jsonSerializeReturnsAllProperties(): void { $months = ['Jan', 'Feb', 'Mar']; $wins = [5, 8, 10]; $losses = [2, 3, 4]; $draws = [1, 0, 1]; $recentGames = [ ['id' => 1, 'result' => 'win'], ['id' => 2, 'result' => 'loss'], ]; $dto = new ProfileChartDataDto( months: $months, wins: $wins, losses: $losses, draws: $draws, pieWins: 23, pieLosses: 9, pieDraws: 2, recentGames: $recentGames, ); $json = $dto->jsonSerialize(); $this->assertSame($months, $json['months']); $this->assertSame($wins, $json['wins']); $this->assertSame($losses, $json['losses']); $this->assertSame($draws, $json['draws']); $this->assertSame(23, $json['pieWins']); $this->assertSame(9, $json['pieLosses']); $this->assertSame(2, $json['pieDraws']); $this->assertSame($recentGames, $json['recentGames']); } #[Test] #[TestDox('Constructor with empty arrays')] public function constructorWithEmptyArrays(): void { $dto = new ProfileChartDataDto( months: [], wins: [], losses: [], draws: [], pieWins: 0, pieLosses: 0, pieDraws: 0, recentGames: [], ); $json = $dto->jsonSerialize(); $this->assertSame([], $json['months']); $this->assertSame([], $json['wins']); $this->assertSame([], $json['recentGames']); $this->assertSame(0, $json['pieWins']); } }