function CommerceOrderRulesTest::testOrderConditions in Commerce Core 7
Test conditions on payment.
File
- modules/
order/ tests/ commerce_order.rules.test, line 32 - Unit tests for order rules.
Class
- CommerceOrderRulesTest
- Test order rules.
Code
function testOrderConditions() {
// Create a $100 product.
$product = $this
->createDummyProduct('', '', 100, 'USD');
// Create a $50 product.
$product2 = $this
->createDummyProduct('', '', 50, 'USD');
// Create an order with two products, total quantity 7.
$order = $this
->createDummyOrder(1, array(
$product->product_id => 2,
$product2->product_id => 5,
));
// Create an additional $10 product that is not in the order.
$product3 = $this
->createDummyProduct('', '', 50, 'USD');
// "Order contains product".
$condition = rules_condition('commerce_order_contains_product');
$tests = array(
array(
'product_id' => $product->sku,
'operator' => '=',
'value' => 2,
'result' => TRUE,
),
array(
'product_id' => $product2->sku,
'operator' => '=',
'value' => 5,
'result' => TRUE,
),
array(
'product_id' => $product3->sku,
'operator' => '=',
'value' => 0,
'result' => TRUE,
),
array(
'product_id' => $product->sku,
'operator' => '>=',
'value' => 1,
'result' => TRUE,
),
array(
'product_id' => $product->sku,
'operator' => '>=',
'value' => 2,
'result' => TRUE,
),
array(
'product_id' => $product->sku,
'operator' => '>=',
'value' => 3,
'result' => FALSE,
),
array(
'product_id' => $product->sku,
'operator' => '>',
'value' => 1,
'result' => TRUE,
),
array(
'product_id' => $product->sku,
'operator' => '>',
'value' => 2,
'result' => FALSE,
),
array(
'product_id' => $product->sku,
'operator' => '>',
'value' => 3,
'result' => FALSE,
),
array(
'product_id' => $product->sku,
'operator' => '<=',
'value' => 1,
'result' => FALSE,
),
array(
'product_id' => $product->sku,
'operator' => '<=',
'value' => 2,
'result' => TRUE,
),
array(
'product_id' => $product->sku,
'operator' => '<=',
'value' => 3,
'result' => TRUE,
),
array(
'product_id' => $product->sku,
'operator' => '<',
'value' => 1,
'result' => FALSE,
),
array(
'product_id' => $product->sku,
'operator' => '<',
'value' => 2,
'result' => FALSE,
),
array(
'product_id' => $product->sku,
'operator' => '<',
'value' => 3,
'result' => TRUE,
),
);
foreach ($tests as $test) {
$this
->assert($test['result'] == $condition
->executeByArgs(array(
'commerce_order' => $order,
'product_id' => $test['product_id'],
'operator' => $test['operator'],
'value' => $test['value'],
)), t('Order contains product @product_id @operator @value.', array(
'@operator' => $test['operator'],
'@product_id' => $test['product_id'],
'@value' => $test['value'],
)));
}
// "Total product quantity comparison".
$condition = rules_condition('commerce_order_compare_total_product_quantity');
$tests = array(
array(
'operator' => '=',
'value' => 6,
'result' => FALSE,
),
array(
'operator' => '=',
'value' => 7,
'result' => TRUE,
),
array(
'operator' => '=',
'value' => 8,
'result' => FALSE,
),
array(
'operator' => '>=',
'value' => 6,
'result' => TRUE,
),
array(
'operator' => '>=',
'value' => 7,
'result' => TRUE,
),
array(
'operator' => '>=',
'value' => 8,
'result' => FALSE,
),
array(
'operator' => '>',
'value' => 6,
'result' => TRUE,
),
array(
'operator' => '>',
'value' => 7,
'result' => FALSE,
),
array(
'operator' => '>',
'value' => 8,
'result' => FALSE,
),
array(
'operator' => '<=',
'value' => 6,
'result' => FALSE,
),
array(
'operator' => '<=',
'value' => 7,
'result' => TRUE,
),
array(
'operator' => '<=',
'value' => 8,
'result' => TRUE,
),
array(
'operator' => '<',
'value' => 6,
'result' => FALSE,
),
array(
'operator' => '<',
'value' => 7,
'result' => FALSE,
),
array(
'operator' => '<',
'value' => 8,
'result' => TRUE,
),
);
foreach ($tests as $test) {
$this
->assert($test['result'] == $condition
->executeByArgs(array(
'commerce_order' => $order,
'operator' => $test['operator'],
'value' => $test['value'],
)), t('Order total products @operator @value.', array(
'@operator' => $test['operator'],
'@value' => $test['value'],
)));
}
}