|
5 | 5 | use Illuminate\Contracts\Translation\Loader; |
6 | 6 | use Illuminate\Support\Carbon; |
7 | 7 | use Illuminate\Support\Collection; |
| 8 | +use Illuminate\Tests\Translation\Fixtures\Enums\Bar; |
| 9 | +use Illuminate\Tests\Translation\Fixtures\Enums\Baz; |
| 10 | +use Illuminate\Tests\Translation\Fixtures\Enums\Foo; |
8 | 11 | use Illuminate\Translation\MessageSelector; |
9 | 12 | use Illuminate\Translation\Translator; |
10 | 13 | use Mockery as m; |
@@ -283,6 +286,35 @@ public function testGetJsonReplacesWithStringable() |
283 | 286 | ); |
284 | 287 | } |
285 | 288 |
|
| 289 | + public function testGetJsonReplacesWithEnums() |
| 290 | + { |
| 291 | + $t = new Translator($this->getLoader(), 'en'); |
| 292 | + $t->getLoader() |
| 293 | + ->shouldReceive('load') |
| 294 | + ->once() |
| 295 | + ->with('en', '*', '*') |
| 296 | + ->andReturn([ |
| 297 | + 'string_backed_enum' => 'Laravel 12 was released in :month 2025', |
| 298 | + 'int_backed_enum' => 'Stay tuned for Laravel v:version', |
| 299 | + 'unit_enum' => ':person gets excited about every new Laravel release', |
| 300 | + ]); |
| 301 | + |
| 302 | + $this->assertSame( |
| 303 | + 'Laravel 12 was released in February 2025', |
| 304 | + $t->get('string_backed_enum', ['month' => Baz::February]) |
| 305 | + ); |
| 306 | + |
| 307 | + $this->assertSame( |
| 308 | + 'Stay tuned for Laravel v13', |
| 309 | + $t->get('int_backed_enum', ['version' => Bar::Thirteen]) |
| 310 | + ); |
| 311 | + |
| 312 | + $this->assertSame( |
| 313 | + 'Hosni gets excited about every new Laravel release', |
| 314 | + $t->get('unit_enum', ['person' => Foo::Hosni]) |
| 315 | + ); |
| 316 | + } |
| 317 | + |
286 | 318 | public function testTagReplacements() |
287 | 319 | { |
288 | 320 | $t = new Translator($this->getLoader(), 'en'); |
|
0 commit comments