/**
  * Assert that pop-up with resources, that were specified for integration are shown
  * after starting activation of integration
  *
  * @param IntegrationIndex $integrationIndex
  * @param Integration $integration
  * @return void
  */
 public function processAssert(IntegrationIndex $integrationIndex, Integration $integration)
 {
     $fixtureResources = is_array($integration->getResources()) ? $integration->getResources() : [$integration->getResources()];
     $formResources = $integrationIndex->getIntegrationGrid()->getResourcesPopup()->getData();
     $result = $this->verifyResources($formResources['resources'], $fixtureResources);
     \PHPUnit_Framework_Assert::assertEmpty($result, "Integration resources is not correct.\nLog:\n" . $result);
     $integrationIndex->getIntegrationGrid()->getResourcesPopup()->clickAllowButton();
 }
 /**
  * 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);
 }
 /**
  * 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();
 }
 /**
  * Assert that pop-up with tokens is shown after clicking on "Allow" button on Resources popup.
  * It contains:
  * - Consumer Key;
  * - Consumer Secret;
  * - Access Token;
  * - Access Token Secret;
  * All fields contain generated values.
  *
  * @param IntegrationIndex $integrationIndex
  * @return void
  */
 public function processAssert(IntegrationIndex $integrationIndex)
 {
     $errors = [];
     $tokensData = $integrationIndex->getIntegrationGrid()->getTokensPopup()->getData();
     $tokensKeys = array_keys($tokensData);
     $diff = array_diff($this->fields, $tokensKeys);
     if (!empty($diff)) {
         $errors[] = 'Field(s) "' . implode(', ', $diff) . '" is absent in integration tokens.';
     }
     foreach ($tokensData as $key => $value) {
         if (empty($value)) {
             $errors[] = 'Field with key: ' . $key . '" is empty in integration tokens.';
         }
     }
     \PHPUnit_Framework_Assert::assertEmpty($errors, "Integration tokens is not correct.\nLog:\n" . implode(";\n", $errors));
     $integrationIndex->getIntegrationGrid()->getTokensPopup()->clickDoneButton();
 }
 /**
  * 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));
 }
 /**
  * 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 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.');
 }