1 | <?php |
||
15 | class ScalarTypeTest extends \PHPUnit_Framework_TestCase |
||
16 | { |
||
17 | |||
18 | public function testTypeName() |
||
19 | { |
||
20 | foreach (TypeMap::getScalarTypes() as $typeName) { |
||
21 | $className = 'Youshido\GraphQL\Type\Scalar\\' . ucfirst($typeName) . 'Type'; |
||
22 | /** @var TypeInterface $object */ |
||
23 | $object = new $className(); |
||
24 | $this->assertEquals(ucfirst($typeName) == 'Datetime' ? 'DateTime' : ucfirst($typeName), $object->getName()); |
||
25 | } |
||
26 | } |
||
27 | |||
28 | public function testScalarPrimitives() |
||
29 | { |
||
30 | foreach (TypeMap::getScalarTypes() as $typeName) { |
||
31 | $className = 'Youshido\GraphQL\Type\Scalar\\' . (ucfirst($typeName) == 'Datetime' ? 'DateTime' : ucfirst($typeName)) . 'Type'; |
||
32 | /** @var TypeInterface $object */ |
||
33 | $object = new $className(); |
||
34 | $testDataMethod = 'get' . $typeName . 'TestData'; |
||
35 | $this->checkDescription($object); |
||
36 | |||
37 | foreach (call_user_func(['Youshido\Tests\DataProvider\TestScalarDataProvider', $testDataMethod]) as list($data, $serialized, $isValid)) { |
||
38 | |||
39 | $this->checkSerialization($object, $data, $serialized); |
||
40 | |||
41 | if ($isValid) { |
||
42 | $this->assertTrue($object->isValidValue($data), $typeName . ' validation for :' . serialize($data)); |
||
43 | } else { |
||
44 | $this->assertFalse($object->isValidValue($data), $typeName . ' validation for :' . serialize($data)); |
||
45 | } |
||
46 | } |
||
47 | } |
||
48 | } |
||
49 | |||
50 | private function checkDescription(TypeInterface $object) |
||
54 | |||
55 | private function checkSerialization(TypeInterface $object, $input, $expected) |
||
59 | |||
60 | } |
||
61 |