|
|
|
|
@ -1,5 +1,5 @@
@@ -1,5 +1,5 @@
|
|
|
|
|
/* |
|
|
|
|
* 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"); |
|
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
|
@ -64,10 +64,8 @@ class ConfigurationMetadataRepositoryJsonBuilderTests extends AbstractConfigurat
@@ -64,10 +64,8 @@ class ConfigurationMetadataRepositoryJsonBuilderTests extends AbstractConfigurat
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void severalRepositoriesNoConflict() throws IOException { |
|
|
|
|
try (InputStream foo = getInputStreamFor("foo")) { |
|
|
|
|
try (InputStream bar = getInputStreamFor("bar")) { |
|
|
|
|
ConfigurationMetadataRepository repo = ConfigurationMetadataRepositoryJsonBuilder.create(foo, bar) |
|
|
|
|
.build(); |
|
|
|
|
try (InputStream foo = getInputStreamFor("foo"); InputStream bar = getInputStreamFor("bar")) { |
|
|
|
|
ConfigurationMetadataRepository repo = ConfigurationMetadataRepositoryJsonBuilder.create(foo, bar).build(); |
|
|
|
|
validateFoo(repo); |
|
|
|
|
validateBar(repo); |
|
|
|
|
assertThat(repo.getAllGroups()).hasSize(2); |
|
|
|
|
@ -76,14 +74,11 @@ class ConfigurationMetadataRepositoryJsonBuilderTests extends AbstractConfigurat
@@ -76,14 +74,11 @@ class ConfigurationMetadataRepositoryJsonBuilderTests extends AbstractConfigurat
|
|
|
|
|
assertThat(repo.getAllProperties()).hasSize(6); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void repositoryWithRoot() throws IOException { |
|
|
|
|
try (InputStream foo = getInputStreamFor("foo")) { |
|
|
|
|
try (InputStream root = getInputStreamFor("root")) { |
|
|
|
|
ConfigurationMetadataRepository repo = ConfigurationMetadataRepositoryJsonBuilder.create(foo, root) |
|
|
|
|
.build(); |
|
|
|
|
try (InputStream foo = getInputStreamFor("foo"); InputStream root = getInputStreamFor("root")) { |
|
|
|
|
ConfigurationMetadataRepository repo = ConfigurationMetadataRepositoryJsonBuilder.create(foo, root).build(); |
|
|
|
|
validateFoo(repo); |
|
|
|
|
assertThat(repo.getAllGroups()).hasSize(2); |
|
|
|
|
|
|
|
|
|
@ -92,16 +87,13 @@ class ConfigurationMetadataRepositoryJsonBuilderTests extends AbstractConfigurat
@@ -92,16 +87,13 @@ class ConfigurationMetadataRepositoryJsonBuilderTests extends AbstractConfigurat
|
|
|
|
|
assertThat(repo.getAllProperties()).hasSize(5); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void severalRepositoriesIdenticalGroups() throws IOException { |
|
|
|
|
try (InputStream foo = getInputStreamFor("foo")) { |
|
|
|
|
try (InputStream foo2 = getInputStreamFor("foo2")) { |
|
|
|
|
ConfigurationMetadataRepository repo = ConfigurationMetadataRepositoryJsonBuilder.create(foo, foo2) |
|
|
|
|
.build(); |
|
|
|
|
Iterable<String> allKeys = Arrays.asList("spring.foo.name", "spring.foo.description", |
|
|
|
|
"spring.foo.counter", "spring.foo.enabled", "spring.foo.type"); |
|
|
|
|
try (InputStream foo = getInputStreamFor("foo"); InputStream foo2 = getInputStreamFor("foo2")) { |
|
|
|
|
ConfigurationMetadataRepository repo = ConfigurationMetadataRepositoryJsonBuilder.create(foo, foo2).build(); |
|
|
|
|
Iterable<String> allKeys = Arrays.asList("spring.foo.name", "spring.foo.description", "spring.foo.counter", |
|
|
|
|
"spring.foo.enabled", "spring.foo.type"); |
|
|
|
|
assertThat(repo.getAllProperties()).containsOnlyKeys(allKeys); |
|
|
|
|
assertThat(repo.getAllGroups()).containsOnlyKeys("spring.foo"); |
|
|
|
|
ConfigurationMetadataGroup group = repo.getAllGroups().get("spring.foo"); |
|
|
|
|
@ -110,49 +102,41 @@ class ConfigurationMetadataRepositoryJsonBuilderTests extends AbstractConfigurat
@@ -110,49 +102,41 @@ class ConfigurationMetadataRepositoryJsonBuilderTests extends AbstractConfigurat
|
|
|
|
|
"org.springframework.boot.FooProperties"); |
|
|
|
|
assertThat(group.getSources().get("org.acme.Foo").getProperties()).containsOnlyKeys("spring.foo.name", |
|
|
|
|
"spring.foo.description"); |
|
|
|
|
assertThat(group.getSources().get("org.acme.Foo2").getProperties()) |
|
|
|
|
.containsOnlyKeys("spring.foo.enabled", "spring.foo.type"); |
|
|
|
|
assertThat(group.getSources().get("org.acme.Foo2").getProperties()).containsOnlyKeys("spring.foo.enabled", |
|
|
|
|
"spring.foo.type"); |
|
|
|
|
assertThat(group.getSources().get("org.springframework.boot.FooProperties").getProperties()) |
|
|
|
|
.containsOnlyKeys("spring.foo.name", "spring.foo.counter"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void severalRepositoriesIdenticalGroupsWithSameType() throws IOException { |
|
|
|
|
try (InputStream foo = getInputStreamFor("foo")) { |
|
|
|
|
try (InputStream foo3 = getInputStreamFor("foo3")) { |
|
|
|
|
ConfigurationMetadataRepository repo = ConfigurationMetadataRepositoryJsonBuilder.create(foo, foo3) |
|
|
|
|
.build(); |
|
|
|
|
Iterable<String> allKeys = Arrays.asList("spring.foo.name", "spring.foo.description", |
|
|
|
|
"spring.foo.counter", "spring.foo.enabled", "spring.foo.type"); |
|
|
|
|
try (InputStream foo = getInputStreamFor("foo"); InputStream foo3 = getInputStreamFor("foo3")) { |
|
|
|
|
ConfigurationMetadataRepository repo = ConfigurationMetadataRepositoryJsonBuilder.create(foo, foo3).build(); |
|
|
|
|
Iterable<String> allKeys = Arrays.asList("spring.foo.name", "spring.foo.description", "spring.foo.counter", |
|
|
|
|
"spring.foo.enabled", "spring.foo.type"); |
|
|
|
|
assertThat(repo.getAllProperties()).containsOnlyKeys(allKeys); |
|
|
|
|
assertThat(repo.getAllGroups()).containsOnlyKeys("spring.foo"); |
|
|
|
|
ConfigurationMetadataGroup group = repo.getAllGroups().get("spring.foo"); |
|
|
|
|
assertThat(group.getProperties()).containsOnlyKeys(allKeys); |
|
|
|
|
assertThat(group.getSources()).containsOnlyKeys("org.acme.Foo", |
|
|
|
|
"org.springframework.boot.FooProperties"); |
|
|
|
|
assertThat(group.getSources()).containsOnlyKeys("org.acme.Foo", "org.springframework.boot.FooProperties"); |
|
|
|
|
assertThat(group.getSources().get("org.acme.Foo").getProperties()).containsOnlyKeys("spring.foo.name", |
|
|
|
|
"spring.foo.description", "spring.foo.enabled", "spring.foo.type"); |
|
|
|
|
assertThat(group.getSources().get("org.springframework.boot.FooProperties").getProperties()) |
|
|
|
|
.containsOnlyKeys("spring.foo.name", "spring.foo.counter"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void severalRepositoriesIdenticalGroupsWithSameTypeDoesNotOverrideSource() throws IOException { |
|
|
|
|
try (InputStream foo = getInputStreamFor("foo")) { |
|
|
|
|
try (InputStream foo3 = getInputStreamFor("foo3")) { |
|
|
|
|
ConfigurationMetadataRepository repo = ConfigurationMetadataRepositoryJsonBuilder.create(foo, foo3) |
|
|
|
|
.build(); |
|
|
|
|
try (InputStream foo = getInputStreamFor("foo"); InputStream foo3 = getInputStreamFor("foo3")) { |
|
|
|
|
ConfigurationMetadataRepository repo = ConfigurationMetadataRepositoryJsonBuilder.create(foo, foo3).build(); |
|
|
|
|
ConfigurationMetadataGroup group = repo.getAllGroups().get("spring.foo"); |
|
|
|
|
ConfigurationMetadataSource fooSource = group.getSources().get("org.acme.Foo"); |
|
|
|
|
assertThat(fooSource.getSourceMethod()).isEqualTo("foo()"); |
|
|
|
|
assertThat(fooSource.getDescription()).isEqualTo("This is Foo."); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void emptyGroups() throws IOException { |
|
|
|
|
@ -185,10 +169,8 @@ class ConfigurationMetadataRepositoryJsonBuilderTests extends AbstractConfigurat
@@ -185,10 +169,8 @@ class ConfigurationMetadataRepositoryJsonBuilderTests extends AbstractConfigurat
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void builderInstancesAreIsolated() throws IOException { |
|
|
|
|
try (InputStream foo = getInputStreamFor("foo")) { |
|
|
|
|
try (InputStream bar = getInputStreamFor("bar")) { |
|
|
|
|
ConfigurationMetadataRepositoryJsonBuilder builder = ConfigurationMetadataRepositoryJsonBuilder |
|
|
|
|
.create(); |
|
|
|
|
try (InputStream foo = getInputStreamFor("foo"); InputStream bar = getInputStreamFor("bar")) { |
|
|
|
|
ConfigurationMetadataRepositoryJsonBuilder builder = ConfigurationMetadataRepositoryJsonBuilder.create(); |
|
|
|
|
ConfigurationMetadataRepository firstRepo = builder.withJsonResource(foo).build(); |
|
|
|
|
validateFoo(firstRepo); |
|
|
|
|
ConfigurationMetadataRepository secondRepo = builder.withJsonResource(bar).build(); |
|
|
|
|
@ -202,7 +184,6 @@ class ConfigurationMetadataRepositoryJsonBuilderTests extends AbstractConfigurat
@@ -202,7 +184,6 @@ class ConfigurationMetadataRepositoryJsonBuilderTests extends AbstractConfigurat
|
|
|
|
|
assertThat(secondRepo.getAllProperties()).hasSize(6); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void validateFoo(ConfigurationMetadataRepository repo) { |
|
|
|
|
ConfigurationMetadataGroup group = repo.getAllGroups().get("spring.foo"); |
|
|
|
|
|