You are here

public function UcAddressesApiTestCase::testMultipleAddressBooks in Ubercart Addresses 7

Same name and namespace in other branches
  1. 6.2 tests/uc_addresses.api.test \UcAddressesApiTestCase::testMultipleAddressBooks()

Tests if address loading works as expected across multiple address books.

File

tests/uc_addresses.api.test, line 238
Test cases for the api component.

Class

UcAddressesApiTestCase
Test cases for the api component.

Code

public function testMultipleAddressBooks() {

  // Get address books from two users.
  $addressBook1 = $this
    ->UcAddressesGetAddressBook($this->adminUser->uid);
  $addressBook2 = $this
    ->UcAddressesGetAddressBook($this->customer->uid);

  // Add an address to the first address book.
  $address1 = $addressBook1
    ->addAddress();
  $values = self::getEditAddressValues();
  $address1
    ->setMultipleFields($values['values'], TRUE);
  $address1
    ->save();

  // Ensure this address can't be get from address book 2.
  $this
    ->assertFalse($addressBook2
    ->getAddressById($address1
    ->getId()), format_string('Address %aid does not belong to user %uid.', array(
    '%aid' => $address1
      ->getId(),
    '%uid' => $addressBook2
      ->getUserId(),
  )));

  // Reset the first address book.
  $addressBook1
    ->reset();

  // Ensure addresses are equal when either getAddressById() or loadAddress() is used.
  $address1_1 = $addressBook1
    ->getAddressById($address1
    ->getId());
  $address1_2 = UcAddressesAddressBook::loadAddress($address1
    ->getId());
  $this
    ->assertTrue($address1_1 === $address1_2, 'UcAddressesAddressBook::loadAddress() loads exactly the same address as $addressBook->getAddressById().');

  // Try to load a non-existent address using the addressBook's getAddressById() method.
  $this
    ->assertFalse($addressBook1
    ->getAddressById(997), 'Address 997 does not exists.');

  // Try again, but now using the loadAddress() method.
  $this
    ->assertFalse(UcAddressesAddressBook::loadAddress(998), 'Address 998 does not exists.');

  // Set performance hint of address book 1 to load all and ensure that this setting
  // is unchanged in address book 2.
  $addressBook1
    ->setPerformanceHint(UcAddressesAddressBook::PERF_HINT_LOAD_ALL);
  $this
    ->assertEqual($addressBook2
    ->getPerformanceHint(), UcAddressesAddressBook::PERF_HINT_LOAD_ONE, 'Performance hint is set to PERF_HINT_LOAD_ONE.');
}