You are here

public function AcquiaLiftTest::testGetCampaigns in Acquia Lift Connector 7.2

Test AcquiaLiftAPI->getExistingAgents()

File

tests/AcquiaLiftAPI.test, line 396
Unit tests for Acquia Lift module.

Class

AcquiaLiftTest
@file Unit tests for Acquia Lift module.

Code

public function testGetCampaigns() {
  $lift_api = $this
    ->getAcquiaLiftAPI();
  $lift_api
    ->getCampaigns();
  $logged_requests = DummyAcquiaLiftHttpClient::getLoggedRequests();
  $expected_uri = "{$lift_api->getApiUrl()}/campaigns?client_id={$lift_api->getPublicKey()}";

  // Confirm the request URI is as expected.
  $this
    ->assertAPIRequestURI($expected_uri, $logged_requests[0]['uri']);
  $logs = array();
  $this
    ->assertLogs($logs);
  DummyAcquiaLiftHttpClient::clearLoggedRequests();
  $lift_api = $this
    ->getAcquiaLiftAPI(TRUE);
  try {
    $lift_api
      ->getCampaigns();
  } catch (Exception $e) {
    $this
      ->assertTrue($e instanceof AcquiaLiftException);
  }

  // Confirm the expected requests and logs.
  $this
    ->assertAPIRequestURI($expected_uri, $logged_requests[0]['uri']);
  $logs = array(
    array(
      'level' => PersonalizeLogLevel::ERROR,
      'message' => 'Could not retrieve agents from Lift',
    ),
  );
  $this
    ->assertLogs($logs);
  DummyAcquiaLiftHttpClient::clearLoggedRequests();
  $response = array(
    'error' => 'Campaign does not contain any decision sets.',
  );
  $lift_api = $this
    ->getAcquiaLiftAPI(TRUE, $response);
  try {
    $lift_api
      ->getCampaigns();
  } catch (Exception $e) {
    $this
      ->assertTrue($e instanceof AcquiaLiftServerErrorException);
  }
  DummyAcquiaLiftHttpClient::clearLoggedRequests();
}