Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,13 @@
"psr-4": {
"Cspray\\AnnotatedTarget\\": "tests",
"Cspray\\AnnotatedTargetFixture\\": "fixture_src"
}
},
"files": [
"fixture_src/FunctionOnlyAttributeSingleFunction/foo.php",
"fixture_src/RepeatableFunctionOnlyAttributeSingleFunction/foo.php",
"fixture_src/FunctionParameterOnlyAttributeSingleFunction/foo.php",
"fixture_src/NonPhpFile/BarClass.txt"
]
},
"config": {
"allow-plugins": {
Expand Down
4 changes: 4 additions & 0 deletions fixture_src/ClassOnly.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,8 @@
#[Attribute(Attribute::TARGET_CLASS)]
final class ClassOnly {

public function __construct(
public readonly string $value
) {}

}
12 changes: 12 additions & 0 deletions fixture_src/ClassOnlyAttributeGroupSingleClass/FooClass.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?php declare(strict_types=1);

namespace Cspray\AnnotatedTargetFixture\ClassOnlyAttributeGroupSingleClass;

use Cspray\AnnotatedTargetFixture\ClassOnly;
use Cspray\AnnotatedTargetFixture\RepeatableClassOnly;
use Cspray\AnnotatedTargetFixture\RepeatablePropertyOnly;

#[ClassOnly('baz')]
#[RepeatableClassOnly('foo'), RepeatableClassOnly('bar')]
#[RepeatableClassOnly('qux')]
class FooClass {}
17 changes: 17 additions & 0 deletions fixture_src/ClassOnlyAttributeGroupSingleClassFixture.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php declare(strict_types=1);

namespace Cspray\AnnotatedTargetFixture;

use Cspray\Typiphy\ObjectType;
use function Cspray\Typiphy\objectType;

class ClassOnlyAttributeGroupSingleClassFixture implements Fixture {

public function getPath() : string {
return __DIR__ . '/ClassOnlyAttributeGroupSingleClass';
}

public function fooClass() : ObjectType {
return objectType(ClassOnlyAttributeGroupSingleClass\FooClass::class);
}
}
2 changes: 1 addition & 1 deletion fixture_src/ClassOnlyAttributeSingleClass/FooClass.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@

use Cspray\AnnotatedTargetFixture\ClassOnly;

#[ClassOnly]
#[ClassOnly('single-class-foobar')]
class FooClass {}
13 changes: 0 additions & 13 deletions fixture_src/ClassOnlyFixtures.php

This file was deleted.

10 changes: 10 additions & 0 deletions fixture_src/ConstantOnly.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php declare(strict_types=1);

namespace Cspray\AnnotatedTargetFixture;

#[\Attribute(\Attribute::TARGET_CLASS_CONSTANT)]
final class ConstantOnly {

public function __construct(public readonly string $value) {}

}
12 changes: 12 additions & 0 deletions fixture_src/ConstantOnlyAttributeGroupSingleClass/FooClass.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?php declare(strict_types=1);

namespace Cspray\AnnotatedTargetFixture\ConstantOnlyAttributeGroupSingleClass;

use Cspray\AnnotatedTargetFixture\ConstantOnly;

class FooClass {

#[ConstantOnly('getting the constant')]
private const BAR = 'baz';

}
18 changes: 18 additions & 0 deletions fixture_src/ConstantOnlyAttributeGroupSingleClassFixture.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?php declare(strict_types=1);

namespace Cspray\AnnotatedTargetFixture;

use Cspray\Typiphy\ObjectType;
use function Cspray\Typiphy\objectType;

final class ConstantOnlyAttributeGroupSingleClassFixture implements Fixture {

public function getPath() : string {
return __DIR__ . '/ConstantOnlyAttributeGroupSingleClass';
}

public function fooClass() : ObjectType {
return objectType(ConstantOnlyAttributeGroupSingleClass\FooClass::class);
}

}
81 changes: 81 additions & 0 deletions fixture_src/Fixtures.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
<?php declare(strict_types=1);

namespace Cspray\AnnotatedTargetFixture;

final class Fixtures {

private function __construct() {}

public static function classOnlyAttributeSingleClass() : ClassOnlyAttributeSingleClassFixture {
return new ClassOnlyAttributeSingleClassFixture();
}

public static function repeatableClassOnlyAttributeSingleClass() : RepeatableClassOnlyAttributeSingleFixture {
return new RepeatableClassOnlyAttributeSingleFixture();
}

public static function multipleDifferentClassOnlyAttributeSingleClass() : MultipleDifferentClassOnlyAttributeSingleClassFixture {
return new MultipleDifferentClassOnlyAttributeSingleClassFixture();
}

public static function propertyOnlyAttributeSingleClass() : PropertyOnlyAttributeSingleClassFixture {
return new PropertyOnlyAttributeSingleClassFixture();
}

public static function singleAttributeMultiplePropertiesSingleClass() : SingleAttributeMultiplePropertiesSingleClassFixture {
return new SingleAttributeMultiplePropertiesSingleClassFixture();
}

public static function repeatablePropertyOnlyAttributeSingleClass() : RepeatablePropertyOnlyAttributeSingleClassFixture {
return new RepeatablePropertyOnlyAttributeSingleClassFixture();
}

public static function classOnlyAttributeGroupSingleClass() : ClassOnlyAttributeGroupSingleClassFixture {
return new ClassOnlyAttributeGroupSingleClassFixture();
}

public static function constantOnlyAttributeGroupSingleClass() : ConstantOnlyAttributeGroupSingleClassFixture {
return new ConstantOnlyAttributeGroupSingleClassFixture();
}

public static function repeatableConstantOnlyAttributeSingleClass() : RepeatableConstantOnlyAttributeSingleClassFixture {
return new RepeatableConstantOnlyAttributeSingleClassFixture();
}

public static function singleAttributeMultipleConstantsSingleClass() : SingleAttributeMultipleConstantsSingleClassFixture {
return new SingleAttributeMultipleConstantsSingleClassFixture();
}

public static function methodOnlyAttributeSingleClass() : MethodOnlyAttributeSingleClassFixture {
return new MethodOnlyAttributeSingleClassFixture();
}

public static function repeatableMethodOnlyAttributeSingleClass() : RepeatableMethodOnlyAttributeSingleClassFixture {
return new RepeatableMethodOnlyAttributeSingleClassFixture();
}

public static function parameterOnlyAttributeSingleClass() : ParameterOnlyAttributeSingleClassFixture {
return new ParameterOnlyAttributeSingleClassFixture();
}

public static function repeatableParameterOnlyAttributeSingleClass() : RepeatableParameterOnlyAttributeSingleClassFixture {
return new RepeatableParameterOnlyAttributeSingleClassFixture();
}

public static function functionOnlyAttributeSingleFunction() : FunctionOnlyAttributeSingleFunctionFixture {
return new FunctionOnlyAttributeSingleFunctionFixture();
}

public static function repeatableFunctionOnlyAttributeSingleFunction() : RepeatableFunctionOnlyAttributeSingleFunctionFixture {
return new RepeatableFunctionOnlyAttributeSingleFunctionFixture();
}

public static function functionParameterOnlyAttributeSingleFunction() : FunctionParameterOnlyAttributeSingleFunctionFixture {
return new FunctionParameterOnlyAttributeSingleFunctionFixture();
}

public static function nonPhpFile() : NonPhpFileFixture {
return new NonPhpFileFixture();
}

}
10 changes: 10 additions & 0 deletions fixture_src/FunctionOnly.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php declare(strict_types=1);

namespace Cspray\AnnotatedTargetFixture;

#[\Attribute(\Attribute::TARGET_FUNCTION)]
final class FunctionOnly {

public function __construct(public readonly string $value) {}

}
10 changes: 10 additions & 0 deletions fixture_src/FunctionOnlyAttributeSingleFunction/foo.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php declare(strict_types=1);

namespace Cspray\AnnotatedTargetFixture\FunctionOnlyAttributeSingleFunction;

use Cspray\AnnotatedTargetFixture\FunctionOnly;

#[FunctionOnly('would a crazy person do this?')]
function yes() : void {

}
14 changes: 14 additions & 0 deletions fixture_src/FunctionOnlyAttributeSingleFunctionFixture.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?php declare(strict_types=1);

namespace Cspray\AnnotatedTargetFixture;

class FunctionOnlyAttributeSingleFunctionFixture implements Fixture {

public function getPath() : string {
return __DIR__ . '/FunctionOnlyAttributeSingleFunction';
}

public function fooFunction() : string {
return 'Cspray\\AnnotatedTargetFixture\\FunctionOnlyAttributeSingleFunction\\yes';
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?php declare(strict_types=1);

namespace Cspray\AnnotatedTargetFixture\FunctionParameterOnlyAttributeSingleFunction;

use Cspray\AnnotatedTargetFixture\ParameterOnly;

function withParam(
#[ParameterOnly('awesome')] string $param
) : void {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?php declare(strict_types=1);

namespace Cspray\AnnotatedTargetFixture;

final class FunctionParameterOnlyAttributeSingleFunctionFixture implements Fixture {

public function getPath() : string {
return __DIR__ . '/FunctionParameterOnlyAttributeSingleFunction';
}

public function fooFunction() : string {
return 'Cspray\\AnnotatedTargetFixture\\FunctionParameterOnlyAttributeSingleFunction\\withParam';
}
}
6 changes: 5 additions & 1 deletion fixture_src/MethodOnly.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,8 @@
use Attribute;

#[Attribute(Attribute::TARGET_METHOD)]
final class MethodOnly {}
final class MethodOnly {

public function __construct(public readonly string $value) {}

}
14 changes: 14 additions & 0 deletions fixture_src/MethodOnlyAttributeSingleClass/FooClass.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?php declare(strict_types=1);

namespace Cspray\AnnotatedTargetFixture\MethodOnlyAttributeSingleClass;

use Cspray\AnnotatedTargetFixture\MethodOnly;

class FooClass {

#[MethodOnly('is the coolest method')]
public function myMethod() : void {

}

}
17 changes: 17 additions & 0 deletions fixture_src/MethodOnlyAttributeSingleClassFixture.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php declare(strict_types=1);

namespace Cspray\AnnotatedTargetFixture;

use Cspray\Typiphy\ObjectType;
use function Cspray\Typiphy\objectType;

final class MethodOnlyAttributeSingleClassFixture implements Fixture {

public function getPath() : string {
return __DIR__ . '/MethodOnlyAttributeSingleClass';
}

public function fooClass() : ObjectType {
return objectType(MethodOnlyAttributeSingleClass\FooClass::class);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php declare(strict_types=1);

namespace Cspray\AnnotatedTargetFixture\MultipleDifferentClassOnlyAttributeSingleClass;

use Cspray\AnnotatedTargetFixture\ClassOnly;
use Cspray\AnnotatedTargetFixture\RepeatableClassOnly;

#[ClassOnly('foo')]
#[RepeatableClassOnly('bar')]
#[RepeatableClassOnly('baz')]
class FooClass {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php declare(strict_types=1);

namespace Cspray\AnnotatedTargetFixture;

use Cspray\Typiphy\ObjectType;
use function Cspray\Typiphy\objectType;

final class MultipleDifferentClassOnlyAttributeSingleClassFixture implements Fixture {

public function getPath() : string {
return __DIR__ . '/MultipleDifferentClassOnlyAttributeSingleClass';
}

public function fooClass() : ObjectType {
return objectType(MultipleDifferentClassOnlyAttributeSingleClass\FooClass::class);
}
}
10 changes: 10 additions & 0 deletions fixture_src/NonPhpFile/BarClass.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php declare(strict_types=1);

namespace Cspray\AnnotatedTargetFixture\NonPhpFile;

use Cspray\AnnotatedTargetFixture\ClassOnly;

#[ClassOnly('not present')]
class BarClass {

}
10 changes: 10 additions & 0 deletions fixture_src/NonPhpFile/FooClass.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php declare(strict_types=1);

namespace Cspray\AnnotatedTargetFixture\NonPhpFile;

use Cspray\AnnotatedTargetFixture\ClassOnly;

#[ClassOnly('the one')]
class FooClass {

}
17 changes: 17 additions & 0 deletions fixture_src/NonPhpFileFixture.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php declare(strict_types=1);

namespace Cspray\AnnotatedTargetFixture;

use Cspray\Typiphy\ObjectType;
use function Cspray\Typiphy\objectType;

class NonPhpFileFixture implements Fixture {

public function getPath() : string {
return __DIR__ . '/NonPhpFile';
}

public function fooClass() : ObjectType {
return objectType(NonPhpFile\FooClass::class);
}
}
Loading