PaymentreferenceTestQueueWebTestCase.test in Payment 7
Contains class PaymentreferenceTestQueueWebTestCase.
File
modules/paymentreference/tests/paymentreference_test/tests/PaymentreferenceTestQueueWebTestCase.testView source
<?php
/**
* @file
* Contains class PaymentreferenceTestQueueWebTestCase.
*/
/**
* Tests the reference queue.
*/
class PaymentreferenceTestQueueWebTestCase extends PaymentWebTestCase {
static function getInfo() {
return array(
'description' => '',
'name' => 'Queue CRUD and its Field integration',
'group' => 'Payment Reference',
);
}
/**
* Overrides parent::setUp().
*/
/**
* Overrides parent::setUp().
*/
function setUp(array $modules = array()) {
parent::setUp($modules + array(
'paymentreference',
));
}
function testQueueCRUD() {
$payment_method = $this
->paymentMethodCreate(1, payment_method_controller_load('PaymentMethodControllerUnavailable'));
$payment = $this
->paymentCreate(2, $payment_method);
$payment
->setStatus(new PaymentStatusItem(PAYMENT_STATUS_SUCCESS));
entity_save('payment', $payment);
$entity_type = 'foo';
$bundle = 'bar';
$field_name = 'baz';
// Test queueing a payment.
paymentreference_insert($entity_type, $bundle, $field_name, $payment->pid);
$count = db_query("SELECT COUNT(1) FROM {paymentreference} WHERE entity_type = :entity_type AND bundle = :bundle AND field_name = :field_name AND pid = :pid", array(
':entity_type' => $entity_type,
':bundle' => $bundle,
':field_name' => $field_name,
':pid' => $payment->pid,
))
->fetchField();
$this
->assertTrue($count, 'A payment is saved to the queue correctly.');
// Test loading a queued payment.
$pid = paymentreference_load($entity_type, $bundle, $field_name, $payment->uid);
$this
->assertTrue((bool) $pid, 'A queued payment is loaded correctly.');
$pid = paymentreference_load('bar', $bundle, $field_name, $payment->uid);
$this
->assertFalse($pid, 'Loading a queued payment using the wrong entity type fails.');
$pid = paymentreference_load($entity_type, 'baz', $field_name, $payment->uid);
$this
->assertFalse($pid, 'Loading a queued payment using the wrong bundle fails.');
$pid = paymentreference_load($entity_type, $bundle, 'foo', $payment->uid);
$this
->assertFalse($pid, 'Loading a queued payment using the wrong field name fails.');
$pid = paymentreference_load($entity_type, $bundle, $field_name, $payment->uid + 1);
$this
->assertFalse($pid, 'Loading a queued payment using the wrong UID fails.');
// Test deleting a payment from the queue.
paymentreference_delete_by_pid($payment->pid);
$count = db_query("SELECT COUNT(1) FROM {paymentreference} WHERE pid = :pid", array(
':pid' => $payment->pid,
))
->fetchField();
$this
->assertFalse($count, 'A payment can be deleted from the queue by PID.');
paymentreference_insert($entity_type, $bundle, $field_name, $payment->pid);
paymentreference_delete_by_field($field_name);
$count = db_query("SELECT COUNT(1) FROM {paymentreference} WHERE field_name = :field_name", array(
':field_name' => $field_name,
))
->fetchField();
$this
->assertFalse($count, 'A payment can be deleted from the queue by field name.');
paymentreference_insert($entity_type, $bundle, $field_name, $payment->pid);
paymentreference_delete_by_field_instance($entity_type, $bundle, $field_name);
$count = db_query("SELECT COUNT(1) FROM {paymentreference} WHERE entity_type = :entity_type AND bundle = :bundle AND field_name = :field_name", array(
':entity_type' => $entity_type,
':bundle' => $bundle,
':field_name' => $field_name,
))
->fetchField();
$this
->assertFalse($count, 'A payment can be deleted from the queue by field instance.');
}
function testQueueFieldImplementation() {
// Create a field, two instances and three payments.
$entity_type = 'node';
$bundles = array(
1 => 'article',
2 => 'article',
3 => 'page',
);
$field_name = 'baz';
$field = array(
'field_name' => $field_name,
'type' => 'paymentreference',
);
field_create_field($field);
$instance_article = $instance_page = array(
'entity_type' => $entity_type,
'field_name' => $field_name,
);
$instance_article['bundle'] = $bundles[1];
$instance_article = field_create_instance($instance_article);
$instance_page['bundle'] = $bundles[3];
$instance_page = field_create_instance($instance_page);
$payment_method = $this
->paymentMethodCreate(1, payment_method_controller_load('PaymentMethodControllerUnavailable'));
foreach (range(1, 3) as $pid) {
$payment = $this
->paymentCreate(2, $payment_method);
$payment
->setStatus(new PaymentStatusItem(PAYMENT_STATUS_SUCCESS));
entity_save('payment', $payment);
paymentreference_insert($entity_type, $bundles[$pid], $field_name, $pid);
}
// Test response to payment deletion.
entity_delete('payment', 1);
$pid = paymentreference_load($entity_type, $bundles[1], $field_name, 2);
$this
->assertNotEqual($pid, 1, 'When deleting a payment, it is removed from the queue as well.');
// Test response to field instance deletion.
field_delete_instance($instance_article);
$pid = paymentreference_load($entity_type, $bundles[2], $field_name, 2);
$this
->assertNotEqual($pid, 2, 'When deleting a field instance, all payments associated with it are removed from the queue.');
// Test response to field deletion.
field_delete_field($field_name);
$pid = paymentreference_load($entity_type, $bundles[3], $field_name, 2);
$this
->assertFalse($pid, 'When deleting a field, all payments associated with it are removed from the queue.');
}
}
Classes
Name![]() |
Description |
---|---|
PaymentreferenceTestQueueWebTestCase | Tests the reference queue. |