Skip to content

Commit 2f12406

Browse files
committed
Improve test for deleting package by including metadata
1 parent 9406d57 commit 2f12406

File tree

4 files changed

+39
-11
lines changed

4 files changed

+39
-11
lines changed

src/Doctrine/Entity/Version.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ public function __construct(Package $package)
4444
$this->package = $package;
4545

4646
$this->installations = new VersionInstallations($this);
47+
48+
$package->getVersions()->add($this);
4749
}
4850

4951
public function __toString(): string

src/Package/PackageMetadataResolver.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,8 +163,6 @@ private function updatePackage(Package $package, array $composerPackages, ?VcsDr
163163
$version->setName($composerPackage->getPrettyVersion());
164164
$version->setNormalizedName($composerPackage->getVersion());
165165
$version->setDevelopment($composerPackage->isDev());
166-
167-
$package->getVersions()->add($version);
168166
}
169167

170168
$this->updateVersion($version, $composerPackage, $driver);

tests/FunctionalTests/Controller/Dashboard/DashboardPackagesControllerTest.php

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
use CodedMonkey\Dirigent\Doctrine\Repository\RegistryRepository;
88
use CodedMonkey\Dirigent\Tests\Helper\MockEntityFactoryTrait;
99
use CodedMonkey\Dirigent\Tests\Helper\WebTestCaseTrait;
10-
use Doctrine\ORM\EntityManagerInterface;
1110
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
1211
use Symfony\Component\HttpFoundation\Response;
1312

@@ -89,10 +88,10 @@ public function testDelete(): void
8988
$client = static::createClient();
9089
$this->loginUser('admin');
9190

92-
$entityManager = $this->getService(EntityManagerInterface::class);
91+
$mockEntities = $this->createMockPackageWithMetadata();
92+
$this->persistEntities(...$mockEntities);
9393

94-
$package = $this->createMockPackage();
95-
$this->persistEntities($package);
94+
$package = $mockEntities[0];
9695

9796
// Fetch package id prior to deleting it
9897
$packageId = $package->getId();
@@ -101,9 +100,9 @@ public function testDelete(): void
101100

102101
$this->assertResponseStatusCodeSame(Response::HTTP_FOUND);
103102

104-
$entityManager->clear();
103+
$this->clearEntities();
105104

106-
$savedPackage = $entityManager->find(Package::class, $packageId);
105+
$savedPackage = $this->findEntity(Package::class, $packageId);
107106

108107
$this->assertNull($savedPackage, 'The package was deleted.');
109108
}

tests/Helper/MockEntityFactoryTrait.php

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
namespace CodedMonkey\Dirigent\Tests\Helper;
44

5+
use CodedMonkey\Dirigent\Doctrine\Entity\Metadata;
6+
use CodedMonkey\Dirigent\Doctrine\Entity\MetadataRequireLink;
57
use CodedMonkey\Dirigent\Doctrine\Entity\Package;
68
use CodedMonkey\Dirigent\Doctrine\Entity\User;
79
use CodedMonkey\Dirigent\Doctrine\Entity\Version;
@@ -11,6 +13,20 @@
1113

1214
trait MockEntityFactoryTrait
1315
{
16+
protected function createMockMetadata(Version $version): Metadata
17+
{
18+
$package = $version->getPackage();
19+
20+
$metadata = new Metadata($version);
21+
$metadata->setPackageName($package->getName());
22+
$metadata->setVersionName($version->getName());
23+
$metadata->setNormalizedVersionName($version->getNormalizedName());
24+
25+
new MetadataRequireLink($metadata, 'vendor/dependency', '^1.0', 0);
26+
27+
return $metadata;
28+
}
29+
1430
protected function createMockPackage(): Package
1531
{
1632
$package = new Package();
@@ -19,6 +35,20 @@ protected function createMockPackage(): Package
1935
return $package;
2036
}
2137

38+
/**
39+
* @return array{Package, Version, Metadata}
40+
*/
41+
protected function createMockPackageWithMetadata(): array
42+
{
43+
$package = $this->createMockPackage();
44+
$version = $this->createMockVersion($package);
45+
$metadata = $this->createMockMetadata($version);
46+
47+
$version->setCurrentMetadata($metadata);
48+
49+
return [$package, $version, $metadata];
50+
}
51+
2252
protected function createMockUser(bool $mfaEnabled = false): User
2353
{
2454
$user = new User();
@@ -35,13 +65,12 @@ protected function createMockUser(bool $mfaEnabled = false): User
3565
return $user;
3666
}
3767

38-
protected function createMockVersion(Package $package, string $versionName = '1.0.0'): Version
68+
protected function createMockVersion(Package $package, string $versionName = '1.0.0', bool $development = false): Version
3969
{
4070
$version = new Version($package);
4171
$version->setName($versionName);
4272
$version->setNormalizedName((new VersionParser())->normalize($versionName));
43-
44-
$package->getVersions()->add($version);
73+
$version->setDevelopment($development);
4574

4675
return $version;
4776
}

0 commit comments

Comments
 (0)