|
19 | 19 | use Zenstruck\Foundry\Test\Factories;
|
20 | 20 | use Zenstruck\Foundry\Tests\Fixture\Factories\Object1Factory;
|
21 | 21 | use Zenstruck\Foundry\Tests\Fixture\Factories\Object2Factory;
|
| 22 | +use Zenstruck\Foundry\Tests\Fixture\Factories\SimpleObjectFactory; |
22 | 23 | use Zenstruck\Foundry\Tests\Fixture\Object1;
|
23 | 24 |
|
24 | 25 | use function Zenstruck\Foundry\factory;
|
@@ -434,6 +435,43 @@ public function can_use_sequence_with_associative_array(): void
|
434 | 435 | );
|
435 | 436 | }
|
436 | 437 |
|
| 438 | + /** |
| 439 | + * @test |
| 440 | + */ |
| 441 | + #[Test] |
| 442 | + public function distribute(): void |
| 443 | + { |
| 444 | + $objects = SimpleObjectFactory::new()->distribute('prop1', ['foo', 'bar'])->create(); |
| 445 | + |
| 446 | + self::assertCount(2, $objects); |
| 447 | + self::assertSame('foo', $objects[0]->prop1); |
| 448 | + self::assertSame('bar', $objects[1]->prop1); |
| 449 | + } |
| 450 | + |
| 451 | + /** |
| 452 | + * @test |
| 453 | + */ |
| 454 | + #[Test] |
| 455 | + public function distribute_on_factory_collection(): void |
| 456 | + { |
| 457 | + $objects = SimpleObjectFactory::new()->many(2)->distribute('prop1', ['foo', 'bar'])->create(); |
| 458 | + |
| 459 | + self::assertCount(2, $objects); |
| 460 | + self::assertSame('foo', $objects[0]->prop1); |
| 461 | + self::assertSame('bar', $objects[1]->prop1); |
| 462 | + } |
| 463 | + |
| 464 | + /** |
| 465 | + * @test |
| 466 | + */ |
| 467 | + #[Test] |
| 468 | + public function providing_invalid_values_number_to_distribute_throws(): void |
| 469 | + { |
| 470 | + $this->expectException(\InvalidArgumentException::class); |
| 471 | + |
| 472 | + SimpleObjectFactory::new()->many(2)->distribute('prop1', ['foo']); |
| 473 | + } |
| 474 | + |
437 | 475 | /**
|
438 | 476 | * @test
|
439 | 477 | */
|
|
0 commit comments