Skip to content

Commit 2db5779

Browse files
ISSUE #1659: Smarter caching in DbalActivityRepository
1 parent 80f818f commit 2db5779

File tree

3 files changed

+126
-12
lines changed

3 files changed

+126
-12
lines changed

config/reference.php

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1098,17 +1098,6 @@
10981098
* doctrine?: DoctrineConfig,
10991099
* doctrine_migrations?: DoctrineMigrationsConfig,
11001100
* twig?: TwigConfig,
1101-
* "when@dev"?: array{
1102-
* imports?: ImportsConfig,
1103-
* parameters?: ParametersConfig,
1104-
* services?: ServicesConfig,
1105-
* framework?: FrameworkConfig,
1106-
* flysystem?: FlysystemConfig,
1107-
* monolog?: MonologConfig,
1108-
* doctrine?: DoctrineConfig,
1109-
* doctrine_migrations?: DoctrineMigrationsConfig,
1110-
* twig?: TwigConfig,
1111-
* },
11121101
* "when@prod"?: array{
11131102
* imports?: ImportsConfig,
11141103
* parameters?: ParametersConfig,
@@ -1211,7 +1200,6 @@ public static function config(array $config): array
12111200
* deprecated?: array{package:string, version:string, message?:string},
12121201
* }
12131202
* @psalm-type RoutesConfig = array{
1214-
* "when@dev"?: array<string, RouteConfig|ImportConfig|AliasConfig>,
12151203
* "when@prod"?: array<string, RouteConfig|ImportConfig|AliasConfig>,
12161204
* "when@test"?: array<string, RouteConfig|ImportConfig|AliasConfig>,
12171205
* ...<string, RouteConfig|ImportConfig|AliasConfig>
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
<?php
2+
3+
namespace App\Tests\Domain\Activity;
4+
5+
use App\Domain\Activity\ActivityId;
6+
use App\Domain\Activity\ActivityRepository;
7+
use App\Domain\Activity\ActivityWithRawData;
8+
use App\Domain\Activity\ActivityWithRawDataRepository;
9+
use App\Domain\Activity\DbalActivityRepository;
10+
use App\Domain\Activity\DbalActivityWithRawDataRepository;
11+
use App\Infrastructure\Exception\EntityNotFound;
12+
use App\Infrastructure\ValueObject\Time\SerializableDateTime;
13+
use App\Tests\ContainerTestCase;
14+
15+
class DbalActivityRepositoryTest extends ContainerTestCase
16+
{
17+
private ActivityRepository $activityRepository;
18+
private ActivityWithRawDataRepository $activityWithRawDataRepository;
19+
20+
public function testFind(): void
21+
{
22+
$activityOne = ActivityBuilder::fromDefaults()
23+
->withActivityId(ActivityId::fromUnprefixed(1))
24+
->withStartDateTime(SerializableDateTime::fromString('2023-10-10 14:00:34'))
25+
->build();
26+
$this->activityWithRawDataRepository->add(ActivityWithRawData::fromState(
27+
$activityOne,
28+
['raw' => 'data']
29+
));
30+
31+
$this->assertEquals(
32+
$activityOne,
33+
$this->activityRepository->find($activityOne->getId())
34+
);
35+
36+
$activityTwo = ActivityBuilder::fromDefaults()
37+
->withActivityId(ActivityId::fromUnprefixed(2))
38+
->withStartDateTime(SerializableDateTime::fromString('2023-10-10 14:00:34'))
39+
->build();
40+
$this->activityWithRawDataRepository->add(ActivityWithRawData::fromState(
41+
$activityTwo,
42+
['raw' => 'data']
43+
));
44+
45+
$this->assertEquals(
46+
$activityTwo,
47+
$this->activityRepository->find($activityTwo->getId())
48+
);
49+
}
50+
51+
public function testItShouldThrowWhenNotFound(): void
52+
{
53+
$this->expectExceptionObject(new EntityNotFound('Activity "activity-1" not found'));
54+
$this->activityRepository->find(ActivityId::fromUnprefixed(1));
55+
}
56+
57+
#[\Override]
58+
protected function setUp(): void
59+
{
60+
parent::setUp();
61+
62+
$this->activityRepository = new DbalActivityRepository(
63+
$this->getConnection(),
64+
);
65+
$this->activityWithRawDataRepository = new DbalActivityWithRawDataRepository(
66+
$this->getConnection(),
67+
$this->activityRepository,
68+
);
69+
}
70+
}

0 commit comments

Comments
 (0)