/**
  * @param array $parameters
  * @return CopyAndPayWidget|null
  */
 public function getWidget(array $parameters = [])
 {
     if (!$this->haveWidget()) {
         return null;
     }
     $defaultParameters = ['transactionToken' => $this->getTransactionToken()];
     if ($this->request) {
         $defaultParameters['testMode'] = $this->request->getTestMode();
         $defaultParameters['returnUrl'] = $this->request->getReturnUrl();
         $defaultParameters['brands'] = $this->request->getBrands();
     }
     $parameters = array_replace($defaultParameters, $parameters);
     $widget = new CopyAndPayWidget($parameters);
     return $widget;
 }
 public function testSetBrands()
 {
     $request = new CopyAndPayPurchaseRequest($this->getHttpClient(), $this->getHttpRequest());
     $this->assertNull($request->getBrands());
     $request->setBrands('');
     $this->assertSame('', $request->getBrands());
     $request->setBrands([]);
     $this->assertSame([], $request->getBrands());
     $request->setBrands('VISA');
     $this->assertSame('VISA', $request->getBrands());
     $request->setBrands(['VISA']);
     $this->assertSame(['VISA'], $request->getBrands());
     $request->setBrands('VISA MASTER');
     $this->assertSame('VISA MASTER', $request->getBrands());
     $request->setBrands(['VISA', 'MAESTRO', "MASTER"]);
     $this->assertSame(['VISA', "MAESTRO", 'MASTER'], $request->getBrands());
 }