123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace tests\unit\Util;
- use Magento\FunctionalTestingFramework\DataGenerator\Objects\OperationDefinitionObject;
- class OperationDefinitionBuilder
- {
- /**
- * Name of the operation definition
- *
- * @var string
- */
- private $name;
- /**
- * Name of the operation for the operation definition
- *
- * @var string
- */
- private $operation;
- /**
- * Type of the operation for the operation defintions (e.g. create, delete)
- *
- * @var string
- */
- private $type;
- /**
- * An array containing the metadata definition for an object to be mapped against the API.
- *
- * @var array
- */
- private $metadata = [];
- /**
- * Determines if api URL should remove magento_backend_name.
- * @var boolean
- */
- private $removeBackend;
- /**
- * Function which builds an operation defintions based on the fields set by the user.
- *
- * @return OperationDefinitionObject
- */
- public function build()
- {
- return new OperationDefinitionObject(
- $this->name,
- $this->operation,
- $this->type,
- null,
- null,
- null,
- null,
- null,
- $this->metadata,
- null,
- false
- );
- }
- /**
- * Sets the name of the operation definition to be built.
- *
- * @param string $name
- * @return OperationDefinitionBuilder
- */
- public function withName($name)
- {
- $this->name = $name;
- return $this;
- }
- /**
- * Sets the name of the operation for the object to be built.
- *
- * @param string $operation
- * @return OperationDefinitionBuilder
- */
- public function withOperation($operation)
- {
- $this->operation = $operation;
- return $this;
- }
- /**
- * Sets the name of the type of operation (e.g. create, delete)
- *
- * @param string $type
- * @return OperationDefinitionBuilder
- */
- public function withType($type)
- {
- $this->type = $type;
- return $this;
- }
- /**
- * Takes an array of values => type or an array of operation elements and transforms into operation metadata.
- *
- * @param array $metadata
- * @return OperationDefinitionBuilder
- */
- public function withMetadata($metadata)
- {
- $primitives = [];
- foreach ($metadata as $fieldName => $value) {
- // type check here TODO
- if (is_string($value)) {
- $primitives[$fieldName] = $value;
- } else {
- $this->metadata[] = $value;
- }
- }
- $this->metadata = array_merge(
- $this->metadata,
- OperationElementBuilder::buildOperationElementFields($primitives)
- );
- return $this;
- }
- }
|