UtilTest   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 70
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 21
dl 0
loc 70
rs 10
c 1
b 0
f 0
wmc 5

4 Methods

Rating   Name   Duplication   Size   Complexity  
A test_get_transaction_service() 0 14 2
A invoice_number_provider() 0 8 1
A test_get_invoice_number() 0 9 1
A transaction_service_provider() 0 4 1
1
<?php
2
3
namespace Pronamic\WordPress\Pay\Gateways\Buckaroo;
4
5
use PHPUnit\Framework\TestCase;
6
use Pronamic\WordPress\Pay\Payments\Payment;
7
8
class UtilTest extends TestCase {
9
10
	/**
11
	 * Test get invoice number.
12
	 *
13
	 * @param int             $payment_id     Payment ID.
14
	 * @param int|null|string $order_id       Order ID.
15
	 * @param string          $invoice_number Invoice number text.
16
	 * @param string          $expected       Expected result.
17
	 * @return void
18
	 * @dataProvider invoice_number_provider
19
	 */
20
	public function test_get_invoice_number( $payment_id, $order_id, $invoice_number, $expected ) {
21
		// Setup payment.
22
		$payment = new Payment();
23
24
		$payment->set_id( $payment_id );
25
		$payment->order_id = $order_id;
26
27
		// Assertion.
28
		$this->assertEquals( $expected, Util::get_invoice_number( $invoice_number, $payment ) );
29
	}
30
31
	/**
32
	 * Invoice number data provider.
33
	 *
34
	 * @return array[]
35
	 */
36
	public function invoice_number_provider() {
37
		return array(
38
			array( 99, 12345, 'invoice', 'invoice99' ),
39
			array( 99, 12345, '{payment_id}', '99' ),
40
			array( 99, null, '{order_id}', '' ),
41
			array( 99, 12345, '{order_id}', '12345' ),
42
			array( 99, 12345, 'INV{order_id}', 'INV12345' ),
43
			array( 99, 12345, '{payment_id}-{order_id}', '99-12345' ),
44
		);
45
	}
46
47
	/**
48
	 * Test get transaction service.
49
	 *
50
	 * @return void
51
	 * @dataProvider transaction_service_provider
52
	 */
53
	public function test_get_transaction_service( $service ) {
54
		// Build transaction.
55
		$services = array( (object) array() );
56
57
		if ( null !== $service ) {
58
			$services[] = (object) array( 'Name' => $service );
59
		}
60
61
		$transaction = (object) array(
62
			'Services' => $services,
63
		);
64
65
		// Assertion.
66
		$this->assertEquals( $service, Util::get_transaction_service( $transaction ) );
67
	}
68
69
	/**
70
	 * Transaction service provider.
71
	 *
72
	 * @return array[]
73
	 */
74
	public function transaction_service_provider() {
75
		return array(
76
			array( 'ideal' ),
77
			array( null ),
78
		);
79
	}
80
}
81