From 878b02ee52938e1e9ec34f24281b028b389392cf Mon Sep 17 00:00:00 2001 From: Juan Pablo Vial Date: Wed, 7 May 2025 19:42:39 -0400 Subject: [PATCH] =?UTF-8?q?SII=20falla=20si=20fecha=20est=C3=A1=20en=20el?= =?UTF-8?q?=20futuro.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/Service/Money/SII.php | 7 +++++++ app/tests/unit/src/Service/Money/SIITest.php | 10 ++++++++++ 2 files changed, 17 insertions(+) diff --git a/app/src/Service/Money/SII.php b/app/src/Service/Money/SII.php index 8693448..04a0460 100644 --- a/app/src/Service/Money/SII.php +++ b/app/src/Service/Money/SII.php @@ -38,6 +38,10 @@ class SII implements Define\Money\Provider $dateTime = new DateTimeImmutable(); } $year = $this->getUFYear($dateTime); + + if (!isset($year[$dateTime->format('Y-m-d')])) { + throw new EmptyResponse("{$dateTime->format('Y-m-d')} not found"); + } return $year[$dateTime->format('Y-m-d')]; } @@ -51,6 +55,9 @@ class SII implements Define\Money\Provider if ($dateTime === null) { $dateTime = new DateTimeImmutable(); } + if ($dateTime->format('Y') > (new DateTimeImmutable())->format('Y')) { + throw new EmptyResponse("{$dateTime->format('Y')} not found"); + } $request_uri = "uf/uf{$dateTime->format('Y')}.htm"; try { $response = $this->client->get($request_uri); diff --git a/app/tests/unit/src/Service/Money/SIITest.php b/app/tests/unit/src/Service/Money/SIITest.php index 061603b..a39152f 100644 --- a/app/tests/unit/src/Service/Money/SIITest.php +++ b/app/tests/unit/src/Service/Money/SIITest.php @@ -5,6 +5,7 @@ use PDO; use PDOStatement; use GuzzleHttp\Client; use PHPUnit\Framework\TestCase; +use Incoviba\Common\Implement\Exception\EmptyResponse; use Incoviba\Service; use Incoviba\Repository; use Incoviba\Common\Define; @@ -53,4 +54,13 @@ class SIITest extends TestCase $this->assertEquals($expected, $provider->get(Service\Money::UF, $date)); } + public function testGetNoValid(): void + { + $provider = new Service\Money\SII($this->client, $this->ufRepository); + + $date = (new \DateTimeImmutable())->add(new \DateInterval("P1Y")); + + $this->expectException(EmptyResponse::class); + $provider->get(Service\Money::UF, $date); + } }