create_mock_customer() публичный статический Метод

Create a mock customer for testing purposes.
public static create_mock_customer ( ) : WC_Customer
Результат WC_Customer
Пример #1
0
 /**
  * Test the is_customer_outside_base method
  */
 public function test_is_customer_outside_base()
 {
     // Get the original settings for the session and the WooCommerce options
     $original_chosen_shipping_methods = \WC_Helper_Customer::get_chosen_shipping_methods();
     $original_tax_based_on = \WC_Helper_Customer::get_tax_based_on();
     $original_customer_details = \WC_Helper_Customer::get_customer_details();
     $customer = \WC_Helper_Customer::create_mock_customer();
     // Create dummy product, and add the product to the cart.
     $product = \WC_Helper_Product::create_simple_product();
     WC()->cart->add_to_cart($product->id, 1);
     // Customer is going with the Local Pickup option, and the store calculates tax based on the store location.
     \WC_Helper_Customer::set_chosen_shipping_methods(array('local_pickup'));
     \WC_Helper_Customer::set_tax_based_on('base');
     $this->assertEquals($customer->is_customer_outside_base(), false);
     // Customer is going with the Local Pickup option, and the store calculates tax based on the customer's billing address.
     \WC_Helper_Customer::set_chosen_shipping_methods(array('local_pickup'));
     \WC_Helper_Customer::set_tax_based_on('billing');
     $this->assertEquals($customer->is_customer_outside_base(), false);
     // Customer is going with the Free Shipping option, and the store calculates tax based on the customer's billing address.
     \WC_Helper_Customer::set_chosen_shipping_methods(array('free_shipping'));
     \WC_Helper_Customer::set_tax_based_on('billing');
     $this->assertEquals($customer->is_customer_outside_base(), true);
     // Customer is going with the Free Shipping option, and the store calculates tax based on the store base location.
     \WC_Helper_Customer::set_chosen_shipping_methods(array('free_shipping'));
     \WC_Helper_Customer::set_tax_based_on('base');
     $this->assertEquals($customer->is_customer_outside_base(), false);
     //Now reset the settings back to the way they were before this test
     \WC_Helper_Customer::set_chosen_shipping_methods($original_chosen_shipping_methods);
     \WC_Helper_Customer::set_tax_based_on($original_tax_based_on);
     \WC_Helper_Customer::set_customer_details($original_customer_details);
     // Clean up the cart
     WC()->cart->empty_cart();
     // Clean up product
     \WC_Helper_Product::delete_product($product->id);
 }
Пример #2
0
 /**
  * Test WC_Customer's session handling code.
  * @since 2.7.0
  */
 public function test_customer_sessions()
 {
     $customer = WC_Helper_Customer::create_customer();
     $session = WC_Helper_Customer::create_mock_customer();
     // set into session....
     $this->assertEquals('19123', $session->get_billing_postcode());
     $this->assertEquals('123 South Street', $session->get_billing_address());
     $this->assertEquals('Philadelphia', $session->get_billing_city());
     $session->set_billing_address('124 South Street');
     $session->save_to_session();
     $session = new WC_Customer(0, true);
     $session->load_session();
     $this->assertEquals('124 South Street', $session->get_billing_address());
     $session = new WC_Customer(0, true);
     $session->load_session();
     $session->set_billing_postcode('32191');
     $session->save();
     // should still be session ID, not a created row, since we are working with guests/sessions
     $this->assertFalse($session->get_id() > 0);
     $this->assertEquals('32191', $session->get_billing_postcode());
 }