Commit 20da9826 authored by Stephane Nicoll's avatar Stephane Nicoll

Disable incrementalBuildTypeRenamed test

This commit disables a test that does not test what it is supposed to
and improve the Metadata assertions to fail early if more than one
matching item by name and type is found in the metadata.

See gh-26271
parent e4d93b36
/* /*
* Copyright 2012-2020 the original author or authors. * Copyright 2012-2021 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
package org.springframework.boot.configurationprocessor; package org.springframework.boot.configurationprocessor;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.boot.configurationprocessor.metadata.ConfigurationMetadata; import org.springframework.boot.configurationprocessor.metadata.ConfigurationMetadata;
...@@ -74,6 +75,7 @@ class IncrementalBuildMetadataGenerationTests extends AbstractMetadataGeneration ...@@ -74,6 +75,7 @@ class IncrementalBuildMetadataGenerationTests extends AbstractMetadataGeneration
} }
@Test @Test
@Disabled("gh-26271")
void incrementalBuildTypeRenamed() throws Exception { void incrementalBuildTypeRenamed() throws Exception {
TestProject project = new TestProject(this.tempDir, FooProperties.class, BarProperties.class); TestProject project = new TestProject(this.tempDir, FooProperties.class, BarProperties.class);
ConfigurationMetadata metadata = project.fullBuild(); ConfigurationMetadata metadata = project.fullBuild();
......
/* /*
* Copyright 2012-2019 the original author or authors. * Copyright 2012-2021 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
...@@ -20,6 +20,7 @@ import java.util.ArrayList; ...@@ -20,6 +20,7 @@ import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
import org.assertj.core.api.Condition; import org.assertj.core.api.Condition;
import org.hamcrest.collection.IsMapContaining; import org.hamcrest.collection.IsMapContaining;
...@@ -131,7 +132,7 @@ public final class Metadata { ...@@ -131,7 +132,7 @@ public final class Metadata {
@Override @Override
public boolean matches(ConfigurationMetadata value) { public boolean matches(ConfigurationMetadata value) {
ItemMetadata itemMetadata = getFirstItemWithName(value, this.name); ItemMetadata itemMetadata = findItem(value, this.name);
if (itemMetadata == null) { if (itemMetadata == null) {
return false; return false;
} }
...@@ -207,13 +208,14 @@ public final class Metadata { ...@@ -207,13 +208,14 @@ public final class Metadata {
this.description, this.defaultValue, null); this.description, this.defaultValue, null);
} }
private ItemMetadata getFirstItemWithName(ConfigurationMetadata metadata, String name) { private ItemMetadata findItem(ConfigurationMetadata metadata, String name) {
for (ItemMetadata item : metadata.getItems()) { List<ItemMetadata> candidates = metadata.getItems().stream()
if (item.isOfItemType(this.itemType) && name.equals(item.getName())) { .filter((item) -> item.isOfItemType(this.itemType) && name.equals(item.getName()))
return item; .collect(Collectors.toList());
} if (candidates.size() > 1) {
throw new IllegalStateException("More that one metadata item with name '" + name + "': " + candidates);
} }
return null; return (candidates.size() == 1) ? candidates.get(0) : null;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment