SecurityDefinitionTest.php 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. <?php
  2. /**
  3. * File SecurityDefinitionTest.php
  4. *
  5. * @author Edward Pfremmer <epfremme@nerdery.com>
  6. */
  7. namespace Epfremme\Swagger\Tests\Entity;
  8. use Epfremme\Swagger\Entity\SecurityDefinition;
  9. use Epfremme\Swagger\Tests\Mixin\SerializerContextTrait;
  10. /**
  11. * Class SecurityDefinitionTest
  12. *
  13. * @package Epfremme\Swagger
  14. * @subpackage Tests\Entity
  15. */
  16. class SecurityDefinitionTest extends \PHPUnit_Framework_TestCase
  17. {
  18. use SerializerContextTrait;
  19. /**
  20. * @var SecurityDefinition
  21. */
  22. protected $securityDefinition;
  23. /**
  24. * {@inheritdoc}
  25. */
  26. protected function setUp()
  27. {
  28. $this->securityDefinition = new SecurityDefinition();
  29. }
  30. /**
  31. * @covers Epfremme\Swagger\Entity\SecurityDefinition::getType
  32. * @covers Epfremme\Swagger\Entity\SecurityDefinition::setType
  33. */
  34. public function testType()
  35. {
  36. $this->assertClassHasAttribute('type', SecurityDefinition::class);
  37. $this->assertInstanceOf(SecurityDefinition::class, $this->securityDefinition->setType('foo'));
  38. $this->assertAttributeEquals('foo', 'type', $this->securityDefinition);
  39. $this->assertEquals('foo', $this->securityDefinition->getType());
  40. }
  41. /**
  42. * @covers Epfremme\Swagger\Entity\SecurityDefinition::getDescription
  43. * @covers Epfremme\Swagger\Entity\SecurityDefinition::setDescription
  44. */
  45. public function testDescription()
  46. {
  47. $this->assertClassHasAttribute('description', SecurityDefinition::class);
  48. $this->assertInstanceOf(SecurityDefinition::class, $this->securityDefinition->setDescription('foo'));
  49. $this->assertAttributeEquals('foo', 'description', $this->securityDefinition);
  50. $this->assertEquals('foo', $this->securityDefinition->getDescription());
  51. }
  52. /**
  53. * @covers Epfremme\Swagger\Entity\SecurityDefinition::getName
  54. * @covers Epfremme\Swagger\Entity\SecurityDefinition::setName
  55. */
  56. public function testName()
  57. {
  58. $this->assertClassHasAttribute('name', SecurityDefinition::class);
  59. $this->assertInstanceOf(SecurityDefinition::class, $this->securityDefinition->setName('foo'));
  60. $this->assertAttributeEquals('foo', 'name', $this->securityDefinition);
  61. $this->assertEquals('foo', $this->securityDefinition->getName());
  62. }
  63. /**
  64. * @covers Epfremme\Swagger\Entity\SecurityDefinition::getIn
  65. * @covers Epfremme\Swagger\Entity\SecurityDefinition::setIn
  66. */
  67. public function testIn()
  68. {
  69. $this->assertClassHasAttribute('in', SecurityDefinition::class);
  70. $this->assertInstanceOf(SecurityDefinition::class, $this->securityDefinition->setIn('foo'));
  71. $this->assertAttributeEquals('foo', 'in', $this->securityDefinition);
  72. $this->assertEquals('foo', $this->securityDefinition->getIn());
  73. }
  74. /**
  75. * @covers Epfremme\Swagger\Entity\SecurityDefinition::getFlow
  76. * @covers Epfremme\Swagger\Entity\SecurityDefinition::setFlow
  77. */
  78. public function testFlow()
  79. {
  80. $this->assertClassHasAttribute('flow', SecurityDefinition::class);
  81. $this->assertInstanceOf(SecurityDefinition::class, $this->securityDefinition->setFlow('foo'));
  82. $this->assertAttributeEquals('foo', 'flow', $this->securityDefinition);
  83. $this->assertEquals('foo', $this->securityDefinition->getFlow());
  84. }
  85. /**
  86. * @covers Epfremme\Swagger\Entity\SecurityDefinition::getAuthorizationUrl
  87. * @covers Epfremme\Swagger\Entity\SecurityDefinition::setAuthorizationUrl
  88. */
  89. public function testAuthorizationUrl()
  90. {
  91. $this->assertClassHasAttribute('authorizationUrl', SecurityDefinition::class);
  92. $this->assertInstanceOf(SecurityDefinition::class, $this->securityDefinition->setAuthorizationUrl('foo'));
  93. $this->assertAttributeEquals('foo', 'authorizationUrl', $this->securityDefinition);
  94. $this->assertEquals('foo', $this->securityDefinition->getAuthorizationUrl());
  95. }
  96. /**
  97. * @covers Epfremme\Swagger\Entity\SecurityDefinition::getTokenUrl
  98. * @covers Epfremme\Swagger\Entity\SecurityDefinition::setTokenUrl
  99. */
  100. public function testTokenUrl()
  101. {
  102. $this->assertClassHasAttribute('tokenUrl', SecurityDefinition::class);
  103. $this->assertInstanceOf(SecurityDefinition::class, $this->securityDefinition->setTokenUrl('foo'));
  104. $this->assertAttributeEquals('foo', 'tokenUrl', $this->securityDefinition);
  105. $this->assertEquals('foo', $this->securityDefinition->getTokenUrl());
  106. }
  107. /**
  108. * @covers Epfremme\Swagger\Entity\SecurityDefinition::getScopes
  109. * @covers Epfremme\Swagger\Entity\SecurityDefinition::setScopes
  110. */
  111. public function testScopes()
  112. {
  113. $scopes = ['foo', 'bar', 'baz'];
  114. $this->assertClassHasAttribute('scopes', SecurityDefinition::class);
  115. $this->assertInstanceOf(SecurityDefinition::class, $this->securityDefinition->setScopes($scopes));
  116. $this->assertAttributeInternalType('array', 'scopes', $this->securityDefinition);
  117. $this->assertAttributeEquals($scopes, 'scopes', $this->securityDefinition);
  118. $this->assertEquals($scopes, $this->securityDefinition->getScopes());
  119. }
  120. /**
  121. * @covers Epfremme\Swagger\Entity\SecurityDefinition
  122. */
  123. public function testSerialize()
  124. {
  125. $data = json_encode([
  126. 'type' => 'foo',
  127. 'description' => 'bar',
  128. 'name' => 'baz',
  129. 'in' => 'qux',
  130. 'flow' => 'quux',
  131. 'authorizationUrl' => 'corge',
  132. 'tokenUrl' => 'grault',
  133. 'scopes' => [
  134. 'foo',
  135. 'bar',
  136. 'baz'
  137. ],
  138. ]);
  139. $securityDefinition = $this->getSerializer()->deserialize($data, SecurityDefinition::class, 'json');
  140. $this->assertInstanceOf(SecurityDefinition::class, $securityDefinition);
  141. $this->assertAttributeEquals('foo', 'type', $securityDefinition);
  142. $this->assertAttributeEquals('bar', 'description', $securityDefinition);
  143. $this->assertAttributeEquals('baz', 'name', $securityDefinition);
  144. $this->assertAttributeEquals('qux', 'in', $securityDefinition);
  145. $this->assertAttributeEquals('quux', 'flow', $securityDefinition);
  146. $this->assertAttributeEquals('corge', 'authorizationUrl', $securityDefinition);
  147. $this->assertAttributeEquals('grault', 'tokenUrl', $securityDefinition);
  148. $this->assertAttributeEquals(['foo', 'bar', 'baz'], 'scopes', $securityDefinition);
  149. $json = $this->getSerializer()->serialize($securityDefinition, 'json');
  150. $this->assertJson($json);
  151. $this->assertJsonStringEqualsJsonString($data, $json);
  152. }
  153. }