Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ExpressCheckoutOrderPlaceStep.php
Go to the documentation of this file.
1 <?php
8 
9 use Magento\Checkout\Test\Page\CheckoutOnepage;
10 use Magento\Checkout\Test\Page\CheckoutOnepageSuccess;
11 use Magento\Mtf\Fixture\FixtureFactory;
12 use Magento\Mtf\ObjectManager;
13 use Magento\Mtf\TestStep\TestStepInterface;
14 use Magento\Paypal\Test\Page\OrderReviewExpress;
16 
20 class ExpressCheckoutOrderPlaceStep implements TestStepInterface
21 {
27  protected $objectManager;
28 
34  protected $checkoutOnepage;
35 
42 
49 
55  protected $shipping;
56 
62  protected $prices;
63 
67  private $fixtureFactory;
68 
72  private $products;
73 
79  private $order;
80 
92  public function __construct(
93  ObjectManager $objectManager,
94  OrderReviewExpress $orderReviewExpress,
95  CheckoutOnepage $checkoutOnepage,
96  CheckoutOnepageSuccess $checkoutOnepageSuccess,
97  FixtureFactory $fixtureFactory,
98  array $products = [],
99  array $shipping = [],
100  array $prices = [],
101  OrderInjectable $order = null
102  ) {
103  $this->objectManager = $objectManager;
104  $this->orderReviewExpress = $orderReviewExpress;
105  $this->checkoutOnepage = $checkoutOnepage;
106  $this->checkoutOnepageSuccess = $checkoutOnepageSuccess;
107  $this->shipping = $shipping;
108  $this->prices = $prices;
109  $this->fixtureFactory = $fixtureFactory;
110  $this->products = $products;
111  $this->order = $order;
112  }
113 
119  public function run()
120  {
121  $this->orderReviewExpress->getReviewBlock()->selectShippingMethod($this->shipping);
122  foreach ($this->prices as $priceName => $value) {
123  $assertName = 'Assert' . ucfirst($priceName) . 'OrderReview';
124  $assert = $this->objectManager->create('Magento\\Checkout\\Test\\Constraint\\' . $assertName);
125  $assert->processAssert($this->checkoutOnepage, $value);
126  }
127  $this->orderReviewExpress->getReviewBlock()->placeOrder();
128  $data = [
129  'entity_id' => ['products' => $this->products]
130  ];
131  $orderData = $this->order !== null ? $this->order->getData() : [];
132  $order = $this->fixtureFactory->createByCode(
133  'orderInjectable',
134  ['data' => array_merge($data, $orderData)]
135  );
136  return [
137  'orderId' => $this->checkoutOnepageSuccess->getSuccessBlock()->getGuestOrderId(),
138  'order' => $order
139  ];
140  }
141 }
$value
Definition: gender.phtml:16
__construct(ObjectManager $objectManager, OrderReviewExpress $orderReviewExpress, CheckoutOnepage $checkoutOnepage, CheckoutOnepageSuccess $checkoutOnepageSuccess, FixtureFactory $fixtureFactory, array $products=[], array $shipping=[], array $prices=[], OrderInjectable $order=null)