forked from spatie/data-transfer-object
/
ImmutableTest.php
42 lines (32 loc) · 1.08 KB
/
ImmutableTest.php
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
<?php
namespace Spatie\DataTransferObject\Tests;
use Spatie\DataTransferObject\DataTransferObjectError;
use Spatie\DataTransferObject\Tests\TestClasses\TestDataTransferObject;
use Spatie\DataTransferObject\Tests\TestClasses\NullableTestDataTransferObject;
class ImmutableTest extends TestCase
{
/** @test */
public function immutable_values_cannot_be_overwritten()
{
$dto = TestDataTransferObject::immutable([
'testProperty' => 1,
]);
$this->assertEquals(1, $dto->testProperty);
$this->expectException(DataTransferObjectError::class);
$dto->testProperty = 2;
}
/** @test */
public function method_calls_are_proxied()
{
$dto = TestDataTransferObject::immutable([
'testProperty' => 1,
]);
$this->assertEquals(['testProperty' => 1], $dto->toArray());
}
/** @test */
public function passing_parameters_is_not_required()
{
$dto = NullableTestDataTransferObject::immutable();
$this->assertEquals(['foo' => 'abc', 'bar' => null], $dto->toArray());
}
}