diff --git a/lang/Iran/en/holidays.json b/lang/Iran/en/holidays.json new file mode 100644 index 000000000..d8ede9c05 --- /dev/null +++ b/lang/Iran/en/holidays.json @@ -0,0 +1,12 @@ +{ + "پیروزی انقلاب اسلامی پنجاه و هفت": "Anniversary of Islamic Revolution Day", + "روز ملی شدن صنعت نفت": "Nationalization of Oil Industry Day", + "نخستین روز نوروز": "Nowruz First Day", + "دومین روز نوروز": "Nowruz Second Day", + "سومین روز نوروز": "Nowruz Third Day", + "چهارمین روز نوروز": "Nowruz Fourth Day", + "روز جمهوری اسلامی": "Islamic Republic Day", + "سیزده بدر": "Sizdah Bedar", + "رحلت روح\u200Cالله خمینی": "Death of Khomeini Day", + "قیام ۱۵ خرداد": "Revolt of Khordad 15 Day" +} \ No newline at end of file diff --git a/lang/Iran/fa/holidays.json b/lang/Iran/fa/holidays.json new file mode 100644 index 000000000..a8f7a256b --- /dev/null +++ b/lang/Iran/fa/holidays.json @@ -0,0 +1,12 @@ +{ + "پیروزی انقلاب اسلامی پنجاه و هفت": "پیروزی انقلاب اسلامی پنجاه و هفت", + "روز ملی شدن صنعت نفت": "روز ملی شدن صنعت نفت", + "نخستین روز نوروز": "نخستین روز نوروز", + "دومین روز نوروز": "دومین روز نوروز", + "سومین روز نوروز": "سومین روز نوروز", + "چهارمین روز نوروز": "چهارمین روز نوروز", + "روز جمهوری اسلامی": "روز جمهوری اسلامی", + "سیزده بدر": "سیزده بدر", + "رحلت روح\u200Cالله خمینی": "رحلت روح\u200Cالله خمینی", + "قیام ۱۵ خرداد": "قیام ۱۵ خرداد" +} \ No newline at end of file diff --git a/src/Countries/Iran.php b/src/Countries/Iran.php new file mode 100644 index 000000000..981f5e618 --- /dev/null +++ b/src/Countries/Iran.php @@ -0,0 +1,29 @@ + '02-11', + 'روز ملی شدن صنعت نفت' => '03-19', + 'نخستین روز نوروز' => '03-20', + 'دومین روز نوروز' => '03-21', + 'سومین روز نوروز' => '03-22', + 'چهارمین روز نوروز' => '03-23', + 'روز جمهوری اسلامی' => '03-31', + 'سیزده بدر' => '04-01', + 'رحلت روح‌الله خمینی' => '06-03', + 'قیام ۱۵ خرداد' => '06-04', + ]; + } +} \ No newline at end of file diff --git a/tests/.pest/snapshots/Countries/IranTest/it_can_calculate_iran_holidays.snap b/tests/.pest/snapshots/Countries/IranTest/it_can_calculate_iran_holidays.snap new file mode 100644 index 000000000..9309cbd09 --- /dev/null +++ b/tests/.pest/snapshots/Countries/IranTest/it_can_calculate_iran_holidays.snap @@ -0,0 +1,42 @@ +[ + { + "name": "\u067e\u06cc\u0631\u0648\u0632\u06cc \u0627\u0646\u0642\u0644\u0627\u0628 \u0627\u0633\u0644\u0627\u0645\u06cc \u067e\u0646\u062c\u0627\u0647 \u0648 \u0647\u0641\u062a", + "date": "2024-02-11" + }, + { + "name": "\u0631\u0648\u0632 \u0645\u0644\u06cc \u0634\u062f\u0646 \u0635\u0646\u0639\u062a \u0646\u0641\u062a", + "date": "2024-03-19" + }, + { + "name": "\u0646\u062e\u0633\u062a\u06cc\u0646 \u0631\u0648\u0632 \u0646\u0648\u0631\u0648\u0632", + "date": "2024-03-20" + }, + { + "name": "\u062f\u0648\u0645\u06cc\u0646 \u0631\u0648\u0632 \u0646\u0648\u0631\u0648\u0632", + "date": "2024-03-21" + }, + { + "name": "\u0633\u0648\u0645\u06cc\u0646 \u0631\u0648\u0632 \u0646\u0648\u0631\u0648\u0632", + "date": "2024-03-22" + }, + { + "name": "\u0686\u0647\u0627\u0631\u0645\u06cc\u0646 \u0631\u0648\u0632 \u0646\u0648\u0631\u0648\u0632", + "date": "2024-03-23" + }, + { + "name": "\u0631\u0648\u0632 \u062c\u0645\u0647\u0648\u0631\u06cc \u0627\u0633\u0644\u0627\u0645\u06cc", + "date": "2024-03-31" + }, + { + "name": "\u0633\u06cc\u0632\u062f\u0647 \u0628\u062f\u0631", + "date": "2024-04-01" + }, + { + "name": "\u0631\u062d\u0644\u062a \u0631\u0648\u062d\u200c\u0627\u0644\u0644\u0647 \u062e\u0645\u06cc\u0646\u06cc", + "date": "2024-06-03" + }, + { + "name": "\u0642\u06cc\u0627\u0645 \u06f1\u06f5 \u062e\u0631\u062f\u0627\u062f", + "date": "2024-06-04" + } +] \ No newline at end of file diff --git a/tests/Countries/IranTest.php b/tests/Countries/IranTest.php new file mode 100644 index 000000000..7ceb54944 --- /dev/null +++ b/tests/Countries/IranTest.php @@ -0,0 +1,31 @@ +get(); + + expect($holidays) + ->toBeArray() + ->not()->toBeEmpty(); + + expect(formatDates($holidays))->toMatchSnapshot(); +}); + +it('can calculate iran holidays in local', function (string $locale, string $newYearsDayName) { + CarbonImmutable::setTestNow('2024-01-01'); + $result = Holidays::for(country: 'ir', year: null, locale: $locale)->get(); + + expect($result)->toBeArray(); + expect($result[7]['name'])->toBe($newYearsDayName); +})->with( + [ + ['en', 'Sizdah Bedar'], + ['fa', 'سیزده بدر'], + ] +); \ No newline at end of file