Skip to content

Commit 856be46

Browse files
committed
Extracted bcmath transfer tests to separate tesuite to simplify tests setup
1 parent c24d623 commit 856be46

2 files changed

Lines changed: 84 additions & 79 deletions

File tree

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Picamator\Tests\Integration\TransferObject\Transfer;
6+
7+
use ArrayObject;
8+
use PHPUnit\Framework\Attributes\Group;
9+
use PHPUnit\Framework\Attributes\RequiresPhpExtension;
10+
use PHPUnit\Framework\Attributes\TestDox;
11+
use PHPUnit\Framework\Attributes\TestWith;
12+
use PHPUnit\Framework\TestCase;
13+
use Picamator\Tests\Integration\TransferObject\Helper\TransferGeneratorTrait;
14+
use Picamator\Tests\Integration\TransferObject\Transfer\Generated\BcMath\BcMathNumberTransfer;
15+
use Picamator\TransferObject\Transfer\Exception\DataAssertTransferException;
16+
17+
#[Group('transfer')]
18+
#[RequiresPhpExtension('bcmath')]
19+
class NumberTransferTest extends TestCase
20+
{
21+
use TransferGeneratorTrait;
22+
23+
private const string GENERATOR_CONFIG_PATH = __DIR__ . '/data/config/bcmath/generator.config.yml';
24+
25+
public static function setUpBeforeClass(): void
26+
{
27+
static::generateTransfersOrFail(self::GENERATOR_CONFIG_PATH);
28+
}
29+
30+
#[TestDox('Transformation transfer object BcMath fromArray with $number to toArray expecting $number')]
31+
#[TestWith(['12.123', '12.123'], 'Transformation from string to BcMath')]
32+
#[TestWith([12, '12'], 'Transformation from integer to BcMath')]
33+
#[TestWith([12.123, '12.123'], 'Transformation from float to BcMath')]
34+
public function testTransformationBcMathFromToArray(string|int|float $number, string $expected): void
35+
{
36+
// Arrange
37+
$numberTransfer = new BcMathNumberTransfer();
38+
39+
// Act
40+
$numberTransfer->fromArray([
41+
BcMathNumberTransfer::I_AM_NUMBER_PROP => $number,
42+
]);
43+
44+
$actual = $numberTransfer->toArray();
45+
46+
// Assert
47+
$this->assertSame($expected, $actual[BcMathNumberTransfer::I_AM_NUMBER_PROP]);
48+
}
49+
50+
#[TestDox('Transformation transfer object BcMath fromArray with invalid type should throw exception')]
51+
public function testTransformationBcMathFromToArrayWithInvalidTypeShouldThrowException(): void
52+
{
53+
// Arrange
54+
$numberTransfer = new BcMathNumberTransfer();
55+
56+
// Expect
57+
$this->expectException(DataAssertTransferException::class);
58+
59+
// Act
60+
$numberTransfer->fromArray([
61+
BcMathNumberTransfer::I_AM_NUMBER_PROP => new ArrayObject(),
62+
]);
63+
}
64+
65+
#[TestDox('Transformation transfer object fromArray() and toArray() with BcMath')]
66+
public function testTransformationBcMathFromToArrayWhereArrayHasBcMath(): void
67+
{
68+
// Arrange
69+
$numberTransfer = new BcMathNumberTransfer();
70+
71+
$expected = '12.123';
72+
$number = new \BcMath\Number($expected);
73+
74+
// Act
75+
$numberTransfer->fromArray([
76+
BcMathNumberTransfer::I_AM_NUMBER_PROP => $number,
77+
]);
78+
79+
$actual = $numberTransfer->toArray();
80+
81+
// Assert
82+
$this->assertSame($expected, $actual[BcMathNumberTransfer::I_AM_NUMBER_PROP]);
83+
}
84+
}

tests/integration/Transfer/TransferTest.php

Lines changed: 0 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,7 @@
77
use ArrayObject;
88
use Generator;
99
use PHPUnit\Framework\Attributes\DataProvider;
10-
use PHPUnit\Framework\Attributes\Depends;
1110
use PHPUnit\Framework\Attributes\Group;
12-
use PHPUnit\Framework\Attributes\RequiresPhpExtension;
1311
use PHPUnit\Framework\Attributes\TestDox;
1412
use PHPUnit\Framework\Attributes\TestDoxFormatter;
1513
use PHPUnit\Framework\Attributes\TestWith;
@@ -19,7 +17,6 @@
1917
use Picamator\Tests\Integration\TransferObject\Transfer\Enum\CountryEnum;
2018
use Picamator\Tests\Integration\TransferObject\Transfer\Enum\ImBackedEnum;
2119
use Picamator\Tests\Integration\TransferObject\Transfer\Enum\YesNoEnum;
22-
use Picamator\Tests\Integration\TransferObject\Transfer\Generated\BcMath\BcMathNumberTransfer;
2320
use Picamator\Tests\Integration\TransferObject\Transfer\Generated\EnumTransfer;
2421
use Picamator\Tests\Integration\TransferObject\Transfer\Generated\ItemCollectionTransfer;
2522
use Picamator\Tests\Integration\TransferObject\Transfer\Generated\ItemTransfer;
@@ -39,7 +36,6 @@ class TransferTest extends TestCase
3936
use TransferGeneratorTrait;
4037

