@@ -33,87 +33,86 @@ class NumberTest extends TestCase
33
33
/**
34
34
* @dataProvider provideFromString_success
35
35
*/
36
- public function testFromString_success ($ number , $ expected )
36
+ public function testFromString_success ($ number , $ expected, $ purpose )
37
37
{
38
38
$ this ->assertEquals ($ expected , Number::fromString ($ number ));
39
39
}
40
40
41
41
public function provideFromString_success ()
42
42
{
43
43
return [
44
- ["410321-9202 " , new Number ('410321920 ' , 2 )],
45
- [4103219202 , new Number ('410321920 ' , 2 )],
46
- ['89148000003974165685 ' , new Number ('8914800000397416568 ' , 5 )],
47
- ['abc123 ' , new Number ('12 ' , 3 )],
48
- // Use any number that is larger then PHP_INT_MAX.
49
- [((string ) PHP_INT_MAX ).'21 ' , new Number (((string ) PHP_INT_MAX ).'2 ' , 1 )],
44
+ ["410321-9202 " , new Number ('410321920 ' , 2 ), "String " ],
45
+ [4103219202 , new Number ('410321920 ' , 2 ), "Integer " ],
46
+ ['89148000003974165685 ' , new Number ('8914800000397416568 ' , 5 ), "Large number " ],
47
+ ['abc123 ' , new Number ('12 ' , 3 ), "Character in string " ],
48
+ ['922337203685477580721 ' , new Number ('92233720368547758072 ' , 1 ), "Larger than INT_MAX " ],
50
49
];
51
50
}
52
51
53
52
/**
54
53
* @dataProvider provideFromString_fail
55
54
*/
56
- public function testFromString_fail ($ number , $ expected )
55
+ public function testFromString_fail ($ number , $ expected, $ purpose )
57
56
{
58
- $ this ->expectException ($ expected );
57
+ $ this ->expectException ($ expected, $ purpose );
59
58
Number::fromString ($ number );
60
59
}
61
60
62
61
public function provideFromString_fail ()
63
62
{
64
63
return [
65
- ['' , \InvalidArgumentException::class],
66
- ['xyz ' , \InvalidArgumentException::class],
64
+ ['' , \InvalidArgumentException::class, " Empty string " ],
65
+ ['xyz ' , \InvalidArgumentException::class, " Invalid string " ],
67
66
];
68
67
}
69
68
70
69
/**
71
70
* @dataProvider provideToString_success
72
71
*/
73
- public function testToString_success ($ number , $ expected )
72
+ public function testToString_success ($ number , $ expected, $ purpose )
74
73
{
75
- $ this ->assertEquals ($ expected , (string ) $ number );
74
+ $ this ->assertEquals ($ expected , (string ) $ number, $ purpose );
76
75
}
77
76
78
77
public function provideToString_success ()
79
78
{
80
79
return [
81
- [new Number (12345 , 5 ), "123455 " ]
80
+ [new Number (12345 , 5 ), "123455 " , " Valid number " ]
82
81
];
83
82
}
84
83
85
84
/**
86
85
* @dataProvider provideNew_fail
87
86
*/
88
- public function testNew_fail ($ number , $ checkDigit , $ expected )
87
+ public function testNew_fail ($ number , $ checkDigit , $ expected, $ purpose )
89
88
{
90
- $ this ->expectException ($ expected );
89
+ $ this ->expectException ($ expected, $ purpose );
91
90
new Number ($ number , $ checkDigit );
92
91
}
93
92
94
93
public function provideNew_fail ()
95
94
{
96
95
return [
97
- ['abc123 ' , 1 , \InvalidArgumentException::class],
98
- ['123 ' , null , \InvalidArgumentException::class],
96
+ ['abc123 ' , 1 , \InvalidArgumentException::class, " Invalid number " ],
97
+ ['123 ' , null , \InvalidArgumentException::class, " Whitespace " ],
99
98
];
100
99
}
101
100
102
101
/**
103
102
* @dataProvider provideProperties
104
103
*/
105
- public function testProperties ($ input , $ checkDigit )
104
+ public function testProperties ($ input , $ checkDigit, $ purpose )
106
105
{
107
106
$ number = new Number ($ input , $ checkDigit );
108
- $ this ->assertEquals ($ input , $ number ->getNumber ());
109
- $ this ->assertEquals ($ checkDigit , $ number ->getCheckDigit ());
107
+ $ this ->assertEquals ($ input , $ number ->getNumber (), $ purpose );
108
+ $ this ->assertEquals ($ checkDigit , $ number ->getCheckDigit (), $ purpose );
110
109
}
111
110
112
111
public function provideProperties ()
113
112
{
114
113
return [
115
- [123 , 1 ],
116
- [123 , null ],
114
+ [123 , 1 , " Valid number and checkdigit " ],
115
+ [123 , null , " Valid number and checkdigit (null) " ],
117
116
];
118
117
}
119
118
}
0 commit comments