rename test files: .yml -> .yaml

This commit is contained in:
Lulu13022002 2024-04-12 17:28:51 +02:00
parent 4147603a67
commit 969c2636fb
No known key found for this signature in database
GPG Key ID: 491C8F0B8ACDEB01
40 changed files with 132 additions and 127 deletions

View File

@ -47,7 +47,7 @@ public record ClassNamed(String packageName, String simpleName, String dottedNes
return this.root() == this;
}
public ClassNamed parent() {
public ClassNamed enclosing() {
if (this.knownClass != null) {
Class<?> parentClass = this.knownClass.getEnclosingClass();
if (parentClass == null) {

View File

@ -68,14 +68,14 @@ public class ImportTypeCollector implements ImportCollector {
ClassNamed foundClass = type;
int advancedNode = 0;
while (!imports.contains(foundClass.canonicalName()) &&
!globalImports.contains(foundClass.parent().canonicalName())) {
!globalImports.contains(foundClass.enclosing().canonicalName())) {
if (foundClass.isRoot() || // top classes with package check is handled before
(fetchStatic && !Modifier.isStatic(foundClass.knownClass().getModifiers())) // static imports are allowed for regular class too but only when the inner classes are all static
) {
foundClass = null;
break;
}
foundClass = foundClass.parent();
foundClass = foundClass.enclosing();
advancedNode++;
}
if (foundClass != null) {
@ -111,7 +111,7 @@ public class ImportTypeCollector implements ImportCollector {
}
}
if ((key.parent().isRoot() && this.globalImports.contains(key.packageName())) || // star import on package for top classes and one level classes only!
if ((key.enclosing().isRoot() && this.globalImports.contains(key.packageName())) || // star import on package for top classes and one level classes only!
(key.isRoot() && key.packageName().equals(this.rewriteClass.packageName()))) { // same package don't need fqn too for top classes
return key.dottedNestedName();
}
@ -127,7 +127,7 @@ public class ImportTypeCollector implements ImportCollector {
if (fromDepth < depth) {
ClassNamed parent = key;
while (true) {
ClassNamed up = parent.parent();
ClassNamed up = parent.enclosing();
if (this.rewriteClass.equals(up)) {
break;
}

View File

@ -1,10 +0,0 @@
package io.papermc.generator.rewriter.data.sample.parser.imports.name;
import io.papermc.generator.rewriter.data.sample.parser.imports.name.one.OneDepthClass.*;
public class RemoteGlobalInnerClassImportType {
{
var c = NonStaticClass.class;
var d = StaticClass.class;
}
}

View File

@ -1,11 +0,0 @@
package io.papermc.generator.rewriter.data.sample.parser.imports.name;
import io.papermc.generator.rewriter.data.sample.parser.imports.name.one.OneDepthClass.NonStaticClass;
import static io.papermc.generator.rewriter.data.sample.parser.imports.name.one.OneDepthClass.StaticClass;
public class RemoteInnerClassImportType {
{
var b = NonStaticClass.class;
var c = StaticClass.class;
}
}

View File

@ -1,10 +0,0 @@
package io.papermc.generator.rewriter.data.sample.parser.imports.name;
import static io.papermc.generator.rewriter.data.sample.parser.imports.name.one.OneDepthClass.*;
public class RemoteStaticGlobalInnerClassImportType {
{
var b = io.papermc.generator.rewriter.data.sample.parser.imports.name.one.OneDepthClass.NonStaticClass.class;
var c = StaticClass.class;
}
}

View File

@ -1,4 +0,0 @@
package io.papermc.generator.rewriter.data.sample.parser.imports.name;
public class SamePackageClass {
}

View File

@ -1,4 +1,4 @@
package io.papermc.generator.rewriter.data.sample.parser.imports.name;
package io.papermc.generator.rewriter.data.sample.parser.name;
import org.bukkit.*;
import static org.bukkit.Statistic.*;

View File

@ -1,6 +1,6 @@
package io.papermc.generator.rewriter.data.sample.parser.imports.name;
package io.papermc.generator.rewriter.data.sample.parser.name;
import io.papermc.generator.rewriter.data.sample.parser.imports.name.one.*;
import io.papermc.generator.rewriter.data.sample.parser.name.one.*;
public class PackageClassImportType {
{

View File

@ -1,4 +1,4 @@
package io.papermc.generator.rewriter.data.sample.parser.imports.name;
package io.papermc.generator.rewriter.data.sample.parser.name;
import org.bukkit.Material;
import static org.bukkit.Statistic.ARMOR_CLEANED;

View File

@ -0,0 +1,10 @@
package io.papermc.generator.rewriter.data.sample.parser.name;
import io.papermc.generator.rewriter.data.sample.parser.name.one.OneDepthClass.*;
public class RemoteGlobalInnerClassImportType {
{
var c = NonStaticClass.class;
var d = StaticClass.class;
}
}

View File

@ -0,0 +1,11 @@
package io.papermc.generator.rewriter.data.sample.parser.name;
import io.papermc.generator.rewriter.data.sample.parser.name.one.OneDepthClass.NonStaticClass;
import static io.papermc.generator.rewriter.data.sample.parser.name.one.OneDepthClass.StaticClass;
public class RemoteInnerClassImportType {
{
var b = NonStaticClass.class;
var c = StaticClass.class;
}
}

View File

@ -0,0 +1,10 @@
package io.papermc.generator.rewriter.data.sample.parser.name;
import static io.papermc.generator.rewriter.data.sample.parser.name.one.OneDepthClass.*;
public class RemoteStaticGlobalInnerClassImportType {
{
var b = io.papermc.generator.rewriter.data.sample.parser.name.one.OneDepthClass.NonStaticClass.class;
var c = StaticClass.class;
}
}

View File

@ -0,0 +1,4 @@
package io.papermc.generator.rewriter.data.sample.parser.name;
public class SamePackageClass {
}

View File

@ -1,6 +1,6 @@
package io.papermc.generator.rewriter.data.sample.parser.imports.name;
package io.papermc.generator.rewriter.data.sample.parser.name;
public class SelfInnerClassImportType {
public class SelfInnerClass {
public class A {
public class B {
public class C {

View File

@ -1,4 +1,4 @@
package io.papermc.generator.rewriter.data.sample.parser.imports.name.one;
package io.papermc.generator.rewriter.data.sample.parser.name.one;
public class OneDepthClass {

View File

@ -1,4 +1,4 @@
package io.papermc.generator.rewriter.data.yml;
package io.papermc.generator.rewriter.data.yaml;
public class ImportMapping {

View File

@ -1,4 +1,4 @@
package io.papermc.generator.rewriter.data.yml;
package io.papermc.generator.rewriter.data.yaml;
import java.util.Collections;
import java.util.Set;

View File

@ -0,0 +1,21 @@
package io.papermc.generator.rewriter.data.yaml;
import java.util.Map;
public class ImportShortNameMapping {
public Map<String, String> shortNames;
public Map<String, String> memberShortNames;
/**
* Note: unlike {@link #getMemberShortNames()} (which only use a dot), nested class must be identified using '$' since the typeName is then
* converted into a class object
*/
public Map<String, String> getShortNames() {
return this.shortNames;
}
public Map<String, String> getMemberShortNames() {
return this.memberShortNames;
}
}

View File

@ -1,4 +1,4 @@
package io.papermc.generator.rewriter.data.yml;
package io.papermc.generator.rewriter.data.yaml;
import org.junit.jupiter.params.converter.TypedArgumentConverter;
import org.yaml.snakeyaml.LoaderOptions;
@ -9,7 +9,7 @@ import org.yaml.snakeyaml.nodes.Tag;
import java.io.IOException;
import java.io.InputStream;
public class YmlMappingConverter<T> extends TypedArgumentConverter<String, T> {
public class YamlMappingConverter<T> extends TypedArgumentConverter<String, T> {
private static final LoaderOptions OPTIONS;
static {
@ -19,7 +19,7 @@ public class YmlMappingConverter<T> extends TypedArgumentConverter<String, T> {
private final Constructor yamlConstructor;
protected YmlMappingConverter(Class<T> clazz, String relativePackage) {
protected YamlMappingConverter(Class<T> clazz, String relativePackage) {
super(String.class, clazz);
if (relativePackage == null) {
this.yamlConstructor = new Constructor(clazz, OPTIONS);

View File

@ -1,21 +0,0 @@
package io.papermc.generator.rewriter.data.yml;
import java.util.Map;
public class ImportShortNameMapping {
public Map<String, String> imports;
public Map<String, String> staticImports;
/**
* Note: unlike {@link #getStaticImports()} (which only use a dot), nested class must be identified using '$' since the typeName is then
* converted into a class object
*/
public Map<String, String> getImports() {
return this.imports;
}
public Map<String, String> getStaticImports() {
return this.staticImports;
}
}

View File

@ -3,14 +3,14 @@ package io.papermc.generator.rewriter.parser;
import io.papermc.generator.rewriter.ClassNamed;
import io.papermc.generator.rewriter.context.ImportTypeCollector;
import io.papermc.generator.rewriter.data.sample.parser.imports.FancyInlinedImportType;
import io.papermc.generator.rewriter.data.yml.ImportMapping;
import io.papermc.generator.rewriter.data.yml.ImportSet;
import io.papermc.generator.rewriter.data.yaml.ImportMapping;
import io.papermc.generator.rewriter.data.yaml.ImportSet;
import io.papermc.generator.rewriter.data.sample.parser.imports.FancyCommentImportType;
import io.papermc.generator.rewriter.data.sample.parser.imports.FancyNewlineImportType;
import io.papermc.generator.rewriter.data.sample.parser.imports.FancySpaceImportType;
import io.papermc.generator.rewriter.data.sample.parser.imports.MixedCommentImportType;
import io.papermc.generator.rewriter.data.sample.parser.imports.StandardImportType;
import io.papermc.generator.rewriter.data.yml.YmlMappingConverter;
import io.papermc.generator.rewriter.data.yaml.YamlMappingConverter;
import it.unimi.dsi.fastutil.Pair;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.converter.ConvertWith;
@ -29,7 +29,7 @@ public class ImportCollectTest extends ParserTest {
return Arguments.of(
CONTAINER.resolve(sampleClass.getCanonicalName().replace('.', '/') + ".java"),
sampleClass,
"parser/expected/imports/%s.yml".formatted(sampleClass.getSimpleName())
"parser/expected/imports/%s.yaml".formatted(sampleClass.getSimpleName())
);
}
@ -65,7 +65,7 @@ public class ImportCollectTest extends ParserTest {
assertEquals(expectedStaticImports.global(), staticImports.right(), "Static global imports doesn't match for " + name);
}
private static class ImportMappingConverter extends YmlMappingConverter<ImportMapping> {
private static class ImportMappingConverter extends YamlMappingConverter<ImportMapping> {
protected ImportMappingConverter() {
super(ImportMapping.class, null);

View File

@ -23,8 +23,6 @@ import static org.junit.jupiter.api.Assertions.fail;
public class ParserMetadataAreaTest extends ParserTest {
private static final Path CONTAINER = Path.of(System.getProperty("user.dir"), "src/test/java");
private static Arguments file(Class<?> sampleClass, String expectedLastLine) {
String name = sampleClass.getSimpleName();
return Arguments.of(

View File

@ -1,6 +1,7 @@
package io.papermc.generator.rewriter.parser;
import io.papermc.generator.rewriter.context.ImportCollector;
import org.jetbrains.annotations.Nullable;
import org.junit.jupiter.api.Tag;
import java.io.BufferedReader;
import java.io.IOException;
@ -15,21 +16,25 @@ public class ParserTest {
protected static final Path CONTAINER = Path.of(System.getProperty("user.dir"), "src/test/java");
protected void parseFile(Path path, ImportCollector importCollector) throws IOException {
parseFile(path, importCollector, str -> {}, () -> {});
parseFile(path, importCollector, null, null);
}
protected void parseFile(Path path, ImportCollector importCollector, Consumer<String> enterBodyCallback, Runnable eofCallback) throws IOException {
protected void parseFile(Path path, ImportCollector importCollector, @Nullable Consumer<String> enterBodyCallback, @Nullable Runnable eofCallback) throws IOException {
final LineParser lineParser = new LineParser();
try (BufferedReader reader = Files.newBufferedReader(path, StandardCharsets.UTF_8)) {
while (true) {
String line = reader.readLine();
if (line == null) {
eofCallback.run();
if (eofCallback != null) {
eofCallback.run();
}
break;
}
if (!line.isEmpty() && lineParser.consumeImports(new StringReader(line), importCollector)) {
enterBodyCallback.accept(line);
if (enterBodyCallback != null) {
enterBodyCallback.accept(line);
}
break;
}
}

View File

@ -2,16 +2,16 @@ package io.papermc.generator.rewriter.parser;
import io.papermc.generator.rewriter.ClassNamed;
import io.papermc.generator.rewriter.context.ImportTypeCollector;
import io.papermc.generator.rewriter.data.sample.parser.imports.name.GlobalImportType;
import io.papermc.generator.rewriter.data.sample.parser.imports.name.PackageClassImportType;
import io.papermc.generator.rewriter.data.sample.parser.imports.name.RegularImportType;
import io.papermc.generator.rewriter.data.sample.parser.imports.name.RemoteGlobalInnerClassImportType;
import io.papermc.generator.rewriter.data.sample.parser.imports.name.RemoteInnerClassImportType;
import io.papermc.generator.rewriter.data.sample.parser.imports.name.RemoteStaticGlobalInnerClassImportType;
import io.papermc.generator.rewriter.data.sample.parser.imports.name.SamePackageClass;
import io.papermc.generator.rewriter.data.sample.parser.imports.name.SelfInnerClassImportType;
import io.papermc.generator.rewriter.data.yml.ImportShortNameMapping;
import io.papermc.generator.rewriter.data.yml.YmlMappingConverter;
import io.papermc.generator.rewriter.data.sample.parser.name.GlobalImportType;
import io.papermc.generator.rewriter.data.sample.parser.name.PackageClassImportType;
import io.papermc.generator.rewriter.data.sample.parser.name.RegularImportType;
import io.papermc.generator.rewriter.data.sample.parser.name.RemoteGlobalInnerClassImportType;
import io.papermc.generator.rewriter.data.sample.parser.name.RemoteInnerClassImportType;
import io.papermc.generator.rewriter.data.sample.parser.name.RemoteStaticGlobalInnerClassImportType;
import io.papermc.generator.rewriter.data.sample.parser.name.SamePackageClass;
import io.papermc.generator.rewriter.data.sample.parser.name.SelfInnerClass;
import io.papermc.generator.rewriter.data.yaml.ImportShortNameMapping;
import io.papermc.generator.rewriter.data.yaml.YamlMappingConverter;
import io.papermc.generator.utils.ClassHelper;
import java.io.IOException;
import java.nio.file.Path;
@ -26,7 +26,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
public class TypeShortNameTest extends ParserTest {
public class ShortNameTest extends ParserTest {
private static Arguments rootClass(Class<?> sampleClass) {
return innerClass(sampleClass, sampleClass);
@ -38,7 +38,7 @@ public class TypeShortNameTest extends ParserTest {
CONTAINER.resolve(sampleClass.getCanonicalName().replace('.', '/') + ".java"),
sampleInnerClass,
name,
"parser/expected/imports/name/%s.yml".formatted(sampleInnerClass.getName().substring(sampleInnerClass.getPackageName().length() + 1))
"parser/expected/name/%s.yaml".formatted(sampleInnerClass.getName().substring(sampleInnerClass.getPackageName().length() + 1))
);
}
@ -50,8 +50,8 @@ public class TypeShortNameTest extends ParserTest {
rootClass(RemoteGlobalInnerClassImportType.class),
rootClass(RemoteStaticGlobalInnerClassImportType.class),
rootClass(RemoteInnerClassImportType.class),
rootClass(SelfInnerClassImportType.class),
innerClass(SelfInnerClassImportType.class, SelfInnerClassImportType.A.B.C.class)
rootClass(SelfInnerClass.class),
innerClass(SelfInnerClass.class, SelfInnerClass.A.B.C.class)
);
}
@ -64,26 +64,28 @@ public class TypeShortNameTest extends ParserTest {
final ImportTypeCollector importCollector = new ImportTypeCollector(new ClassNamed(sampleClass));
parseFile(path, importCollector);
assertFalse(mapping.getImports() == null && mapping.getStaticImports() == null, "Empty expected import mapping!");
assertFalse(mapping.getShortNames() == null && mapping.getMemberShortNames() == null, "Empty expected import mapping!");
if (mapping.getImports() != null) {
for (Map.Entry<String, String> expect : mapping.getImports().entrySet()) {
if (mapping.getShortNames() != null) {
for (Map.Entry<String, String> expect : mapping.getShortNames().entrySet()) {
String typeName = expect.getKey();
Class<?> runtimeClass = ClassHelper.classOr(expect.getKey(), null);
assertNotNull(runtimeClass, "Runtime class cannot be null for import " + expect.getKey());
assertNotNull(runtimeClass, "Runtime class cannot be null for import " + typeName);
assertEquals(expect.getValue(), importCollector.getShortName(runtimeClass),
() -> "Short name of " + expect.getKey() + " doesn't match with collected imports for " + name + "! Import found: " + importCollector.getImports());
"Short name of " + typeName + " doesn't match with collected imports for " + name + "! Import found: " + importCollector.getImports());
}
}
if (mapping.getStaticImports() != null) {
for (Map.Entry<String, String> expect : mapping.getStaticImports().entrySet()) {
assertEquals(expect.getValue(), importCollector.getStaticMemberShortName(expect.getKey()),
() -> "Short name of static member/class " + expect.getKey() + " doesn't match with collected imports for " + name + "! Static imports found: " + importCollector.getStaticImports());
if (mapping.getMemberShortNames() != null) {
for (Map.Entry<String, String> expect : mapping.getMemberShortNames().entrySet()) {
String fullName = expect.getKey();
assertEquals(expect.getValue(), importCollector.getStaticMemberShortName(fullName),
"Short name of static member/class " + fullName + " doesn't match with collected imports for " + name + "! Static imports found: " + importCollector.getStaticImports());
}
}
}
private static class ImportShortNameMappingConverter extends YmlMappingConverter<ImportShortNameMapping> {
private static class ImportShortNameMappingConverter extends YamlMappingConverter<ImportShortNameMapping> {
protected ImportShortNameMappingConverter() {
super(ImportShortNameMapping.class, SamePackageClass.class.getPackageName());

View File

@ -1,5 +0,0 @@
imports: {
"(_).SelfInnerClassImportType$A": "A",
"(_).SelfInnerClassImportType$A$B": "B",
"(_).SelfInnerClassImportType$A$B$C": "C",
}

View File

@ -1,5 +0,0 @@
imports: {
"(_).SelfInnerClassImportType$A": "A",
"(_).SelfInnerClassImportType$A$B": "A.B",
"(_).SelfInnerClassImportType$A$B$C": "A.B.C",
}

View File

@ -1,7 +1,7 @@
imports: {
shortNames: {
"org.bukkit.Material": "Material",
}
staticImports: {
memberShortNames: {
"org.bukkit.Statistic.ARMOR_CLEANED": "ARMOR_CLEANED"
}

View File

@ -1,4 +1,4 @@
imports: {
shortNames: {
"(_).SamePackageClass": "SamePackageClass",
"(_).one.OneDepthClass": "OneDepthClass",
"(_).one.OneDepthClass$NonStaticClass": "OneDepthClass.NonStaticClass",

View File

@ -1,8 +1,8 @@
imports: {
shortNames: {
"org.bukkit.Material": "Material",
}
staticImports: {
memberShortNames: {
"org.bukkit.Statistic.ARMOR_CLEANED": "ARMOR_CLEANED",
"org.bukkit.Statistic.valueOf": "valueOf",
}

View File

@ -1,4 +1,4 @@
imports: {
shortNames: {
"(_).one.OneDepthClass$NonStaticClass": "NonStaticClass",
"(_).one.OneDepthClass$StaticClass": "StaticClass"
}

View File

@ -1,7 +1,7 @@
imports: {
shortNames: {
"(_).one.OneDepthClass$NonStaticClass": "NonStaticClass"
}
staticImports: {
memberShortNames: {
"(_).one.OneDepthClass.StaticClass": "StaticClass"
}

View File

@ -1,4 +1,4 @@
imports: {
shortNames: {
"(_).one.OneDepthClass$NonStaticClass": "(_).one.OneDepthClass.NonStaticClass",
"(_).one.OneDepthClass$StaticClass": "StaticClass"
}

View File

@ -0,0 +1,5 @@
shortNames: {
"(_).SelfInnerClass$A": "A",
"(_).SelfInnerClass$A$B": "B",
"(_).SelfInnerClass$A$B$C": "C",
}

View File

@ -0,0 +1,5 @@
shortNames: {
"(_).SelfInnerClass$A": "A",
"(_).SelfInnerClass$A$B": "A.B",
"(_).SelfInnerClass$A$B$C": "A.B.C",
}