IntegerHeaderTest.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. /**
  3. * File IntegerHeaderTest.php
  4. *
  5. * @author Edward Pfremmer <epfremme@nerdery.com>
  6. */
  7. namespace Epfremme\Swagger\Tests\Entity\Headers;
  8. use Epfremme\Swagger\Entity\Headers\AbstractHeader;
  9. use Epfremme\Swagger\Entity\Headers\IntegerHeader;
  10. use Epfremme\Swagger\Tests\Mixin\SerializerContextTrait;
  11. /**
  12. * Class IntegerHeaderTest
  13. *
  14. * @package Epfremme\Swagger
  15. * @subpackage Tests\Entity\Headers
  16. */
  17. class IntegerHeaderTest extends \PHPUnit_Framework_TestCase
  18. {
  19. use SerializerContextTrait;
  20. /**
  21. * @var IntegerHeader
  22. */
  23. protected $integerHeader;
  24. /**
  25. * {@inheritdoc}
  26. */
  27. protected function setUp()
  28. {
  29. $this->integerHeader = new IntegerHeader();
  30. }
  31. /**
  32. * @covers Epfremme\Swagger\Entity\Headers\IntegerHeader::getType
  33. */
  34. public function testType()
  35. {
  36. $this->assertNotEmpty($this->integerHeader->getType());
  37. $this->assertEquals(IntegerHeader::INTEGER_TYPE, $this->integerHeader->getType());
  38. }
  39. /**
  40. * @covers Epfremme\Swagger\Entity\Headers\IntegerHeader
  41. */
  42. public function testSerialization()
  43. {
  44. $data = json_encode([
  45. 'type' => IntegerHeader::INTEGER_TYPE,
  46. 'format' => 'foo',
  47. 'description' => 'bar',
  48. 'default' => 'baz',
  49. ]);
  50. $schema = $this->getSerializer()->deserialize($data, AbstractHeader::class, 'json');
  51. $this->assertInstanceOf(IntegerHeader::class, $schema);
  52. $this->assertAttributeEquals('foo', 'format', $schema);
  53. $this->assertAttributeEquals('bar', 'description', $schema);
  54. $this->assertAttributeEquals('baz', 'default', $schema);
  55. $json = $this->getSerializer()->serialize($schema, 'json');
  56. $this->assertJson($json);
  57. $this->assertJsonStringEqualsJsonString($data, $json);
  58. }
  59. }