woocommerce/tests/legacy/unit-tests/shipping/shipping-zones.php

142 lines
3.2 KiB
PHP
Raw Normal View History

2016-01-08 13:56:01 +00:00
<?php
/**
* Tests for the WC_Shopping_Zones class.
*
* @package WooCommerce\Tests\Shipping
*/
2016-01-08 13:56:01 +00:00
/**
* Class Shipping_Zones.
* @package WooCommerce\Tests\Shipping
2016-01-08 13:56:01 +00:00
*/
class WC_Tests_Shipping_Zones extends WC_Unit_Test_Case {
2016-01-08 13:56:01 +00:00
/**
* Set up tests.
*/
public function setUp() {
parent::setUp();
WC_Helper_Shipping_Zones::create_mock_zones();
}
2016-01-08 13:56:01 +00:00
/**
* Test: WC_Shipping_Zones::get_zones
*/
public function test_get_zones() {
// Test.
2016-07-11 14:56:35 +00:00
$zones = WC_Shipping_Zones::get_zones();
2016-01-08 13:56:01 +00:00
// Assert.
2016-07-11 14:56:35 +00:00
$this->assertTrue( is_array( $zones ) );
$this->assertTrue( 4 === count( $zones ) );
2016-01-08 13:56:01 +00:00
}
2016-07-11 14:56:35 +00:00
/**
2016-01-08 13:56:01 +00:00
* Test: WC_Shipping_Zones::get_zone
*/
2016-07-11 14:56:35 +00:00
public function test_get_zone() {
// Test.
2016-07-11 14:56:35 +00:00
$zone = WC_Shipping_Zones::get_zone( 1 );
2016-01-08 13:56:01 +00:00
// Assert that the first zone is our local zone.
2016-07-11 14:56:35 +00:00
$this->assertInstanceOf( 'WC_Shipping_Zone', $zone );
$this->assertEquals( $zone->get_zone_name(), 'Local' );
}
2016-01-08 13:56:01 +00:00
2016-07-11 14:56:35 +00:00
/**
2016-01-08 13:56:01 +00:00
* Test: WC_Shipping_Zones::get_zone_by
*/
2016-07-11 14:56:35 +00:00
public function test_get_zone_by() {
// Test.
2016-07-11 14:56:35 +00:00
$zone = WC_Shipping_Zones::get_zone_by( 'zone_id', 2 );
2016-01-08 13:56:01 +00:00
// Assert.
2016-07-11 14:56:35 +00:00
$this->assertInstanceOf( 'WC_Shipping_Zone', $zone );
$this->assertEquals( $zone->get_zone_name(), 'Europe' );
2016-01-08 13:56:01 +00:00
// Test instance_id.
2016-07-11 14:56:35 +00:00
$instance_id = $zone->add_shipping_method( 'flat_rate' );
2016-01-08 13:56:01 +00:00
2016-07-11 14:56:35 +00:00
$zone = WC_Shipping_Zones::get_zone_by( 'instance_id', $instance_id );
2016-01-08 13:56:01 +00:00
// Assert.
2016-07-11 14:56:35 +00:00
$this->assertInstanceOf( 'WC_Shipping_Zone', $zone );
$this->assertEquals( $zone->get_zone_name(), 'Europe' );
}
2016-01-08 13:56:01 +00:00
2016-07-11 14:56:35 +00:00
/**
2016-01-08 13:56:01 +00:00
* Test: WC_Shipping_Zones::get_shipping_method
*/
2016-07-11 14:56:35 +00:00
public function test_get_shipping_method() {
// Test.
2016-07-11 14:56:35 +00:00
$zone = WC_Shipping_Zones::get_zone_by( 'zone_id', 1 );
$instance_id = $zone->add_shipping_method( 'flat_rate' );
$shipping_method = WC_Shipping_Zones::get_shipping_method( $instance_id );
2016-01-08 13:56:01 +00:00
// Assert.
2016-07-11 14:56:35 +00:00
$this->assertInstanceOf( 'WC_Shipping_Flat_Rate', $shipping_method );
}
2016-01-08 13:56:01 +00:00
2016-07-11 14:56:35 +00:00
/**
2016-01-08 13:56:01 +00:00
* Test: WC_Shipping_Zones::delete_zone
*/
2016-07-11 14:56:35 +00:00
public function test_delete_zone() {
// Test.
2016-07-11 14:56:35 +00:00
WC_Shipping_Zones::delete_zone( 1 );
$zones = WC_Shipping_Zones::get_zones();
2016-01-08 13:56:01 +00:00
// Assert.
$this->assertTrue( 3 === count( $zones ) );
2016-07-11 14:56:35 +00:00
}
2016-01-08 13:56:01 +00:00
2016-07-11 14:56:35 +00:00
/**
2016-01-08 13:56:01 +00:00
* Test: WC_Shipping_Zones::get_zone_matching_package
*/
2016-07-11 14:56:35 +00:00
public function test_get_zone_matching_package() {
// Test.
$zone1 = WC_Shipping_Zones::get_zone_matching_package(
array(
'destination' => array(
'country' => 'GB',
'state' => 'Cambs',
'postcode' => 'CB23 1GG',
),
)
);
$zone2 = WC_Shipping_Zones::get_zone_matching_package(
array(
'destination' => array(
'country' => 'GB',
'state' => 'Cambs',
'postcode' => 'PE12 1BG',
),
)
);
$zone3 = WC_Shipping_Zones::get_zone_matching_package(
array(
'destination' => array(
'country' => 'US',
'state' => 'CA',
'postcode' => '90210',
),
)
);
$zone4 = WC_Shipping_Zones::get_zone_matching_package(
array(
'destination' => array(
'country' => 'US',
'state' => 'AL',
'postcode' => '12345',
),
)
);
2016-07-11 14:56:35 +00:00
// Assert.
2016-07-11 14:56:35 +00:00
$this->assertEquals( 'Local', $zone1->get_zone_name() );
$this->assertEquals( 'Europe', $zone2->get_zone_name() );
$this->assertEquals( 'California', $zone3->get_zone_name() );
$this->assertEquals( 'US', $zone4->get_zone_name() );
}
2016-01-08 13:56:01 +00:00
}