Add prefix to appendix property anchor links
Refactor property appendix generator code so that the complete section is generated and anchors follow the expected naming. Closes gh-26375
This commit is contained in:
@@ -1,47 +0,0 @@
|
||||
/*
|
||||
* Copyright 2012-2020 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.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.build.context.properties;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* Tests for {@link CompoundConfigurationTableEntry}.
|
||||
*
|
||||
* @author Brian Clozel
|
||||
*/
|
||||
public class CompoundConfigurationTableEntryTests {
|
||||
|
||||
private static final String NEWLINE = System.lineSeparator();
|
||||
|
||||
@Test
|
||||
void simpleProperty() {
|
||||
ConfigurationProperty firstProp = new ConfigurationProperty("spring.test.first", "java.lang.String");
|
||||
ConfigurationProperty secondProp = new ConfigurationProperty("spring.test.second", "java.lang.String");
|
||||
ConfigurationProperty thirdProp = new ConfigurationProperty("spring.test.third", "java.lang.String");
|
||||
CompoundConfigurationTableEntry entry = new CompoundConfigurationTableEntry("spring.test",
|
||||
"This is a description.");
|
||||
entry.addConfigurationKeys(firstProp, secondProp, thirdProp);
|
||||
AsciidocBuilder builder = new AsciidocBuilder();
|
||||
entry.write(builder);
|
||||
assertThat(builder.toString()).isEqualTo("|[[spring.test]]<<spring.test,`+spring.test.first+` +" + NEWLINE
|
||||
+ "`+spring.test.second+` +" + NEWLINE + "`+spring.test.third+` +" + NEWLINE + ">>" + NEWLINE + NEWLINE
|
||||
+ "|" + NEWLINE + "|+++This is a description.+++" + NEWLINE);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
/*
|
||||
* 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.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.build.context.properties;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* Tests for {@link CompoundRow}.
|
||||
*
|
||||
* @author Brian Clozel
|
||||
*/
|
||||
public class CompoundRowTests {
|
||||
|
||||
private static final String NEWLINE = System.lineSeparator();
|
||||
|
||||
private static final Snippet SNIPPET = new Snippet("my", "title", null);
|
||||
|
||||
@Test
|
||||
void simpleProperty() {
|
||||
CompoundRow row = new CompoundRow(SNIPPET, "spring.test", "This is a description.");
|
||||
row.addProperty(new ConfigurationProperty("spring.test.first", "java.lang.String"));
|
||||
row.addProperty(new ConfigurationProperty("spring.test.second", "java.lang.String"));
|
||||
row.addProperty(new ConfigurationProperty("spring.test.third", "java.lang.String"));
|
||||
Asciidoc asciidoc = new Asciidoc();
|
||||
row.write(asciidoc);
|
||||
assertThat(asciidoc.toString()).isEqualTo("|[[my.spring.test]]<<my.spring.test,`+spring.test.first+` +"
|
||||
+ NEWLINE + "`+spring.test.second+` +" + NEWLINE + "`+spring.test.third+` +" + NEWLINE + ">>" + NEWLINE
|
||||
+ "|+++This is a description.+++" + NEWLINE + "|" + NEWLINE);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -18,7 +18,6 @@ package org.springframework.boot.build.context.properties;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Arrays;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
@@ -33,7 +32,7 @@ class ConfigurationPropertiesTests {
|
||||
|
||||
@Test
|
||||
void whenJsonHasAnIntegerDefaultValueThenItRemainsAnIntegerWhenRead() {
|
||||
Map<String, ConfigurationProperty> properties = ConfigurationProperties
|
||||
ConfigurationProperties properties = ConfigurationProperties
|
||||
.fromFiles(Arrays.asList(new File("src/test/resources/spring-configuration-metadata.json")));
|
||||
assertThat(properties.get("example.counter").getDefaultValue()).isEqualTo(0);
|
||||
}
|
||||
|
||||
@@ -1,49 +0,0 @@
|
||||
/*
|
||||
* 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.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.build.context.properties;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* Tests for {@link ConfigurationTable}.
|
||||
*
|
||||
* @author Brian Clozel
|
||||
*/
|
||||
public class ConfigurationTableTests {
|
||||
|
||||
private static final String NEWLINE = System.lineSeparator();
|
||||
|
||||
@Test
|
||||
void simpleTable() {
|
||||
ConfigurationTable table = new ConfigurationTable("test");
|
||||
ConfigurationProperty first = new ConfigurationProperty("spring.test.prop", "java.lang.String", "something",
|
||||
"This is a description.", false);
|
||||
ConfigurationProperty second = new ConfigurationProperty("spring.test.other", "java.lang.String", "other value",
|
||||
"This is another description.", false);
|
||||
table.addEntry(new SingleConfigurationTableEntry(first));
|
||||
table.addEntry(new SingleConfigurationTableEntry(second));
|
||||
assertThat(table.toAsciidocTable()).isEqualTo("[cols=\"4,3,3\", options=\"header\"]" + NEWLINE + "|==="
|
||||
+ NEWLINE + "|Key|Default Value|Description" + NEWLINE + NEWLINE
|
||||
+ "|[[spring.test.other]]<<spring.test.other,`+spring.test.other+`>>" + NEWLINE + "|`+other value+`"
|
||||
+ NEWLINE + "|+++This is another description.+++" + NEWLINE + NEWLINE
|
||||
+ "|[[spring.test.prop]]<<spring.test.prop,`+spring.test.prop+`>>" + NEWLINE + "|`+something+`"
|
||||
+ NEWLINE + "|+++This is a description.+++" + NEWLINE + NEWLINE + "|===" + NEWLINE);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,111 +0,0 @@
|
||||
/*
|
||||
* Copyright 2012-2020 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.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.build.context.properties;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* Tests for {@link SingleConfigurationTableEntry}.
|
||||
*
|
||||
* @author Brian Clozel
|
||||
*/
|
||||
public class SingleConfigurationTableEntryTests {
|
||||
|
||||
private static final String NEWLINE = System.lineSeparator();
|
||||
|
||||
@Test
|
||||
void simpleProperty() {
|
||||
ConfigurationProperty property = new ConfigurationProperty("spring.test.prop", "java.lang.String", "something",
|
||||
"This is a description.", false);
|
||||
SingleConfigurationTableEntry entry = new SingleConfigurationTableEntry(property);
|
||||
AsciidocBuilder builder = new AsciidocBuilder();
|
||||
entry.write(builder);
|
||||
assertThat(builder.toString()).isEqualTo("|[[spring.test.prop]]<<spring.test.prop,`+spring.test.prop+`>>"
|
||||
+ NEWLINE + "|`+something+`" + NEWLINE + "|+++This is a description.+++" + NEWLINE);
|
||||
}
|
||||
|
||||
@Test
|
||||
void noDefaultValue() {
|
||||
ConfigurationProperty property = new ConfigurationProperty("spring.test.prop", "java.lang.String", null,
|
||||
"This is a description.", false);
|
||||
SingleConfigurationTableEntry entry = new SingleConfigurationTableEntry(property);
|
||||
AsciidocBuilder builder = new AsciidocBuilder();
|
||||
entry.write(builder);
|
||||
assertThat(builder.toString()).isEqualTo("|[[spring.test.prop]]<<spring.test.prop,`+spring.test.prop+`>>"
|
||||
+ NEWLINE + "|" + NEWLINE + "|+++This is a description.+++" + NEWLINE);
|
||||
}
|
||||
|
||||
@Test
|
||||
void defaultValueWithPipes() {
|
||||
ConfigurationProperty property = new ConfigurationProperty("spring.test.prop", "java.lang.String",
|
||||
"first|second", "This is a description.", false);
|
||||
SingleConfigurationTableEntry entry = new SingleConfigurationTableEntry(property);
|
||||
AsciidocBuilder builder = new AsciidocBuilder();
|
||||
entry.write(builder);
|
||||
assertThat(builder.toString()).isEqualTo("|[[spring.test.prop]]<<spring.test.prop,`+spring.test.prop+`>>"
|
||||
+ NEWLINE + "|`+first\\|second+`" + NEWLINE + "|+++This is a description.+++" + NEWLINE);
|
||||
}
|
||||
|
||||
@Test
|
||||
void defaultValueWithBackslash() {
|
||||
ConfigurationProperty property = new ConfigurationProperty("spring.test.prop", "java.lang.String",
|
||||
"first\\second", "This is a description.", false);
|
||||
SingleConfigurationTableEntry entry = new SingleConfigurationTableEntry(property);
|
||||
AsciidocBuilder builder = new AsciidocBuilder();
|
||||
entry.write(builder);
|
||||
assertThat(builder.toString()).isEqualTo("|[[spring.test.prop]]<<spring.test.prop,`+spring.test.prop+`>>"
|
||||
+ NEWLINE + "|`+first\\\\second+`" + NEWLINE + "|+++This is a description.+++" + NEWLINE);
|
||||
}
|
||||
|
||||
@Test
|
||||
void descriptionWithPipe() {
|
||||
ConfigurationProperty property = new ConfigurationProperty("spring.test.prop", "java.lang.String", null,
|
||||
"This is a description with a | pipe.", false);
|
||||
SingleConfigurationTableEntry entry = new SingleConfigurationTableEntry(property);
|
||||
AsciidocBuilder builder = new AsciidocBuilder();
|
||||
entry.write(builder);
|
||||
assertThat(builder.toString()).isEqualTo("|[[spring.test.prop]]<<spring.test.prop,`+spring.test.prop+`>>"
|
||||
+ NEWLINE + "|" + NEWLINE + "|+++This is a description with a \\| pipe.+++" + NEWLINE);
|
||||
}
|
||||
|
||||
@Test
|
||||
void mapProperty() {
|
||||
ConfigurationProperty property = new ConfigurationProperty("spring.test.prop",
|
||||
"java.util.Map<java.lang.String,java.lang.String>", null, "This is a description.", false);
|
||||
SingleConfigurationTableEntry entry = new SingleConfigurationTableEntry(property);
|
||||
AsciidocBuilder builder = new AsciidocBuilder();
|
||||
entry.write(builder);
|
||||
assertThat(builder.toString()).isEqualTo("|[[spring.test.prop]]<<spring.test.prop,`+spring.test.prop.*+`>>"
|
||||
+ NEWLINE + "|" + NEWLINE + "|+++This is a description.+++" + NEWLINE);
|
||||
}
|
||||
|
||||
@Test
|
||||
void listProperty() {
|
||||
String[] defaultValue = new String[] { "first", "second", "third" };
|
||||
ConfigurationProperty property = new ConfigurationProperty("spring.test.prop",
|
||||
"java.util.List<java.lang.String>", defaultValue, "This is a description.", false);
|
||||
SingleConfigurationTableEntry entry = new SingleConfigurationTableEntry(property);
|
||||
AsciidocBuilder builder = new AsciidocBuilder();
|
||||
entry.write(builder);
|
||||
assertThat(builder.toString()).isEqualTo(
|
||||
"|[[spring.test.prop]]<<spring.test.prop,`+spring.test.prop+`>>" + NEWLINE + "|`+first," + NEWLINE
|
||||
+ "second," + NEWLINE + "third+`" + NEWLINE + "|+++This is a description.+++" + NEWLINE);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
/*
|
||||
* 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.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.build.context.properties;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* Tests for {@link SingleRow}.
|
||||
*
|
||||
* @author Brian Clozel
|
||||
*/
|
||||
public class SingleRowTests {
|
||||
|
||||
private static final String NEWLINE = System.lineSeparator();
|
||||
|
||||
private static final Snippet SNIPPET = new Snippet("my", "title", null);
|
||||
|
||||
@Test
|
||||
void simpleProperty() {
|
||||
ConfigurationProperty property = new ConfigurationProperty("spring.test.prop", "java.lang.String", "something",
|
||||
"This is a description.", false);
|
||||
SingleRow row = new SingleRow(SNIPPET, property);
|
||||
Asciidoc asciidoc = new Asciidoc();
|
||||
row.write(asciidoc);
|
||||
assertThat(asciidoc.toString()).isEqualTo("|[[my.spring.test.prop]]<<my.spring.test.prop,`+spring.test.prop+`>>"
|
||||
+ NEWLINE + "|+++This is a description.+++" + NEWLINE + "|`+something+`" + NEWLINE);
|
||||
}
|
||||
|
||||
@Test
|
||||
void noDefaultValue() {
|
||||
ConfigurationProperty property = new ConfigurationProperty("spring.test.prop", "java.lang.String", null,
|
||||
"This is a description.", false);
|
||||
SingleRow row = new SingleRow(SNIPPET, property);
|
||||
Asciidoc asciidoc = new Asciidoc();
|
||||
row.write(asciidoc);
|
||||
assertThat(asciidoc.toString()).isEqualTo("|[[my.spring.test.prop]]<<my.spring.test.prop,`+spring.test.prop+`>>"
|
||||
+ NEWLINE + "|+++This is a description.+++" + NEWLINE + "|" + NEWLINE);
|
||||
}
|
||||
|
||||
@Test
|
||||
void defaultValueWithPipes() {
|
||||
ConfigurationProperty property = new ConfigurationProperty("spring.test.prop", "java.lang.String",
|
||||
"first|second", "This is a description.", false);
|
||||
SingleRow row = new SingleRow(SNIPPET, property);
|
||||
Asciidoc asciidoc = new Asciidoc();
|
||||
row.write(asciidoc);
|
||||
assertThat(asciidoc.toString()).isEqualTo("|[[my.spring.test.prop]]<<my.spring.test.prop,`+spring.test.prop+`>>"
|
||||
+ NEWLINE + "|+++This is a description.+++" + NEWLINE + "|`+first\\|second+`" + NEWLINE);
|
||||
}
|
||||
|
||||
@Test
|
||||
void defaultValueWithBackslash() {
|
||||
ConfigurationProperty property = new ConfigurationProperty("spring.test.prop", "java.lang.String",
|
||||
"first\\second", "This is a description.", false);
|
||||
SingleRow row = new SingleRow(SNIPPET, property);
|
||||
Asciidoc asciidoc = new Asciidoc();
|
||||
row.write(asciidoc);
|
||||
assertThat(asciidoc.toString()).isEqualTo("|[[my.spring.test.prop]]<<my.spring.test.prop,`+spring.test.prop+`>>"
|
||||
+ NEWLINE + "|+++This is a description.+++" + NEWLINE + "|`+first\\\\second+`" + NEWLINE);
|
||||
}
|
||||
|
||||
@Test
|
||||
void descriptionWithPipe() {
|
||||
ConfigurationProperty property = new ConfigurationProperty("spring.test.prop", "java.lang.String", null,
|
||||
"This is a description with a | pipe.", false);
|
||||
SingleRow row = new SingleRow(SNIPPET, property);
|
||||
Asciidoc asciidoc = new Asciidoc();
|
||||
row.write(asciidoc);
|
||||
assertThat(asciidoc.toString()).isEqualTo("|[[my.spring.test.prop]]<<my.spring.test.prop,`+spring.test.prop+`>>"
|
||||
+ NEWLINE + "|+++This is a description with a \\| pipe.+++" + NEWLINE + "|" + NEWLINE);
|
||||
}
|
||||
|
||||
@Test
|
||||
void mapProperty() {
|
||||
ConfigurationProperty property = new ConfigurationProperty("spring.test.prop",
|
||||
"java.util.Map<java.lang.String,java.lang.String>", null, "This is a description.", false);
|
||||
SingleRow row = new SingleRow(SNIPPET, property);
|
||||
Asciidoc asciidoc = new Asciidoc();
|
||||
row.write(asciidoc);
|
||||
assertThat(asciidoc.toString())
|
||||
.isEqualTo("|[[my.spring.test.prop]]<<my.spring.test.prop,`+spring.test.prop.*+`>>" + NEWLINE
|
||||
+ "|+++This is a description.+++" + NEWLINE + "|" + NEWLINE);
|
||||
}
|
||||
|
||||
@Test
|
||||
void listProperty() {
|
||||
String[] defaultValue = new String[] { "first", "second", "third" };
|
||||
ConfigurationProperty property = new ConfigurationProperty("spring.test.prop",
|
||||
"java.util.List<java.lang.String>", defaultValue, "This is a description.", false);
|
||||
SingleRow row = new SingleRow(SNIPPET, property);
|
||||
Asciidoc asciidoc = new Asciidoc();
|
||||
row.write(asciidoc);
|
||||
assertThat(asciidoc.toString()).isEqualTo("|[[my.spring.test.prop]]<<my.spring.test.prop,`+spring.test.prop+`>>"
|
||||
+ NEWLINE + "|+++This is a description.+++" + NEWLINE + "|`+first," + NEWLINE + "second," + NEWLINE
|
||||
+ "third+`" + NEWLINE);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
/*
|
||||
* 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.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.build.context.properties;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* Tests for {@link Table}.
|
||||
*
|
||||
* @author Brian Clozel
|
||||
*/
|
||||
public class TableTests {
|
||||
|
||||
private static final String NEWLINE = System.lineSeparator();
|
||||
|
||||
private static final Snippet SNIPPET = new Snippet("my", "title", null);
|
||||
|
||||
@Test
|
||||
void simpleTable() {
|
||||
Table table = new Table();
|
||||
table.addRow(new SingleRow(SNIPPET, new ConfigurationProperty("spring.test.prop", "java.lang.String",
|
||||
"something", "This is a description.", false)));
|
||||
table.addRow(new SingleRow(SNIPPET, new ConfigurationProperty("spring.test.other", "java.lang.String",
|
||||
"other value", "This is another description.", false)));
|
||||
Asciidoc asciidoc = new Asciidoc();
|
||||
table.write(asciidoc);
|
||||
// @formatter:off
|
||||
assertThat(asciidoc.toString()).isEqualTo(
|
||||
"[cols=\"4,3,3\", options=\"header\"]" + NEWLINE +
|
||||
"|===" + NEWLINE +
|
||||
"|Name|Description|Default Value" + NEWLINE + NEWLINE +
|
||||
"|[[my.spring.test.other]]<<my.spring.test.other,`+spring.test.other+`>>" + NEWLINE +
|
||||
"|+++This is another description.+++" + NEWLINE +
|
||||
"|`+other value+`" + NEWLINE + NEWLINE +
|
||||
"|[[my.spring.test.prop]]<<my.spring.test.prop,`+spring.test.prop+`>>" + NEWLINE +
|
||||
"|+++This is a description.+++" + NEWLINE +
|
||||
"|`+something+`" + NEWLINE + NEWLINE +
|
||||
"|===" + NEWLINE);
|
||||
// @formatter:on
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user