Skip to content

Commit

Permalink
Update asserts and maps
Browse files Browse the repository at this point in the history
  • Loading branch information
MrHash committed Jun 11, 2020
1 parent 86c80a2 commit 6fdd2cc
Show file tree
Hide file tree
Showing 13 changed files with 498 additions and 104 deletions.
1 change: 0 additions & 1 deletion composer.json
Expand Up @@ -9,7 +9,6 @@
"minimum-stability": "dev",
"require": {
"php": "^7.4",
"beberlei/assert": "^3.0",
"daikon/data-structure": "master@dev",
"daikon/event-sourcing": "master@dev",
"daikon/interop": "master@dev",
Expand Down
484 changes: 412 additions & 72 deletions composer.lock

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions psalm.xml
Expand Up @@ -39,6 +39,7 @@
<MissingConstructor errorLevel="info" />
<MissingClosureParamType errorLevel="info" />
<MissingParamType errorLevel="info" />
<MixedClone errorLevel="suppress" />

<RedundantCondition errorLevel="info" />

Expand Down
7 changes: 2 additions & 5 deletions src/Connector/ConnectorMap.php
Expand Up @@ -8,13 +8,10 @@

namespace Daikon\Dbal\Connector;

use Daikon\DataStructure\TypedMapInterface;
use Daikon\DataStructure\TypedMapTrait;
use Daikon\DataStructure\TypedMap;

final class ConnectorMap implements TypedMapInterface
final class ConnectorMap extends TypedMap
{
use TypedMapTrait;

public function __construct(iterable $connectors = [])
{
$this->init($connectors, [ConnectorInterface::class]);
Expand Down
7 changes: 2 additions & 5 deletions src/Migration/MigrationAdapterMap.php
Expand Up @@ -8,13 +8,10 @@

namespace Daikon\Dbal\Migration;

use Daikon\DataStructure\TypedMapInterface;
use Daikon\DataStructure\TypedMapTrait;
use Daikon\DataStructure\TypedMap;

final class MigrationAdapterMap implements TypedMapInterface
final class MigrationAdapterMap extends TypedMap
{
use TypedMapTrait;

public function __construct(iterable $migrationAdapters = [])
{
$this->init($migrationAdapters, [MigrationAdapterInterface::class]);
Expand Down
7 changes: 2 additions & 5 deletions src/Migration/MigrationList.php
Expand Up @@ -8,14 +8,11 @@

namespace Daikon\Dbal\Migration;

use Daikon\DataStructure\TypedListInterface;
use Daikon\DataStructure\TypedListTrait;
use Daikon\DataStructure\TypedList;
use Daikon\Interop\ToNativeInterface;

final class MigrationList implements TypedListInterface, ToNativeInterface
final class MigrationList extends TypedList implements ToNativeInterface
{
use TypedListTrait;

public function __construct(iterable $migrations = [])
{
$this->init($migrations, [MigrationInterface::class]);
Expand Down
7 changes: 2 additions & 5 deletions src/Migration/MigrationLoaderMap.php
Expand Up @@ -8,13 +8,10 @@

namespace Daikon\Dbal\Migration;

use Daikon\DataStructure\TypedMapInterface;
use Daikon\DataStructure\TypedMapTrait;
use Daikon\DataStructure\TypedMap;

final class MigrationLoaderMap implements TypedMapInterface
final class MigrationLoaderMap extends TypedMap
{
use TypedMapTrait;

public function __construct(iterable $migrationLoaders = [])
{
$this->init($migrationLoaders, [MigrationLoaderInterface::class]);
Expand Down
7 changes: 2 additions & 5 deletions src/Migration/MigrationTargetMap.php
Expand Up @@ -8,13 +8,10 @@

namespace Daikon\Dbal\Migration;

use Daikon\DataStructure\TypedMapInterface;
use Daikon\DataStructure\TypedMapTrait;
use Daikon\DataStructure\TypedMap;

final class MigrationTargetMap implements TypedMapInterface
final class MigrationTargetMap extends TypedMap
{
use TypedMapTrait;

public function __construct(iterable $migrationTargets = [])
{
$this->init($migrationTargets, [MigrationTargetInterface::class]);
Expand Down
2 changes: 1 addition & 1 deletion src/Migration/MigrationTrait.php
Expand Up @@ -8,8 +8,8 @@

namespace Daikon\Dbal\Migration;

use Assert\Assertion;
use Daikon\Dbal\Connector\ConnectorInterface;
use Daikon\Interop\Assertion;
use Daikon\Interop\RuntimeException;
use DateTimeImmutable;
use ReflectionClass;
Expand Down
7 changes: 2 additions & 5 deletions src/Storage/StorageAdapterMap.php
Expand Up @@ -8,15 +8,12 @@

namespace Daikon\Dbal\Storage;

use Daikon\DataStructure\TypedMapInterface;
use Daikon\DataStructure\TypedMapTrait;
use Daikon\DataStructure\TypedMap;
use Daikon\ReadModel\Storage\StorageAdapterInterface as ReadModelStorageAdapterInterface;
use Daikon\EventSourcing\EventStore\Storage\StorageAdapterInterface as EventStoreStorageAdapterInterface;

final class StorageAdapterMap implements TypedMapInterface
final class StorageAdapterMap extends TypedMap
{
use TypedMapTrait;

public function __construct(iterable $storageAdapters = [])
{
$this->init(
Expand Down
Empty file removed tests/.keep
Empty file.
36 changes: 36 additions & 0 deletions tests/Connector/ConnectorMapTest.php
@@ -0,0 +1,36 @@
<?php declare(strict_types=1);
/**
* This file is part of the daikon-cqrs/dbal project.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/

namespace Daikon\Tests\Dbal\Connector;

use Daikon\Dbal\Connector\ConnectorInterface;
use Daikon\Dbal\Connector\ConnectorMap;
use PHPUnit\Framework\TestCase;

final class ConnectorMapTest extends TestCase
{
public function testConstructWithSelf(): void
{
$connectorMock = $this->createMock(ConnectorInterface::class);
$connectorMap = new ConnectorMap(['mock' => $connectorMock]);
$newMap = new ConnectorMap($connectorMap);
$this->assertCount(1, $newMap);
$this->assertNotSame($connectorMap, $newMap);
$this->assertEquals($connectorMap, $newMap);
}

public function testPush(): void
{
$emptyMap = new ConnectorMap;
$connectorMock = $this->createMock(ConnectorInterface::class);
$connectorMap = $emptyMap->with('mock', $connectorMock);
$this->assertCount(1, $connectorMap);
$this->assertEquals($connectorMock, $connectorMap->get('mock'));
$this->assertTrue($emptyMap->isEmpty());
}
}
36 changes: 36 additions & 0 deletions tests/Migration/MigrationAdapterMapTest.php
@@ -0,0 +1,36 @@
<?php declare(strict_types=1);
/**
* This file is part of the daikon-cqrs/dbal project.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/

namespace Daikon\Tests\Dbal\Migration;

use Daikon\Dbal\Migration\MigrationAdapterInterface;
use Daikon\Dbal\Migration\MigrationAdapterMap;
use PHPUnit\Framework\TestCase;

final class MigrationAdapterMapTest extends TestCase
{
public function testConstructWithSelf(): void
{
$adapterMock = $this->createMock(MigrationAdapterInterface::class);
$adapterMap = new MigrationAdapterMap(['mock' => $adapterMock]);
$newMap = new MigrationAdapterMap($adapterMap);
$this->assertCount(1, $newMap);
$this->assertNotSame($adapterMap, $newMap);
$this->assertEquals($adapterMap, $newMap);
}

public function testPush(): void
{
$emptyMap = new MigrationAdapterMap;
$adapterMock = $this->createMock(MigrationAdapterInterface::class);
$adapterMap = $emptyMap->with('mock', $adapterMock);
$this->assertCount(1, $adapterMap);
$this->assertEquals($adapterMock, $adapterMap->get('mock'));
$this->assertTrue($emptyMap->isEmpty());
}
}

0 comments on commit 6fdd2cc

Please sign in to comment.