new: pkg: add test cases to back-end w/ real database connection in it #10
This commit is contained in:
89
tests/Dto/ProfileChartDataDtoTest.php
Normal file
89
tests/Dto/ProfileChartDataDtoTest.php
Normal file
@@ -0,0 +1,89 @@
|
||||
<?php declare(strict_types=1);
|
||||
/**
|
||||
* This file is part of the SplendidBear Websites' projects.
|
||||
*
|
||||
* Copyright (c) 2026 @ www.splendidbear.org
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace App\Tests\Dto;
|
||||
|
||||
use App\Dto\ProfileChartDataDto;
|
||||
use PHPUnit\Framework\Attributes\Test;
|
||||
use PHPUnit\Framework\Attributes\TestDox;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
/**
|
||||
* Class ProfileChartDataDtoTest
|
||||
*
|
||||
* @package App\Tests\Dto
|
||||
* @author Lang <https://www.splendidbear.org>
|
||||
* @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']);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user