ActionGroupObjectBuilder.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace tests\unit\Util;
  7. use Magento\FunctionalTestingFramework\Test\Objects\ActionGroupObject;
  8. use Magento\FunctionalTestingFramework\Test\Objects\ActionObject;
  9. class ActionGroupObjectBuilder
  10. {
  11. const DEFAULT_ACTION_OBJECT_NAME = 'action1';
  12. /**
  13. * Action Group Object Builder default name
  14. *
  15. * @var string
  16. */
  17. private $name = "testActionGroupObject";
  18. /**
  19. * Action Group Object Builder default action objects (set by constructor).
  20. *
  21. * @var array
  22. */
  23. private $actionObjects = [];
  24. /**
  25. * Action Group Object Builder default entity arguments.
  26. *
  27. * @var array
  28. */
  29. private $arguments = [];
  30. /**
  31. * Action Group Object Builder default name
  32. *
  33. * @var string
  34. */
  35. private $extends = null;
  36. /**
  37. * Setter for the Action Group Object name
  38. *
  39. * @param string $name
  40. * @return ActionGroupObjectBuilder
  41. */
  42. public function withName($name)
  43. {
  44. $this->name = $name;
  45. return $this;
  46. }
  47. /**
  48. * Setter for the Action Group Object arguments
  49. *
  50. * @param array $args
  51. * @return ActionGroupObjectBuilder
  52. */
  53. public function withArguments($args)
  54. {
  55. $this->arguments = $args;
  56. return $this;
  57. }
  58. /**
  59. * Setter for the Action Group Object action objects
  60. *
  61. * @param array $actionObjs
  62. * @return ActionGroupObjectBuilder
  63. */
  64. public function withActionObjects($actionObjs)
  65. {
  66. $this->actionObjects = $actionObjs;
  67. return $this;
  68. }
  69. /**
  70. * Setter for the Action Group Object extended objects
  71. *
  72. * @param string $extendedActionGroup
  73. * @return ActionGroupObjectBuilder
  74. */
  75. public function withExtendedAction($extendedActionGroup)
  76. {
  77. $this->extends = $extendedActionGroup;
  78. return $this;
  79. }
  80. /**
  81. * ActionGroupObjectBuilder constructor.
  82. */
  83. public function __construct()
  84. {
  85. $this->actionObjects = [
  86. new ActionObject(self::DEFAULT_ACTION_OBJECT_NAME, 'testAction', ['userInput' => 'literal'])
  87. ];
  88. }
  89. /**
  90. * Function which takes builder parameters and returns a new ActionGroupObject.
  91. *
  92. * @return ActionGroupObject
  93. */
  94. public function build()
  95. {
  96. return new ActionGroupObject(
  97. $this->name,
  98. $this->arguments,
  99. $this->actionObjects,
  100. $this->extends
  101. );
  102. }
  103. }