Skip to content

Commit

Permalink
Tests: use assertThat instead assertMatchesRegularExpression
Browse files Browse the repository at this point in the history
  • Loading branch information
alphp committed Jan 26, 2024
1 parent 2a8c562 commit 17f8419
Show file tree
Hide file tree
Showing 6 changed files with 45 additions and 11 deletions.
10 changes: 8 additions & 2 deletions tests/LocaleTests/Locale_en_EN_TestTrait.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,16 @@ public function testLocale_en_EN () {
$this->assertEquals('Mar', $result, '%h: Abbreviated month name, based on the locale (an alias of %b)');

$result = strftime('%X', '20220306 13:02:03', $locale);
$this->assertMatchesRegularExpression('~1:02:03 PM|13:02:03~', $result, '%X: Preferred time representation based on locale, without the date');
$this->assertThat($result, $this->logicalOr(
$this->equalTo('1:02:03 PM'), // PHP-7
$this->equalTo('13:02:03') // PHP-8
), '%X: Preferred time representation based on locale, without the date');

$result = strftime('%c', '20220306 13:02:03', $locale);
$this->assertMatchesRegularExpression('~March 6, 2022 at (1:02 PM|13:02)~', $result, '%c: Preferred date and time stamp based on locale');
$this->assertThat($result, $this->logicalOr(
$this->equalTo('March 6, 2022 at 1:02 PM'), // PHP-7
$this->equalTo('March 6, 2022 at 13:02') // PHP-8
), '%c: Preferred date and time stamp based on locale');

$result = strftime('%x', '20220306 13:02:03', $locale);
$this->assertEquals('3/6/22', $result, '%x: Preferred date representation based on locale, without the time');
Expand Down
15 changes: 12 additions & 3 deletions tests/LocaleTests/Locale_es_ES_TestTrait.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,28 @@ public function testLocale_es_ES () {
$locale = 'es-ES';

$result = strftime('%a', '20220306 13:02:03', $locale);
$this->assertMatchesRegularExpression('~dom\.?~', $result, '%a: An abbreviated textual representation of the day');
$this->assertThat($result, $this->logicalOr(
$this->equalTo('dom.'), // PHP-7
$this->equalTo('dom') // PHP-8
), '%a: An abbreviated textual representation of the day');

$result = strftime('%A', '20220306 13:02:03', $locale);
$this->assertEquals('domingo', $result, '%A: A full textual representation of the day');

$result = strftime('%b', '20220306 13:02:03', $locale);
$this->assertMatchesRegularExpression('~mar\.?~', $result, '%b: Abbreviated month name, based on the locale');
$this->assertThat($result, $this->logicalOr(
$this->equalTo('mar.'), // PHP-7
$this->equalTo('mar') // PHP-8
), '%b: Abbreviated month name, based on the locale');

$result = strftime('%B', '20220306 13:02:03', $locale);
$this->assertEquals('marzo', $result, '%B: Full month name, based on the locale');

$result = strftime('%h', '20220306 13:02:03', $locale);
$this->assertMatchesRegularExpression('~mar\.?~', $result, '%h: Abbreviated month name, based on the locale (an alias of %b)');
$this->assertThat($result, $this->logicalOr(
$this->equalTo('mar.'), // PHP-7
$this->equalTo('mar') // PHP-8
), '%h: Abbreviated month name, based on the locale (an alias of %b)');

$result = strftime('%X', '20220306 13:02:03', $locale);
$this->assertEquals('13:02:03', $result, '%X: Preferred time representation based on locale, without the date');
Expand Down
11 changes: 9 additions & 2 deletions tests/LocaleTests/Locale_eu_TestTrait.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,10 @@ public function testLocale_eu () {
$this->assertEquals('mar.', $result, '%b: Abbreviated month name, based on the locale');

$result = strftime('%B', '20220306 13:02:03', $locale);
$this->assertMatchesRegularExpression('~martxoak?~', $result, '%B: Full month name, based on the locale');
$this->assertThat($result, $this->logicalOr(
$this->equalTo('martxoak'),
$this->equalTo('martxoa') // PHP-7.4, PHP-8.3
), '%B: Full month name, based on the locale');

$result = strftime('%h', '20220306 13:02:03', $locale);
$this->assertEquals('mar.', $result, '%h: Abbreviated month name, based on the locale (an alias of %b)');
Expand All @@ -29,7 +32,11 @@ public function testLocale_eu () {
$this->assertEquals('13:02:03', $result, '%X: Preferred time representation based on locale, without the date');

$result = strftime('%c', '20220306 13:02:03', $locale);
$this->assertMatchesRegularExpression('~2022\(e\)ko martxoak?ren 6\(a\) \(?13:02\)?~', $result, '%c: Preferred date and time stamp based on locale');
$this->assertThat($result, $this->logicalOr(
$this->equalTo('2022(e)ko martxoaren 6(a) 13:02'), // PHP-7.4
$this->equalTo('2022(e)ko martxoakren 6(a) 13:02'),
$this->equalTo('2022(e)ko martxoaren 6(a) (13:02)') // PHP-8.3
), '%c: Preferred date and time stamp based on locale');

$result = strftime('%x', '20220306 13:02:03', $locale);
$this->assertEquals('22/3/6', $result, '%x: Preferred date representation based on locale, without the time');
Expand Down
5 changes: 4 additions & 1 deletion tests/LocaleTests/Locale_it_CH_TestTrait.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,10 @@ public function testLocale_it_CH () {
$this->assertEquals('13:02:03', $result, '%X: Preferred time representation based on locale, without the date');

$result = strftime('%c', '20220306 13:02:03', $locale);
$this->assertMatchesRegularExpression('~6 marzo 2022 (alle ore )?13:02~', $result, '%c: Preferred date and time stamp based on locale');
$this->assertThat($result, $this->logicalOr(
$this->equalTo('6 marzo 2022 13:02'),
$this->equalTo('6 marzo 2022 alle ore 13:02') // PHP-8.3
), '%c: Preferred date and time stamp based on locale');

$result = strftime('%x', '20220306 13:02:03', $locale);
$this->assertEquals('06.03.22', $result, '%x: Preferred date representation based on locale, without the time');
Expand Down
5 changes: 4 additions & 1 deletion tests/LocaleTests/Locale_it_IT_TestTrait.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,10 @@ public function testLocale_it_IT () {
$this->assertEquals('13:02:03', $result, '%X: Preferred time representation based on locale, without the date');

$result = strftime('%c', '20220306 13:02:03', $locale);
$this->assertMatchesRegularExpression('~6 marzo 2022 (alle ore )?13:02~', $result, '%c: Preferred date and time stamp based on locale');
$this->assertThat($result, $this->logicalOr(
$this->equalTo('6 marzo 2022 13:02'),
$this->equalTo('6 marzo 2022 alle ore 13:02') // PHP-8.3
), '%c: Preferred date and time stamp based on locale');

$result = strftime('%x', '20220306 13:02:03', $locale);
$this->assertEquals('06/03/22', $result, '%x: Preferred date representation based on locale, without the time');
Expand Down
10 changes: 8 additions & 2 deletions tests/strftimeTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,10 @@ public function testTimeFormats () {
$this->assertEquals('13:02:03', $result, '%T: Same as "%H:%M:%S"');

$result = strftime('%X', '20220306 13:02:03', 'en-EN');
$this->assertMatchesRegularExpression('~1:02:03 PM|13:02:03~', $result, '%X: Preferred time representation based on locale, without the date');
$this->assertThat($result, $this->logicalOr(
$this->equalTo('1:02:03 PM'),
$this->equalTo('13:02:03') // PHP-8
), '%X: Preferred time representation based on locale, without the date');

$result = strftime('%z', '20220306 13:02:03');
$this->assertEquals('+0100', $result, '%z: The time zone offset');
Expand All @@ -146,7 +149,10 @@ public function testTimeFormats () {

public function testStampsFormats () {
$result = strftime('%c', '20220306 13:02:03', 'en-EN');
$this->assertMatchesRegularExpression('~March 6, 2022 at (1:02 PM|13:02)~', $result, '%c: Preferred date and time stamp based on locale');
$this->assertThat($result, $this->logicalOr(
$this->equalTo('March 6, 2022 at 1:02 PM'),
$this->equalTo('March 6, 2022 at 13:02') // PHP-8
), '%c: Preferred date and time stamp based on locale');

$result = strftime('%D', '20220306 13:02:03');
$this->assertEquals('03/06/2022', $result, '%D: Same as "%m/%d/%y"');
Expand Down

0 comments on commit 17f8419

Please sign in to comment.