7 changed files with 62 additions and 3 deletions
			
			
		@ -0,0 +1,10 @@ | 
				
			|||||
 | 
					<phpunit | 
				
			||||
 | 
					    colors="true" | 
				
			||||
 | 
					    bootstrap="tests/bootstrap.php" | 
				
			||||
 | 
					    > | 
				
			||||
 | 
					    <testsuites> | 
				
			||||
 | 
					        <testsuite name="Darksparrow/AuxiliumSchemaBuilder Tests"> | 
				
			||||
 | 
					            <directory>tests</directory> | 
				
			||||
 | 
					        </testsuite> | 
				
			||||
 | 
					    </testsuites> | 
				
			||||
 | 
					</phpunit> | 
				
			||||
@ -0,0 +1,24 @@ | 
				
			|||||
 | 
					<?php | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					namespace Darksparrow\AuxiliumSchemaBuilder\Utilities; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					use Darksparrow\AuxiliumSchemaBuilder\Attributes\SchemaDocument; | 
				
			||||
 | 
					use ReflectionClass; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					class URLHandling | 
				
			||||
 | 
					{ | 
				
			||||
 | 
					    public static string $URLBase = "https://schemas.auxiliumsoftware.co.uk/v1/"; | 
				
			||||
 | 
					    public static function GetURLForSchema(string $targetSchemaClassName): string | 
				
			||||
 | 
					    { | 
				
			||||
 | 
					        $reflection = new ReflectionClass(new $targetSchemaClassName()); | 
				
			||||
 | 
					        foreach($reflection->getAttributes() as $attribute) | 
				
			||||
 | 
					        { | 
				
			||||
 | 
					            if($attribute->getName() === SchemaDocument::class) | 
				
			||||
 | 
					            { | 
				
			||||
 | 
					                $name = $attribute->getArguments()["Name"]; | 
				
			||||
 | 
					                return self::$URLBase . $name . ".json"; | 
				
			||||
 | 
					            } | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					        die(); | 
				
			||||
 | 
					    } | 
				
			||||
 | 
					} | 
				
			||||
@ -0,0 +1,20 @@ | 
				
			|||||
 | 
					<?php | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					require_once __DIR__ . "/../examples/Schemas/Message.php"; | 
				
			||||
 | 
					require_once __DIR__ . "/../examples/Schemas/Organisation.php"; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					use Darksparrow\AuxiliumSchemaBuilder\Examples\SchemaBuilder\Schemas\Message; | 
				
			||||
 | 
					use Darksparrow\AuxiliumSchemaBuilder\Utilities\URLHandling; | 
				
			||||
 | 
					use PHPUnit\Framework\TestCase; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					final class SchemaURITest extends TestCase | 
				
			||||
 | 
					{ | 
				
			||||
 | 
					    public function test0() | 
				
			||||
 | 
					    { | 
				
			||||
 | 
					        URLHandling::$URLBase = "https://schemas.auxiliumsoftware.co.uk/v1/"; | 
				
			||||
 | 
					        self::assertEquals( | 
				
			||||
 | 
					            expected: "https://schemas.auxiliumsoftware.co.uk/v1/message.json", | 
				
			||||
 | 
					            actual: URLHandling::GetURLForSchema(Message::class), | 
				
			||||
 | 
					        ); | 
				
			||||
 | 
					    } | 
				
			||||
 | 
					} | 
				
			||||
@ -0,0 +1,3 @@ | 
				
			|||||
 | 
					<?php | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					namespace tests; | 
				
			||||
					Loading…
					
					
				
		Reference in new issue