BodyParameterTest.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. /**
  3. * File BodyParameterTest.php
  4. *
  5. * @author Edward Pfremmer <epfremme@nerdery.com>
  6. */
  7. namespace Epfremme\Swagger\Tests\Entity\Parameters;
  8. use Epfremme\Swagger\Entity\Parameters\AbstractParameter;
  9. use Epfremme\Swagger\Entity\Parameters\BodyParameter;
  10. use Epfremme\Swagger\Entity\Schemas\ObjectSchema;
  11. use Epfremme\Swagger\Tests\Mixin\SerializerContextTrait;
  12. /**
  13. * Class BodyParameterTest
  14. *
  15. * @package Epfremme\Swagger
  16. * @subpackage Tests\Entity\Parameters
  17. */
  18. class BodyParameterTest extends \PHPUnit_Framework_TestCase
  19. {
  20. use SerializerContextTrait;
  21. /**
  22. * @var BodyParameter
  23. */
  24. protected $bodyParameter;
  25. /**
  26. * {@inheritdoc}
  27. */
  28. protected function setUp()
  29. {
  30. $this->bodyParameter = new BodyParameter();
  31. }
  32. /**
  33. * @covers Epfremme\Swagger\Entity\Parameters\BodyParameter::getSchema
  34. * @covers Epfremme\Swagger\Entity\Parameters\BodyParameter::setSchema
  35. */
  36. public function testSchema()
  37. {
  38. $schema = new ObjectSchema();
  39. $this->assertClassHasAttribute('schema', BodyParameter::class);
  40. $this->assertInstanceOf(BodyParameter::class, $this->bodyParameter->setSchema($schema));
  41. $this->assertAttributeInstanceOf(ObjectSchema::class, 'schema', $this->bodyParameter);
  42. $this->assertAttributeEquals($schema, 'schema', $this->bodyParameter);
  43. $this->assertEquals($schema, $this->bodyParameter->getSchema());
  44. }
  45. /**
  46. * @covers Epfremme\Swagger\Entity\Parameters\BodyParameter
  47. */
  48. public function testSerialization()
  49. {
  50. $data = json_encode([
  51. 'in' => AbstractParameter::IN_BODY,
  52. 'name' => 'foo',
  53. 'description' => 'bar',
  54. 'required' => false,
  55. 'schema' => [
  56. 'type' => 'string'
  57. ]
  58. ]);
  59. $parameter = $this->getSerializer()->deserialize($data, AbstractParameter::class, 'json');
  60. $this->assertInstanceOf(BodyParameter::class, $parameter);
  61. $this->assertAttributeEquals('body', 'in', $parameter);
  62. $this->assertAttributeEquals('foo', 'name', $parameter);
  63. $this->assertAttributeEquals('bar', 'description', $parameter);
  64. $this->assertAttributeEquals(false, 'required', $parameter);
  65. $json = $this->getSerializer()->serialize($parameter, 'json');
  66. $this->assertJson($json);
  67. $this->assertJsonStringEqualsJsonString($data, $json);
  68. }
  69. }