Skip to content

Commit

Permalink
readonly subclass must also be declared readonly
Browse files Browse the repository at this point in the history
Signed-off-by: Nathanael Esayeas <nathanael.esayeas@protonmail.com>
  • Loading branch information
ghostwriter committed Aug 4, 2023
1 parent 5ed9464 commit 043aaf0
Show file tree
Hide file tree
Showing 5 changed files with 50 additions and 0 deletions.
@@ -0,0 +1,10 @@
<?php

namespace Mockery\Tests\Fixtures\PHP82\Subclass;

/**
* @see https://php.watch/versions/8.2/readonly-classes#subclass-readonly
*/
readonly class ReadonlySubclassMustAlsoBeDeclaredReadonlyChildInvalid extends ReadonlySubclassMustAlsoBeDeclaredReadonlyParentInvalid
{
}
@@ -0,0 +1,10 @@
<?php

namespace Mockery\Tests\Fixtures\PHP82\Subclass;

/**
* @see https://php.watch/versions/8.2/readonly-classes#subclass-readonly
*/
readonly class ReadonlySubclassMustAlsoBeDeclaredReadonlyChildValid extends ReadonlySubclassMustAlsoBeDeclaredReadonlyParentValid
{
}
@@ -0,0 +1,10 @@
<?php

namespace Mockery\Tests\Fixtures\PHP82\Subclass;

/**
* @see https://php.watch/versions/8.2/readonly-classes#subclass-readonly
*/
readonly class ReadonlySubclassMustAlsoBeDeclaredReadonlyParentInvalid
{
}
@@ -0,0 +1,10 @@
<?php

namespace Mockery\Tests\Fixtures\PHP82\Subclass;

/**
* @see https://php.watch/versions/8.2/readonly-classes#subclass-readonly
*/
readonly class ReadonlySubclassMustAlsoBeDeclaredReadonlyParentValid
{
}
10 changes: 10 additions & 0 deletions tests/Unit/PHP82/Php82LanguageFeaturesTest.php
Expand Up @@ -5,6 +5,8 @@
use Generator;
use Mockery\Adapter\Phpunit\MockeryTestCase;
use Mockery\Reflector;
use Mockery\Tests\Fixtures\PHP82\Subclass\ReadonlySubclassMustAlsoBeDeclaredReadonlyChildInvalid;
use Mockery\Tests\Fixtures\PHP82\Subclass\ReadonlySubclassMustAlsoBeDeclaredReadonlyChildValid;
use Mockery\Tests\Fixtures\PHP82\ReadOnlyClass;
use Mockery\Tests\Fixtures\PHP82\ReadOnlyClassAbstract;
use Mockery\Tests\Fixtures\PHP82\ReadOnlyClassFinal;
Expand Down Expand Up @@ -148,6 +150,14 @@ public function testMockUser(): void
{
self::assertSame(User::class, mock(User::class));
}
public function testReadonlySubclassMustAlsoBeDeclaredReadonlyInvalid(): void
{
self::assertSame(ReadonlySubclassMustAlsoBeDeclaredReadonlyChildInvalid::class, mock(ReadonlySubclassMustAlsoBeDeclaredReadonlyChildInvalid::class));
}
public function testReadonlySubclassMustAlsoBeDeclaredReadonlyValid(): void
{
self::assertSame(ReadonlySubclassMustAlsoBeDeclaredReadonlyChildValid::class, mock(ReadonlySubclassMustAlsoBeDeclaredReadonlyChildValid::class));
}

public function testMockReadonlyClassesMustNotUseAllowDynamicPropertiesAttribute(): void
{
Expand Down

0 comments on commit 043aaf0

Please sign in to comment.