WritingUtilsTest.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?php
  2. namespace Knuckles\Scribe\Tests\Unit;
  3. use Knuckles\Scribe\Tests\BaseLaravelTest;
  4. use Knuckles\Scribe\Tools\WritingUtils;
  5. class WritingUtilsTest extends BaseLaravelTest
  6. {
  7. /** @test */
  8. public function print_query_params_as_key_value_js()
  9. {
  10. $queryParams = WritingUtils::printQueryParamsAsKeyValue($this->getQueryParams());
  11. $this->assertEquals(<<<EOL
  12. {
  13. "name query": "name value",
  14. "list query[0]": "list element 1",
  15. "list query[1]": "list element 2",
  16. "nested query[nested query level 1 array][nested query level 2 list][0]": "nested level 2 list element 1",
  17. "nested query[nested query level 1 array][nested query level 2 list][1]": "nested level 2 list element 2",
  18. "nested query[nested query level 1 array][nested query level 2 query]": "name nested 2",
  19. "nested query[nested query level 1 query]": "name nested 1",
  20. }
  21. EOL, $queryParams);
  22. }
  23. /** @test */
  24. public function print_query_params_as_key_value_php()
  25. {
  26. $queryParams = WritingUtils::printQueryParamsAsKeyValue($this->getQueryParams(), "'", "=>", 4, "[]");
  27. $this->assertEquals(<<<EOL
  28. [
  29. 'name query'=> 'name value',
  30. 'list query[0]'=> 'list element 1',
  31. 'list query[1]'=> 'list element 2',
  32. 'nested query[nested query level 1 array][nested query level 2 list][0]'=> 'nested level 2 list element 1',
  33. 'nested query[nested query level 1 array][nested query level 2 list][1]'=> 'nested level 2 list element 2',
  34. 'nested query[nested query level 1 array][nested query level 2 query]'=> 'name nested 2',
  35. 'nested query[nested query level 1 query]'=> 'name nested 1',
  36. ]
  37. EOL, $queryParams);
  38. }
  39. /** @test */
  40. public function print_query_params_as_key_value_python()
  41. {
  42. $queryParams = WritingUtils::printQueryParamsAsKeyValue($this->getQueryParams(), "'", ":", 2, "{}");
  43. $this->assertEquals(<<<EOL
  44. {
  45. 'name query': 'name value',
  46. 'list query[0]': 'list element 1',
  47. 'list query[1]': 'list element 2',
  48. 'nested query[nested query level 1 array][nested query level 2 list][0]': 'nested level 2 list element 1',
  49. 'nested query[nested query level 1 array][nested query level 2 list][1]': 'nested level 2 list element 2',
  50. 'nested query[nested query level 1 array][nested query level 2 query]': 'name nested 2',
  51. 'nested query[nested query level 1 query]': 'name nested 1',
  52. }
  53. EOL, $queryParams);
  54. }
  55. private function getQueryParams(): array
  56. {
  57. return [
  58. 'name query' => 'name value',
  59. 'list query' => [
  60. 'list element 1',
  61. 'list element 2',
  62. ],
  63. 'nested query' => [
  64. 'nested query level 1 array' => [
  65. 'nested query level 2 list' => [
  66. 'nested level 2 list element 1',
  67. 'nested level 2 list element 2',
  68. ],
  69. 'nested query level 2 query' => 'name nested 2',
  70. ],
  71. 'nested query level 1 query' => 'name nested 1'
  72. ],
  73. ];
  74. }
  75. }