Наследование: extends Youshido\GraphQL\Config\AbstractConfig
Пример #1
0
 public function testMethods()
 {
     $name = 'Test';
     $rules = ['name' => ['type' => TypeService::TYPE_ANY, 'required' => true], 'resolve' => ['type' => TypeService::TYPE_CALLABLE, 'final' => true]];
     $config = new TestConfig(['name' => $name]);
     $this->assertEquals($config->getName(), $name);
     $this->assertEquals($config->get('name'), $name);
     $this->assertEquals($config->get('non existing key'), null);
     $this->assertEquals($config->set('name', 'StrangeName'), $config);
     $this->assertEquals($config->get('name'), 'StrangeName');
     $this->assertEquals($config->get('non existing', 'default'), 'default');
     $this->assertEquals($config->isName(), 'StrangeName');
     $this->assertEquals($config->setName('StrangeName 2'), $config);
     $config->set('var', 'value');
     $this->assertEquals($config->getVar(), 'value');
     $this->assertEquals($config->getRules(), $rules);
     $this->assertEquals($config->getContextRules(), $rules);
     $this->assertNull($config->getResolveFunction());
     $object = new ObjectType(['name' => 'TestObject', 'fields' => ['id' => ['type' => new IntType()]]]);
     $finalConfig = new TestConfig(['name' => $name . 'final', 'resolve' => function () {
         return [];
     }], $object, true);
     $this->assertEquals($finalConfig->getType(), null);
     $rules['resolve']['required'] = true;
     $this->assertEquals($finalConfig->getContextRules(), $rules);
     $this->assertNotNull($finalConfig->getResolveFunction());
     $configExtraFields = new TestConfigExtraFields(['name' => 'Test', 'extraField' => 'extraValue']);
     $this->assertEquals('extraValue', $configExtraFields->get('extraField'));
 }