/**
  * Create Integration Entity test.
  *
  * @param Integration $integration
  * @return void
  */
 public function test(Integration $integration)
 {
     // Steps
     $this->integrationIndexPage->open();
     $this->integrationIndexPage->getGridPageActions()->addNew();
     $this->integrationNewPage->getIntegrationForm()->fill($integration);
     $this->integrationNewPage->getFormPageActions()->saveNew();
 }
 /**
  * Activate Integration Entity Test.
  *
  * @param Integration $integration
  * @return void
  */
 public function test(Integration $integration)
 {
     // Preconditions
     $integration->persist();
     // Steps
     $filter = ['name' => $integration->getName()];
     $this->integrationIndexPage->open();
     $this->integrationIndexPage->getIntegrationGrid()->searchAndActivate($filter);
 }
 /**
  * Create Integration Entity with existing name test.
  *
  * @param Integration $integration
  * @return array
  */
 public function test(Integration $integration)
 {
     // Precondition
     $integration->persist();
     // Steps
     $this->integrationIndexPage->open();
     $this->integrationIndexPage->getGridPageActions()->addNew();
     $this->integrationNewPage->getIntegrationForm()->fill($integration);
     $this->integrationNewPage->getFormPageActions()->saveNew();
     return ['integration' => $integration];
 }
 /**
  * Update Integration Entity test.
  *
  * @param Integration $initialIntegration
  * @param Integration $integration
  * @return void
  */
 public function test(Integration $initialIntegration, Integration $integration)
 {
     // Precondition
     $initialIntegration->persist();
     // Steps
     $filter = ['name' => $initialIntegration->getName()];
     $this->integrationIndexPage->open();
     $this->integrationIndexPage->getIntegrationGrid()->searchAndOpen($filter);
     $this->integrationNewPage->getIntegrationForm()->fill($integration);
     $this->integrationNewPage->getFormPageActions()->save();
 }
 /**
  * Test for Reauthorize tokens for the Integration Entity.
  *
  * @param Integration $integration
  * @return array
  */
 public function test(Integration $integration)
 {
     // Precondition
     $integration->persist();
     $filter = ['name' => $integration->getName()];
     $this->integrationIndex->open();
     $this->integrationIndex->getIntegrationGrid()->searchAndActivate($filter);
     $this->integrationIndex->getIntegrationGrid()->getResourcesPopup()->clickAllowButton();
     $tokens = $this->integrationIndex->getIntegrationGrid()->getTokensPopup()->getData();
     $this->integrationIndex->getIntegrationGrid()->getTokensPopup()->clickDoneButton();
     $integration = $this->fixtureFactory->createByCode('integration', ['data' => array_merge($integration->getData(), $tokens)]);
     // Steps
     $this->integrationIndex->getIntegrationGrid()->searchAndReauthorize($filter);
     $this->integrationIndex->getIntegrationGrid()->getResourcesPopup()->clickReauthorizeButton();
     $this->integrationIndex->getIntegrationGrid()->getTokensPopup()->clickDoneButton();
     return ['integration' => $integration];
 }
 /**
  * Assert that Access tokens was changed correctly after Reauthorize.
  * Checking fields:
  * - Consumer Key;
  * - Consumer Secret;
  * - Access Token;
  * - Access Token Secret.
  *
  * @param IntegrationIndex $integrationIndex
  * @param IntegrationNew $integrationNew
  * @param Integration $integration
  * @return void
  */
 public function processAssert(IntegrationIndex $integrationIndex, IntegrationNew $integrationNew, Integration $integration)
 {
     $filter = ['name' => $integration->getName()];
     $integrationIndex->open();
     $integrationIndex->getIntegrationGrid()->searchAndOpen($filter);
     $actualData = $integrationNew->getIntegrationForm()->getData();
     $errors = $this->checkTokens($actualData, $integration->getData());
     \PHPUnit_Framework_Assert::assertEmpty($errors, "Integration tokens was changed incorrectly.\nLog:\n" . implode(";\n", $errors));
 }
 /**
  * Assert that integration form filled correctly
  *
  * @param IntegrationIndex $integrationIndexPage
  * @param IntegrationNew $integrationNewPage
  * @param Integration $integration
  * @param Integration|null $initialIntegration
  * @return void
  */
 public function processAssert(IntegrationIndex $integrationIndexPage, IntegrationNew $integrationNewPage, Integration $integration, Integration $initialIntegration = null)
 {
     $data = $initialIntegration === null ? $integration->getData() : array_merge($initialIntegration->getData(), $integration->getData());
     $filter = ['name' => $data['name']];
     $integrationIndexPage->open();
     $integrationIndexPage->getIntegrationGrid()->searchAndOpen($filter);
     $formData = $integrationNewPage->getIntegrationForm()->getData();
     $dataDiff = $this->verifyForm($formData, $data);
     \PHPUnit_Framework_Assert::assertEmpty($dataDiff, 'Integration form was filled incorrectly.' . "\nLog:\n" . implode(";\n", $dataDiff));
 }
 /**
  * Run Lock user when creating new integration test.
  *
  * @param Integration $integration
  * @param int $attempts
  * @param User $customAdmin
  * @param string $configData
  * @return void
  */
 public function test(Integration $integration, $attempts, User $customAdmin, $configData = null)
 {
     $this->configData = $configData;
     // Preconditions
     $this->objectManager->create('Magento\\Config\\Test\\TestStep\\SetupConfigurationStep', ['configData' => $this->configData])->run();
     $customAdmin->persist();
     $this->adminAuthLogin->open();
     $this->adminAuthLogin->getLoginBlock()->fill($customAdmin);
     $this->adminAuthLogin->getLoginBlock()->submit();
     // Steps
     $this->integrationIndexPage->open();
     $this->integrationIndexPage->getGridPageActions()->addNew();
     for ($i = 0; $i < $attempts; $i++) {
         $this->integrationNewPage->getIntegrationForm()->fill($integration);
         $this->integrationNewPage->getFormPageActions()->saveNew();
     }
     // Reload page
     $this->adminAuthLogin->open();
     $this->adminAuthLogin->getLoginBlock()->fill($customAdmin);
     $this->adminAuthLogin->getLoginBlock()->submit();
 }
 /**
  * Assert that Integration is not presented in grid and cannot be found using name
  *
  * @param IntegrationIndex $integrationIndexPage
  * @param Integration $integration
  * @return void
  */
 public function processAssert(IntegrationIndex $integrationIndexPage, Integration $integration)
 {
     $filter = ['name' => $integration->getName()];
     $integrationIndexPage->open();
     \PHPUnit_Framework_Assert::assertFalse($integrationIndexPage->getIntegrationGrid()->isRowVisible($filter), 'Integration \'' . $filter['name'] . '\' is present in Integration grid.');
 }
 /**
  * Assert that data in grid on Integrations page according to fixture by name field
  *
  * @param IntegrationIndex $integrationIndexPage
  * @param Integration $integration
  * @param Integration|null $initialIntegration
  * @return void
  */
 public function processAssert(IntegrationIndex $integrationIndexPage, Integration $integration, Integration $initialIntegration = null)
 {
     $filter = ['name' => $initialIntegration !== null && !$integration->hasData('name') ? $initialIntegration->getName() : $integration->getName()];
     $integrationIndexPage->open();
     \PHPUnit_Framework_Assert::assertTrue($integrationIndexPage->getIntegrationGrid()->isRowVisible($filter), 'Integration \'' . $filter['name'] . '\' is absent in Integration grid.');
 }