public function VariantCollectionTraitTest::testAddVariant in Chaos Tool Suite (ctools) 8.3
@covers ::addVariant
File
- tests/
src/ Unit/ VariantCollectionTraitTest.php, line 83
Class
- VariantCollectionTraitTest
- Tests the methods of a variant-aware class.
Namespace
Drupal\Tests\ctools\UnitCode
public function testAddVariant() {
$config = [
'id' => 'foo',
];
$uuid = 'test-uuid';
$expected_config = $config + [
'uuid' => $uuid,
];
$uuid_generator = $this
->prophesize(UuidInterface::class);
$uuid_generator
->generate()
->willReturn($uuid)
->shouldBeCalledTimes(1);
$trait_object = new TestVariantCollectionTrait();
$trait_object
->setUuidGenerator($uuid_generator
->reveal());
$plugin_prophecy = $this
->prophesize(VariantInterface::class);
$plugin_prophecy
->getConfiguration()
->willReturn($expected_config)
->shouldBeCalled();
$plugin_prophecy
->setConfiguration($expected_config)
->willReturn($expected_config)
->shouldBeCalled();
$this->manager
->createInstance('foo', $expected_config)
->willReturn($plugin_prophecy
->reveal());
$resulting_uuid = $trait_object
->addVariant($config);
$this
->assertSame($uuid, $resulting_uuid);
$variants = $trait_object
->getVariants();
$this
->assertSame([
$uuid => $uuid,
], $variants
->getInstanceIds());
$this
->assertSame([
$uuid => $expected_config,
], $variants
->getConfiguration());
$this
->assertSame($plugin_prophecy
->reveal(), $variants
->get($uuid));
return [
$trait_object,
$uuid,
$plugin_prophecy
->reveal(),
];
}