@Test
public void execute_read_plugins_from_report() {
pluginRepository.add(
new PluginInfo("java"),
new PluginInfo("customjava").setBasePlugin("java"),
new PluginInfo("php"));
ScannerReport.Metadata.Builder metadataBuilder = newBatchReportBuilder();
metadataBuilder.putPluginsByKey("java", ScannerReport.Metadata.Plugin.newBuilder().setKey("java").setUpdatedAt(10L).build());
metadataBuilder.putPluginsByKey("php", ScannerReport.Metadata.Plugin.newBuilder().setKey("php").setUpdatedAt(20L).build());
metadataBuilder.putPluginsByKey("customjava", ScannerReport.Metadata.Plugin.newBuilder().setKey("customjava").setUpdatedAt(30L).build());
metadataBuilder.putPluginsByKey("uninstalled", ScannerReport.Metadata.Plugin.newBuilder().setKey("uninstalled").setUpdatedAt(40L).build());
reportReader.setMetadata(metadataBuilder.build());
underTest.execute(new TestComputationStepContext());
Assertions.assertThat(analysisMetadataHolder.getScannerPluginsByKey().values()).extracting(ScannerPlugin::getKey, ScannerPlugin::getBasePluginKey, ScannerPlugin::getUpdatedAt)
.containsExactlyInAnyOrder(
tuple("java", null, 10L),
tuple("php", null, 20L),
tuple("customjava", "java", 30L),
tuple("uninstalled", null, 40L));
}