Skip to content

Commit 2b123bd

Browse files
committed
Add attribute tests
1 parent 2d5ec1f commit 2b123bd

25 files changed

+830
-0
lines changed

tests/Mapping/Reader/AttributeReaderTest.php

Lines changed: 488 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace TypeLang\Mapper\Tests\Mapping\Reader\Stub;
6+
7+
use TypeLang\Mapper\Mapping\DiscriminatorMap;
8+
9+
#[DiscriminatorMap(
10+
field: 'type',
11+
map: [
12+
'cat' => Cat::class,
13+
'dog' => Dog::class,
14+
]
15+
)]
16+
abstract class Animal
17+
{
18+
public string $name;
19+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace TypeLang\Mapper\Tests\Mapping\Reader\Stub;
6+
7+
use TypeLang\Mapper\Mapping\MapType;
8+
use TypeLang\Mapper\Mapping\NormalizeAsArray;
9+
10+
#[NormalizeAsArray]
11+
abstract class BaseClassWithAttributes
12+
{
13+
#[MapType('int')]
14+
public string $baseField;
15+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace TypeLang\Mapper\Tests\Mapping\Reader\Stub;
6+
7+
use TypeLang\Mapper\Mapping\DiscriminatorMap;
8+
9+
#[DiscriminatorMap(
10+
field: 'kind',
11+
map: [
12+
'a' => TypeA::class,
13+
'b' => TypeB::class,
14+
],
15+
otherwise: DefaultType::class
16+
)]
17+
abstract class BaseType {}

tests/Mapping/Reader/Stub/Cat.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace TypeLang\Mapper\Tests\Mapping\Reader\Stub;
6+
7+
class Cat extends Animal {}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace TypeLang\Mapper\Tests\Mapping\Reader\Stub;
6+
7+
use TypeLang\Mapper\Mapping\MapType;
8+
9+
final class ChildClassWithAttributes extends BaseClassWithAttributes
10+
{
11+
#[MapType('string')]
12+
public int $childField;
13+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace TypeLang\Mapper\Tests\Mapping\Reader\Stub;
6+
7+
use TypeLang\Mapper\Mapping\NormalizeAsArray;
8+
9+
#[NormalizeAsArray]
10+
final class ClassWithNormalizeAsArray
11+
{
12+
public int $id;
13+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace TypeLang\Mapper\Tests\Mapping\Reader\Stub;
6+
7+
use TypeLang\Mapper\Mapping\NormalizeAsArray;
8+
9+
#[NormalizeAsArray(enabled: false)]
10+
final class ClassWithNormalizeAsArrayDisabled
11+
{
12+
public int $id;
13+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace TypeLang\Mapper\Tests\Mapping\Reader\Stub;
6+
7+
use TypeLang\Mapper\Mapping\OnTypeError;
8+
9+
#[OnTypeError('Custom class type error')]
10+
final class ClassWithTypeError
11+
{
12+
public int $value;
13+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace TypeLang\Mapper\Tests\Mapping\Reader\Stub;
6+
7+
final class ClassWithoutAttributes
8+
{
9+
public string $name;
10+
}

0 commit comments

Comments
 (0)