From 61a032c35498b73e7762b24faf1d194eb4cbcdeb Mon Sep 17 00:00:00 2001 From: Stephan Date: Fri, 17 May 2024 17:10:04 +0200 Subject: [PATCH] SecurityAdvisories: changing the remote ID for the same remote advisory should update the source remote ID (#1449) --- src/Entity/SecurityAdvisorySource.php | 1 + .../SecurityAdvisoryResolverTest.php | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/src/Entity/SecurityAdvisorySource.php b/src/Entity/SecurityAdvisorySource.php index c8baa7065..7bb4d29c6 100644 --- a/src/Entity/SecurityAdvisorySource.php +++ b/src/Entity/SecurityAdvisorySource.php @@ -62,6 +62,7 @@ public function getSeverity(): ?Severity public function update(RemoteSecurityAdvisory $advisory): void { + $this->remoteId = $advisory->id; $this->severity = $advisory->severity; } } diff --git a/tests/SecurityAdvisory/SecurityAdvisoryResolverTest.php b/tests/SecurityAdvisory/SecurityAdvisoryResolverTest.php index db8bb7f74..86fe80496 100644 --- a/tests/SecurityAdvisory/SecurityAdvisoryResolverTest.php +++ b/tests/SecurityAdvisory/SecurityAdvisoryResolverTest.php @@ -98,6 +98,18 @@ public function testResolveAddSourceToMatchingAdvisory(): void $this->assertNotNull($advisory->getSourceRemoteId('other')); } + public function testResolveRemoteIdChangedSameCve(): void + { + $remoteAdvisory = $this->createRemoteAdvisory('test', cve: 'CVE-2024-9999999999'); + $advisory = new SecurityAdvisory($this->createRemoteAdvisory('test', cve: 'CVE-2024-9999999999'), 'test'); + [$new, $removed] = $this->resolver->resolve([$advisory], new RemoteSecurityAdvisoryCollection([$remoteAdvisory]), 'test'); + + $this->assertSame([], $new); + $this->assertSame([], $removed); + + $this->assertSame($remoteAdvisory->id, $advisory->getSourceRemoteId('test')); + } + public function testResolveEmpty(): void { [$new, $removed] = $this->resolver->resolve([], new RemoteSecurityAdvisoryCollection([]), 'test');