AdditionalPropertiesTest.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. <?php
  2. namespace JsonSchema\Tests;
  3. use JsonSchema\Validator;
  4. class AdditionalPropertiesTest extends BaseTestCase
  5. {
  6. public function getInvalidTests()
  7. {
  8. return array(
  9. array(
  10. '{
  11. "prop":"1",
  12. "additionalProp":"2"
  13. }',
  14. '{
  15. "type":"object",
  16. "properties":{
  17. "prop":{"type":"string"}
  18. },
  19. "additionalProperties": false
  20. }',
  21. null,
  22. array(
  23. array(
  24. 'property' => '',
  25. 'message' => 'The property additionalProp is not defined and the definition does not allow additional properties'
  26. )
  27. )
  28. ),
  29. array(
  30. '{
  31. "prop":"1",
  32. "additionalProp":"2"
  33. }',
  34. '{
  35. "type":"object",
  36. "properties":{
  37. "prop":{"type":"string"}
  38. },
  39. "additionalProperties": false
  40. }',
  41. Validator::CHECK_MODE_TYPE_CAST
  42. ),
  43. array(
  44. '{
  45. "prop":"1",
  46. "additionalProp":2
  47. }',
  48. '{
  49. "type":"object",
  50. "properties":{
  51. "prop":{"type":"string"}
  52. },
  53. "additionalProperties": {"type":"string"}
  54. }'
  55. ),
  56. array(
  57. '{
  58. "prop":"1",
  59. "additionalProp":2
  60. }',
  61. '{
  62. "type":"object",
  63. "properties":{
  64. "prop":{"type":"string"}
  65. },
  66. "additionalProperties": {"type":"string"}
  67. }',
  68. Validator::CHECK_MODE_TYPE_CAST
  69. )
  70. );
  71. }
  72. public function getValidTests()
  73. {
  74. return array(
  75. array(
  76. '{
  77. "prop":"1",
  78. "additionalProp":"2"
  79. }',
  80. '{
  81. "type":"object",
  82. "properties":{
  83. "prop":{"type":"string"}
  84. }
  85. }'
  86. ),
  87. array(
  88. '{
  89. "prop":"1",
  90. "additionalProp":"2"
  91. }',
  92. '{
  93. "type":"object",
  94. "properties":{
  95. "prop":{"type":"string"}
  96. }
  97. }',
  98. Validator::CHECK_MODE_TYPE_CAST
  99. ),
  100. array(
  101. '{
  102. "prop":"1",
  103. "additionalProp":"2"
  104. }',
  105. '{
  106. "type":"object",
  107. "properties":{
  108. "prop":{"type":"string"}
  109. },
  110. "additionalProperties": {"type":"string"}
  111. }'
  112. )
  113. );
  114. }
  115. }