You are here

public function USPSInternationalRateRequestTest::testGetRates in Commerce USPS 8

Tests getRates().

@covers ::getRates @covers ::buildRate @covers ::setMode @covers ::setShipment @covers ::resolveRates

File

tests/src/Unit/USPSInternationalRateRequestTest.php, line 44

Class

USPSInternationalRateRequestTest
Class USPSInternationalRateRequestTest.

Namespace

Drupal\Tests\commerce_usps\Unit

Code

public function testGetRates() {
  $config = $this
    ->getConfig();
  $shipment = $this
    ->mockShipment([
    'unit' => 'lb',
  ], [
    'unit' => 'in',
  ], FALSE);
  $shipping_method = $this
    ->prophesize(ShippingMethodInterface::class);
  $shipping_method
    ->id()
    ->willReturn('123456789');

  // Fetch rates from the USPS api.
  $rates = $this->rateRequest
    ->getRates($shipment, $shipping_method
    ->reveal());

  // Make sure the same number of rates requested
  // is returned.
  $this
    ->assertEquals(count($config['services']), count($rates));

  /** @var \Drupal\commerce_shipping\ShippingRate $rate */
  foreach ($rates as $rate) {
    $this
      ->assertInstanceOf(ShippingRate::class, $rate);
    $this
      ->assertNotEmpty($rate
      ->getAmount()
      ->getNumber());
  }
}