Add tests
This commit is contained in:
64
tests/Model/MetadataTest.php
Normal file
64
tests/Model/MetadataTest.php
Normal file
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Pcm\MetadataBundle\Tests\Model;
|
||||
|
||||
use Pcm\MetadataBundle\Exception\MissingKeyException;
|
||||
use Pcm\MetadataBundle\Model\Metadata;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
final class MetadataTest extends TestCase
|
||||
{
|
||||
private Metadata $metadata;
|
||||
|
||||
protected function setUp(): void
|
||||
{
|
||||
$array = []; // Needs to be a var as it's passed by reference
|
||||
$this->metadata = new Metadata($array);
|
||||
}
|
||||
|
||||
public function testGetReturnsSetValue(): void
|
||||
{
|
||||
$value = 'brad woz ere';
|
||||
$this->metadata->set('key', $value);
|
||||
$result = $this->metadata->get('key');
|
||||
$this->assertSame($value, $result);
|
||||
}
|
||||
|
||||
public function testGetThrowsWhenKeyNotSet(): void
|
||||
{
|
||||
$this->expectException(MissingKeyException::class);
|
||||
$this->metadata->get('missing');
|
||||
}
|
||||
|
||||
public function testValueIsOverwritten(): void
|
||||
{
|
||||
$key = 'key';
|
||||
$valueA = 'meta';
|
||||
$valueB = 'data';
|
||||
|
||||
$this->metadata->set($key, $valueA);
|
||||
$result = $this->metadata->get($key);
|
||||
$this->assertSame($valueA, $result);
|
||||
|
||||
$this->metadata->set($key, $valueB);
|
||||
$result = $this->metadata->get($key);
|
||||
$this->assertSame($valueB, $result);
|
||||
}
|
||||
|
||||
public function testHasReturnsTrueWhenKeyIsSet(): void
|
||||
{
|
||||
$key = 'null';
|
||||
$this->metadata->set($key, null);
|
||||
$result = $this->metadata->has($key);
|
||||
$this->assertTrue($result);
|
||||
}
|
||||
|
||||
public function testHasReturnsFalseWhenKeyIsNotSet(): void
|
||||
{
|
||||
$result = $this->metadata->has('missing');
|
||||
$this->assertFalse($result);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user