4138
private const string GENERATOR_CONFIG_PATH = __DIR__ . '/data/config/generator.config.yml';
42-
private const string GENERATOR_BC_MATH_CONFIG_PATH = __DIR__ . '/data/config/bcmath/generator.config.yml';
4339

4440
public static function setUpBeforeClass(): void
4541
{
@@ -476,81 +472,6 @@ public function testTransferClone(): void
476472
$this->assertNotSame($itemCollectionTransfer->items[0], $clonedItemCollectionTransfer->items[0]);
477473
}
478474

479-
#[RequiresPhpExtension('bcmath')]
480-
#[TestDox('Generate transfer object BcMath')]
481-
public function testGenerateBcMathTransfer(): void
482-
{
483-
// Arrange
484-
static::generateTransfersOrFail(self::GENERATOR_BC_MATH_CONFIG_PATH);
485-
486-
// Act
487-
$numberTransfer = new BcMathNumberTransfer();
488-
489-
// Assert
490-
$this->assertNull($numberTransfer->iAmNumber);
491-
}
492-
493-
#[RequiresPhpExtension('bcmath')]
494-
#[Depends('testGenerateBcMathTransfer')]
495-
#[TestDox('Transformation transfer object BcMath fromArray with $number to toArray expecting $number')]
496-
#[TestWith(['12.123', '12.123'], 'Transformation from string to BcMath')]
497-
#[TestWith([12, '12'], 'Transformation from integer to BcMath')]
498-
#[TestWith([12.123, '12.123'], 'Transformation from float to BcMath')]
499-
public function testTransformationBcMathFromToArray(string|int|float $number, string $expected): void
500-
{
501-
// Arrange
502-
$numberTransfer = new BcMathNumberTransfer();
503-
504-
// Act
505-
$numberTransfer->fromArray([
506-
BcMathNumberTransfer::I_AM_NUMBER_PROP => $number,
507-
]);
508-
509-
$actual = $numberTransfer->toArray();
510-
511-
// Assert
512-
$this->assertSame($expected, $actual[BcMathNumberTransfer::I_AM_NUMBER_PROP]);
513-
}
514-
515-
#[RequiresPhpExtension('bcmath')]
516-
#[Depends('testGenerateBcMathTransfer')]
517-
#[TestDox('Transformation transfer object BcMath fromArray with invalid type should throw exception')]
518-
public function testTransformationBcMathFromToArrayWithInvalidTypeShouldThrowException(): void
519-
{
520-
// Arrange
521-
$numberTransfer = new BcMathNumberTransfer();
522-
523-
// Expect
524-
$this->expectException(DataAssertTransferException::class);
525-
526-
// Act
527-
$numberTransfer->fromArray([
528-
BcMathNumberTransfer::I_AM_NUMBER_PROP => new ArrayObject(),
529-
]);
530-
}
531-
532-
#[RequiresPhpExtension('bcmath')]
533-
#[Depends('testGenerateBcMathTransfer')]
534-
#[TestDox('Transformation transfer object fromArray() and toArray() with BcMath')]
535-
public function testTransformationBcMathFromToArrayWhereArrayHasBcMath(): void
536-
{
537-
// Arrange
538-
$numberTransfer = new BcMathNumberTransfer();
539-
540-
$expected = '12.123';
541-
$number = new \BcMath\Number($expected);
542-
543-
// Act
544-
$numberTransfer->fromArray([
545-
BcMathNumberTransfer::I_AM_NUMBER_PROP => $number,
546-
]);
547-
548-
$actual = $numberTransfer->toArray();
549-
550-
// Assert
551-
$this->assertSame($expected, $actual[BcMathNumberTransfer::I_AM_NUMBER_PROP]);
552-
}
553-
554475
#[TestDox('Symfony assert attribute')]
555476
public function testSymfonyAssertAttribute(): void
556477
{

0 commit comments

Comments
 (0)