mirror of
https://github.com/iflytek/skillhub.git
synced 2026-09-08 22:21:09 +00:00
test(scanner): reproduce unbounded unavailable task
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
This commit is contained in:
parent
d6afc43364
commit
2e697d1581
1 changed files with 37 additions and 0 deletions
|
|
@ -370,6 +370,43 @@ class ScanTaskConsumerTest {
|
|||
verify(consumer.stream, never()).ack("skillhub-scanners", messageId);
|
||||
}
|
||||
|
||||
@Test
|
||||
void handleMessage_whenScannerRemainsUnavailablePastRecoveryWindow_failsAndRemovesDelivery() {
|
||||
StubSecurityScanner securityScanner = new StubSecurityScanner();
|
||||
securityScanner.failure = new SecurityScanException(
|
||||
"scanner timed out", new HttpClientException("request timed out", new java.util.concurrent.TimeoutException()));
|
||||
SkillVersion version = new SkillVersion(8L, "1.0.0", "publisher-1");
|
||||
try {
|
||||
setField(version, "id", 42L);
|
||||
} catch (Exception e) {
|
||||
throw new AssertionError(e);
|
||||
}
|
||||
version.setStatus(SkillVersionStatus.SCANNING);
|
||||
InMemorySkillVersionRepository repository = new InMemorySkillVersionRepository(version);
|
||||
TestableScanTaskConsumer consumer = new TestableScanTaskConsumer(
|
||||
securityScanner,
|
||||
new StubSecurityScanService(),
|
||||
repository,
|
||||
new InMemoryScanTaskProducer(),
|
||||
new InMemoryObjectStorageService()
|
||||
);
|
||||
|
||||
StreamMessageId messageId = new StreamMessageId(13, 0);
|
||||
when(consumer.stream.ack("skillhub-scanners", messageId)).thenReturn(1L);
|
||||
consumer.handleMessage(messageId, Map.of(
|
||||
"taskId", "task-expired-timeout",
|
||||
"versionId", "42",
|
||||
"skillPath", "/tmp/skillhub-scans/42",
|
||||
"createdAtMillis", "1",
|
||||
"scannerType", ScannerType.SKILL_SCANNER.getValue()
|
||||
));
|
||||
|
||||
assertThat(version.getStatus()).isEqualTo(SkillVersionStatus.SCAN_FAILED);
|
||||
assertThat(repository.savedVersion).isSameAs(version);
|
||||
verify(consumer.stream).ack("skillhub-scanners", messageId);
|
||||
verify(consumer.stream).remove(messageId);
|
||||
}
|
||||
|
||||
@Test
|
||||
void processBusiness_whenScannerFails_releasesProcessingLock() {
|
||||
StubSecurityScanner securityScanner = new StubSecurityScanner();
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue