forked from yabacon/paystack-php
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFeeTest.php
More file actions
88 lines (72 loc) · 3.08 KB
/
FeeTest.php
File metadata and controls
88 lines (72 loc) · 3.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php
namespace Yabacon\Paystack\Tests;
use Yabacon\Paystack\Fee;
class FeeTest extends \PHPUnit\Framework\TestCase
{
public function testAddFor()
{
$fee = new Fee();
$this->assertEquals(10153, $fee->addFor(10000));
$this->assertEquals(1000000, $fee->addFor(975000));
$fee->withPercentage(0.014);
$this->assertEquals(10142, $fee->addFor(10000));
$this->assertEquals(998986, $fee->addFor(975000));
$fee->withThreshold(2000000);
$this->assertEquals(10142, $fee->addFor(10000));
$this->assertEquals(988844, $fee->addFor(975000));
$this->assertEquals(3052739, $fee->addFor(3000000));
$fee->withThreshold(Fee::DEFAULT_THRESHOLD);
$fee->withAdditionalCharge(0);
$this->assertEquals(10142, $fee->addFor(10000));
$this->assertEquals(988844, $fee->addFor(975000));
$fee->withCap(3000);
$this->assertEquals(10142, $fee->addFor(10000));
$this->assertEquals(978000, $fee->addFor(975000));
}
public function testDefaultParams()
{
$fee = new Fee();
$this->assertEquals(10153, $fee->addFor(10000));
$this->assertEquals(10000, $fee->addFor(9850));
$this->assertEquals(1025381, $fee->addFor(1000000));
$this->assertEquals(1000000, $fee->addFor(975000));
$this->assertEquals(150, $fee->calculateFor(10000));
$this->assertEquals(24775, $fee->calculateFor(985000));
$this->assertEquals(25000, $fee->calculateFor(1000000));
$this->assertEquals(24625, $fee->calculateFor(975000));
}
public function testResetDefaults()
{
Fee::$default_percentage = 0.039;
Fee::$default_cap = 10000000000;
Fee::$default_threshold = 250000;
Fee::$default_additional_charge = 10000;
$fee = new Fee();
Fee::resetDefaults();
$feeAfterReset = new Fee();
$this->assertEquals(10406, $fee->addFor(10000));
$this->assertEquals(10153, $feeAfterReset->addFor(10000));
$this->assertEquals(1024974, $fee->addFor(975000));
$this->assertEquals(1000000, $feeAfterReset->addFor(975000));
}
public function testCalculateFor()
{
$fee = new Fee();
$this->assertEquals(150, $fee->calculateFor(10000));
$this->assertEquals(24625, $fee->calculateFor(975000));
$fee->withPercentage(0.014);
$this->assertEquals(140, $fee->calculateFor(10000));
$this->assertEquals(23650, $fee->calculateFor(975000));
$fee->withThreshold(2000000);
$this->assertEquals(140, $fee->calculateFor(10000));
$this->assertEquals(13650, $fee->calculateFor(975000));
$this->assertEquals(52000, $fee->calculateFor(3000000));
$fee->withAdditionalCharge(0);
$this->assertEquals(140, $fee->calculateFor(10000));
$this->assertEquals(13650, $fee->calculateFor(975000));
$fee->withCap(3000);
$this->assertEquals(140, $fee->calculateFor(10000));
$this->assertEquals(3000, $fee->calculateFor(975000));
$this->assertEquals(3000, $fee->calculateFor(3000000));
}
}