Skip to content

Commit

Permalink
Add International Womens Day to DE-MV (#311)
Browse files Browse the repository at this point in the history
For the German state of Mecklenburg-Western Pomerania, International Womens Day is considered to be officially observed.
  • Loading branch information
ihmels authored Oct 15, 2023
1 parent ae895d0 commit 9da5acb
Show file tree
Hide file tree
Showing 4 changed files with 117 additions and 1 deletion.
12 changes: 12 additions & 0 deletions src/Yasumi/Provider/Germany/MecklenburgWesternPomerania.php
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,22 @@ public function initialize(): void
{
parent::initialize();

if ($this->year >= 2023) {
$this->addHoliday($this->internationalWomensDay($this->year, $this->timezone, $this->locale));
}

// Add custom Christian holidays
$this->calculateReformationDay();
}

public function getSources(): array
{
return array_merge(
['https://www.ndr.de/nachrichten/mecklenburg-vorpommern/Frauentag-in-MV-Landtag-beschliesst-neuen-Feiertag,frauentag370.html'],
parent::getSources(),
);
}

/**
* For the German state of Mecklenburg-Western Pomerania, Reformation Day was celebrated since 1517.
* Note: In 2017 all German states will celebrate Reformation Day for its 500th anniversary.
Expand Down
1 change: 1 addition & 0 deletions src/Yasumi/Yasumi.php
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,7 @@ public static function getProviders(): array
\FilesystemIterator::SKIP_DOTS
), \RecursiveIteratorIterator::SELF_FIRST);

/** @var \SplFileInfo $file */
foreach ($filesIterator as $file) {
if ($file->isDir()) {
continue;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
<?php

declare(strict_types=1);
/*
* This file is part of the Yasumi package.
*
* Copyright (c) 2015 - 2023 AzuyaLabs
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
* @author Sacha Telgenhof <me at sachatelgenhof dot com>
*/

namespace Yasumi\tests\Germany\MecklenburgWesternPomerania;

use Yasumi\Holiday;
use Yasumi\tests\HolidayTestCase;

/**
* Class containing tests for International Womens Day in Mecklenburg–Western Pomerania, Germany.
*/
class InternationalWomensDayTest extends MecklenburgWesternPomeraniaBaseTestCase implements HolidayTestCase
{
/**
* The name of the holiday to be tested.
*/
public const HOLIDAY = 'internationalWomensDay';

/**
* The year in which the holiday was established.
*/
public const ESTABLISHMENT_YEAR = 2023;

/**
* Test the holiday defined in this test upon establishment.
*
* @throws \Exception
*/
public function testHolidayOnEstablishment(): void
{
$this->assertHoliday(
self::REGION,
self::HOLIDAY,
self::ESTABLISHMENT_YEAR,
new \DateTime(self::ESTABLISHMENT_YEAR.'-03-08', new \DateTimeZone(self::TIMEZONE))
);
}

/**
* Test the holiday defined in this test before establishment.
*
* @throws \Exception
*/
public function testHolidayBeforeEstablishment(): void
{
$this->assertNotHoliday(
self::REGION,
self::HOLIDAY,
$this->generateRandomYear(1000, self::ESTABLISHMENT_YEAR - 1)
);
}

/**
* Test the holiday defined in this test after completion.
*
* @throws \Exception
*/
public function testHolidayAfterCompletion(): void
{
$this->assertNotHoliday(self::REGION, self::HOLIDAY, $this->generateRandomYear(1900, self::ESTABLISHMENT_YEAR - 1));
}

/**
* Tests the translated name of the holiday defined in this test.
*
* @throws \Exception
*/
public function testTranslation(): void
{
$this->assertTranslatedHolidayName(
self::REGION,
self::HOLIDAY,
$this->generateRandomYear(self::ESTABLISHMENT_YEAR, self::ESTABLISHMENT_YEAR),
[self::LOCALE => 'Internationaler Frauentag']
);
}

/**
* Tests type of the holiday defined in this test.
*
* @throws \Exception
*/
public function testHolidayType(): void
{
$this->assertHolidayType(
self::REGION,
self::HOLIDAY,
$this->generateRandomYear(self::ESTABLISHMENT_YEAR, self::ESTABLISHMENT_YEAR),
Holiday::TYPE_OFFICIAL
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,6 @@ public function testOtherHolidays(): void
*/
public function testSources(): void
{
$this->assertSources(self::REGION, 2);
$this->assertSources(self::REGION, 3);
}
}

0 comments on commit 9da5acb

Please sign in to comment.