Actually delegate in AbstractDelegateExtent (#2196)

* actually delegate in AbstractDelegateExtent

* exclude enableHistory method
This commit is contained in:
Hannes Greule
2023-05-04 18:33:04 +02:00
committed by GitHub
parent e08720b310
commit 2987550e9b
2 changed files with 322 additions and 4 deletions

View File

@ -0,0 +1,30 @@
package com.fastasyncworldedit;
import com.sk89q.worldedit.extent.AbstractDelegateExtent;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.stream.Stream;
import static org.junit.jupiter.api.Assertions.assertEquals;
class ArchitecturalTest {
public static Stream<Arguments> abstractDelegateExtentMethods() {
return Arrays.stream(AbstractDelegateExtent.class.getMethods())
.filter(m -> m.getDeclaringClass() != Object.class) // ignore methods inherited from java.lang.Object
// TODO: figure out why enableHistory returns STQE instead of PQE when overriding
.filter(m -> !m.getName().equals("enableHistory"))
.map(Arguments::of);
}
@ParameterizedTest
@MethodSource("abstractDelegateExtentMethods")
void testAbstractDelegateExtentOverridesAllMethods(Method method) {
assertEquals(AbstractDelegateExtent.class, method.getDeclaringClass());
}
}