Source of file ReadOneTest.php
Size: 2,677 Bytes - Last Modified: 2021-12-23T10:31:47+00:00
/var/www/docs.ssmods.com/process/src/tests/Scaffolding/Scaffolders/CRUD/ReadOneTest.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 | <?php namespace SilverStripe\GraphQL\Tests\Scaffolding\Scaffolders\CRUD; use GraphQL\Type\Definition\IDType; use GraphQL\Type\Definition\NonNull; use GraphQL\Type\Definition\ObjectType; use GraphQL\Type\Definition\ResolveInfo; use GraphQL\Type\Definition\StringType; use SilverStripe\Dev\SapphireTest; use SilverStripe\GraphQL\Manager; use SilverStripe\GraphQL\Scaffolding\Scaffolders\CRUD\ReadOne; use SilverStripe\GraphQL\Tests\Fake\DataObjectFake; use SilverStripe\GraphQL\Tests\Fake\RestrictedDataObjectFake; use SilverStripe\Security\Member; class ReadOneTest extends SapphireTest { protected static $extra_dataobjects = [ DataObjectFake::class, RestrictedDataObjectFake::class, ]; protected function setUp(): void { parent::setUp(); // Make sure we're only testing the native features foreach (ReadOne::get_extensions() as $className) { ReadOne::remove_extension($className); } } public function testReadOneOperationResolver() { $read = new ReadOne(DataObjectFake::class); $manager = new Manager(); $manager->addType(new ObjectType(['name' => 'SilverStripeDataObjectFake']), 'SilverStripeDataObjectFake'); $read->addToManager($manager); $scaffold = $read->scaffold($manager); DataObjectFake::get()->removeAll(); $record = DataObjectFake::create(); $record->MyField = 'Test'; $ID = $record->write(); $response = $scaffold['resolve']( null, ['ID' => $ID], [ 'currentUser' => Member::create(), ], new ResolveInfo([]) ); $this->assertInstanceOf(DataObjectFake::class, $response); $this->assertEquals($ID, $response->ID); $this->assertEquals('Test', $response->MyField); } public function testReadOneOperationArgs() { $read = new ReadOne(DataObjectFake::class); $read->addArg('MyField', 'String'); $manager = new Manager(); $manager->addType(new ObjectType(['name' => 'SilverStripeDataObjectFake']), 'SilverStripeDataObjectFake'); $read->addToManager($manager); $scaffold = $read->scaffold($manager); // Check all args $args = $scaffold['args']; $this->assertEquals(['ID', 'MyField'], array_keys($args)); /** @var NonNull $idType */ $idType = $args['ID']['type']; $this->assertInstanceOf(IDType::class, $idType); // Check custom arg $this->assertArrayHasKey('MyField', $args); $this->assertInstanceOf(StringType::class, $args['MyField']['type']); } } |