diff options
Diffstat (limited to 'configgen/src/test')
3 files changed, 58 insertions, 4 deletions
diff --git a/configgen/src/test/java/com/yahoo/config/codegen/JavaClassBuilderTest.java b/configgen/src/test/java/com/yahoo/config/codegen/JavaClassBuilderTest.java index 744f8c9b1a2..381d587e3c3 100644 --- a/configgen/src/test/java/com/yahoo/config/codegen/JavaClassBuilderTest.java +++ b/configgen/src/test/java/com/yahoo/config/codegen/JavaClassBuilderTest.java @@ -8,6 +8,7 @@ import java.io.IOException; import java.io.StringReader; import java.nio.file.FileSystems; import java.nio.file.Files; +import java.util.List; import static com.yahoo.config.codegen.ConfiggenUtil.createClassName; import static com.yahoo.config.codegen.JavaClassBuilder.createUniqueSymbol; @@ -15,12 +16,14 @@ import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; /** * @author gjoranv * @author ollivir */ public class JavaClassBuilderTest { + private static final String TEST_DIR = "target/test-classes/"; private static final String DEF_NAME = TEST_DIR + "allfeatures.def"; private static final String REFERENCE_NAME = TEST_DIR + "allfeatures.reference"; @@ -103,14 +106,19 @@ public class JavaClassBuilderTest { @Test public void verify_generated_class_against_reference() throws IOException { - final String testDefinition = String.join("\n", Files.readAllLines(FileSystems.getDefault().getPath(DEF_NAME))); - final String referenceClass = String.join("\n", Files.readAllLines(FileSystems.getDefault().getPath(REFERENCE_NAME))) + "\n"; + String testDefinition = String.join("\n", Files.readAllLines(FileSystems.getDefault().getPath(DEF_NAME))); + List<String> referenceClassLines = Files.readAllLines(FileSystems.getDefault().getPath(REFERENCE_NAME)); DefParser parser = new DefParser("allfeatures", new StringReader(testDefinition)); InnerCNode root = parser.getTree(); JavaClassBuilder builder = new JavaClassBuilder(root, parser.getNormalizedDefinition(), null, null); - String configClass = builder.getConfigClass("AllfeaturesConfig"); + String[] configClassLines = builder.getConfigClass("AllfeaturesConfig").split("\n"); - assertEquals(referenceClass, configClass); + for (int i = 0; i < referenceClassLines.size(); i++) { + if (configClassLines.length <= i) + fail("Missing lines i generated comnfig class. First missing line:\n" + referenceClassLines.get(i)); + assertEquals("Line " + i, referenceClassLines.get(i), configClassLines[i]); + } } + } diff --git a/configgen/src/test/java/com/yahoo/config/codegen/NormalizedDefinitionTest.java b/configgen/src/test/java/com/yahoo/config/codegen/NormalizedDefinitionTest.java index 0d8135e67de..cbb0d9c4082 100644 --- a/configgen/src/test/java/com/yahoo/config/codegen/NormalizedDefinitionTest.java +++ b/configgen/src/test/java/com/yahoo/config/codegen/NormalizedDefinitionTest.java @@ -73,4 +73,5 @@ public class NormalizedDefinitionTest { assertNotNull(fileReader); fileReader.close(); } + } diff --git a/configgen/src/test/resources/allfeatures.reference b/configgen/src/test/resources/allfeatures.reference index ebc21e8255c..1916e37c1cc 100644 --- a/configgen/src/test/resources/allfeatures.reference +++ b/configgen/src/test/resources/allfeatures.reference @@ -573,6 +573,11 @@ public final class AllfeaturesConfig extends ConfigInstance { public final String getDefName() { return CONFIG_DEF_NAME; } @java.lang.Override public final String getDefNamespace() { return CONFIG_DEF_NAMESPACE; } + + public AllfeaturesConfig build() { + return new AllfeaturesConfig(this); + } + } // Some random bool without a default value. These comments exist to check @@ -1129,6 +1134,11 @@ public final class AllfeaturesConfig extends ConfigInstance { private Builder bar(String __value) { return bar(Integer.valueOf(__value)); } + + public Basic_struct build() { + return new Basic_struct(this); + } + } // A basic struct @@ -1203,6 +1213,11 @@ public final class AllfeaturesConfig extends ConfigInstance { inner1 = __builder; return this; } + + public Struct_of_struct build() { + return new Struct_of_struct(this); + } + } private final Inner0 inner0; @@ -1281,6 +1296,11 @@ public final class AllfeaturesConfig extends ConfigInstance { private Builder index(String __value) { return index(Integer.valueOf(__value)); } + + public Inner0 build() { + return new Inner0(this); + } + } // A struct of struct @@ -1363,6 +1383,11 @@ public final class AllfeaturesConfig extends ConfigInstance { private Builder index(String __value) { return index(Integer.valueOf(__value)); } + + public Inner1 build() { + return new Inner1(this); + } + } private final StringNode name; @@ -1502,6 +1527,11 @@ public final class AllfeaturesConfig extends ConfigInstance { anotherArray = __builders; return this; } + + public MyArray build() { + return new MyArray(this); + } + } private final IntegerNode intVal; @@ -1653,6 +1683,11 @@ public final class AllfeaturesConfig extends ConfigInstance { private Builder foo(String __value) { return foo(Integer.valueOf(__value)); } + + public AnotherArray build() { + return new AnotherArray(this); + } + } private final IntegerNode foo; @@ -1790,6 +1825,11 @@ public final class AllfeaturesConfig extends ConfigInstance { anotherArray = __builders; return this; } + + public MyMap build() { + return new MyMap(this); + } + } private final IntegerNode intVal; @@ -1941,6 +1981,11 @@ public final class AllfeaturesConfig extends ConfigInstance { private Builder foo(String __value) { return foo(Integer.valueOf(__value)); } + + public AnotherArray build() { + return new AnotherArray(this); + } + } private final IntegerNode foo; |