Add test for migrations.
This commit is contained in:
parent
af2b7dd972
commit
594d63f0fb
|
@ -56,6 +56,7 @@ class WPPostToCOTMigratorTest extends WC_Unit_Test_Case {
|
||||||
$this->assert_core_data_is_migrated( $order );
|
$this->assert_core_data_is_migrated( $order );
|
||||||
$this->assert_order_addresses_are_migrated( $order );
|
$this->assert_order_addresses_are_migrated( $order );
|
||||||
$this->assert_order_op_data_is_migrated( $order );
|
$this->assert_order_op_data_is_migrated( $order );
|
||||||
|
$this->assert_metadata_is_migrated( $order );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -154,7 +155,7 @@ WHERE order_id = {$order_id}
|
||||||
/**
|
/**
|
||||||
* Helper method to get address details from DB.
|
* Helper method to get address details from DB.
|
||||||
*
|
*
|
||||||
* @param int $order_id Order ID.
|
* @param int $order_id Order ID.
|
||||||
* @param string $address_type Address Type.
|
* @param string $address_type Address Type.
|
||||||
*
|
*
|
||||||
* @return array|object|void|null DB object.
|
* @return array|object|void|null DB object.
|
||||||
|
@ -182,6 +183,13 @@ WHERE order_id = {$order_id}
|
||||||
return $wpdb->get_row( "SELECT * FROM $operational_data_table WHERE order_id = $order_id;" );
|
return $wpdb->get_row( "SELECT * FROM $operational_data_table WHERE order_id = $order_id;" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function get_meta_data_from_cot( $order_id ) {
|
||||||
|
global $wpdb;
|
||||||
|
$metadata_table = $this->data_store::get_meta_table_name();
|
||||||
|
|
||||||
|
return $wpdb->get_results( "SELECT * FROM $metadata_table WHERE order_id = $order_id;" );
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper method to create complex wp_post based order.
|
* Helper method to create complex wp_post based order.
|
||||||
*
|
*
|
||||||
|
@ -249,6 +257,9 @@ WHERE order_id = {$order_id}
|
||||||
$order->set_date_completed( time() );
|
$order->set_date_completed( time() );
|
||||||
$order->calculate_shipping();
|
$order->calculate_shipping();
|
||||||
|
|
||||||
|
$order->add_meta_data( 'unique_key_1', 'unique_value_1', true );
|
||||||
|
$order->add_meta_data( 'non_unique_key_1', 'non_unique_value_1', false );
|
||||||
|
$order->add_meta_data( 'non_unique_key_1', 'non_unique_value_2', false );
|
||||||
$order->save();
|
$order->save();
|
||||||
$order->save_meta_data();
|
$order->save_meta_data();
|
||||||
|
|
||||||
|
@ -357,6 +368,27 @@ WHERE order_id = {$order_id}
|
||||||
$this->assertEquals( (float) $order->get_discount_total(), (float) $db_order_op_data->discount_total_amount );
|
$this->assertEquals( (float) $order->get_discount_total(), (float) $db_order_op_data->discount_total_amount );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function assert_metadata_is_migrated( $order ) {
|
||||||
|
$db_order = $this->get_order_from_cot( $order );
|
||||||
|
$meta_data = $this->get_meta_data_from_cot( $db_order->id );
|
||||||
|
|
||||||
|
$unique_row = array_filter( $meta_data, function ( $meta_row ) {
|
||||||
|
return 'unique_key_1' === $meta_row->meta_key;
|
||||||
|
} );
|
||||||
|
|
||||||
|
$this->assertEquals( 1, count( $unique_row ) );
|
||||||
|
$this->assertEquals( 'unique_value_1', array_values( $unique_row)[0]->meta_value );
|
||||||
|
|
||||||
|
$non_unique_rows = array_filter( $meta_data, function ( $meta_row ) {
|
||||||
|
return 'non_unique_key_1' === $meta_row->meta_key;
|
||||||
|
} );
|
||||||
|
$this->assertEquals( 2, count( $non_unique_rows ) );
|
||||||
|
$this->assertEquals( array(
|
||||||
|
'non_unique_value_1',
|
||||||
|
'non_unique_value_2'
|
||||||
|
), array_column( $non_unique_rows, 'meta_value' ) );
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper method to clear checkout and truncate order tables.
|
* Helper method to clear checkout and truncate order tables.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue