Skip to content

Commit

Permalink
build: Remove explicit management of bytebuddy. (#828)
Browse files Browse the repository at this point in the history
* build: Remove explicit management of bytebuddy.

The Maven Site plugin fails on that. But doing so, brings us back to a Non-JDK-21 compliant version which in turn then doesn't let us do inline mocks proper.

Also remove one meaningless test, named path cannot not have a name.
  • Loading branch information
michael-simons authored Oct 26, 2023
1 parent df70c63 commit 83a9453
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 30 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
java: [ '17', '19' ]
java: [ '17', '21' ]
needs: build
steps:
- name: Determine revision
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Locale;
import java.util.Optional;
import java.util.TimeZone;
import java.util.stream.Stream;

Expand All @@ -34,7 +33,6 @@
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.EnumSource;
import org.junit.jupiter.params.provider.MethodSource;
import org.mockito.Mockito;
import org.neo4j.cypherdsl.core.renderer.Configuration;
import org.neo4j.cypherdsl.core.renderer.Dialect;
import org.neo4j.cypherdsl.core.renderer.Renderer;
Expand Down Expand Up @@ -198,17 +196,6 @@ void neo5jSpecificFunctionsShouldWork(FunctionInvocation functionInvocation, Str
assertThat(renderer.render(Cypher.returning(functionInvocation).build())).isEqualTo(expected);
}

@Test
void errorMessagesShouldWorkForNamedPath() {

var path = Mockito.spy(Cypher.path("x").definedBy(Cypher.node("Movie").relationshipTo(Cypher.node("Person"))));
Mockito.when(path.getSymbolicName()).thenReturn(Optional.empty());
var expectedMessages = "The path needs to be named!";
assertThatIllegalArgumentException().isThrownBy(() -> Functions.length(path)).withMessage(expectedMessages);
assertThatIllegalArgumentException().isThrownBy(() -> Functions.nodes(path)).withMessage(expectedMessages);
assertThatIllegalArgumentException().isThrownBy(() -> Functions.relationships(path)).withMessage(expectedMessages);
}

@Test
void assortedErrors() {
var literalExpression = Cypher.literalOf("something");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,10 @@
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

import java.lang.reflect.Method;
import java.util.Locale;
import java.util.Optional;
import java.util.Map;
import java.util.stream.Stream;

import org.junit.jupiter.api.Named;
Expand All @@ -35,7 +34,6 @@
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
import org.junit.platform.commons.util.ReflectionUtils;
import org.mockito.Answers;

/**
* @author Michael J. Simons
Expand Down Expand Up @@ -99,16 +97,27 @@ void functionInvocationsShouldBeCreated(Method method) {

var expectedValue = method.getName().replace("Distinct", "");
if (expectedValue.startsWith("graph")) {
expectedValue = "graph." + expectedValue.substring(5, 6).toLowerCase(Locale.ROOT) + expectedValue.substring(6);
expectedValue =
"graph." + expectedValue.substring(5, 6).toLowerCase(Locale.ROOT) + expectedValue.substring(6);
}

Class<?> parameterType = method.getParameterTypes()[0];
Object mock = mock(parameterType, Answers.RETURNS_DEEP_STUBS);
if (mock instanceof Relationship relationship) {
when(relationship.getSymbolicName()).thenReturn(Optional.of(SymbolicName.of("x")));
Object parameter;
if (parameterType == SymbolicName.class) {
parameter = SymbolicName.of("undef");
} else if (parameterType == MapExpression.class) {
parameter = MapExpression.create(Map.of());
} else if (parameterType == org.neo4j.cypherdsl.core.Named.class || parameterType == Node.class) {
parameter = Cypher.node("Undef");
} else if (parameterType == Relationship.class || parameterType == RelationshipPattern.class) {
parameter = Cypher.node("Undef").relationshipTo(Cypher.anyNode()).named("r");
} else if (parameterType == Expression.class) {
parameter = SymbolicName.of("Undef");
} else {
throw new IllegalArgumentException("Cannot test a function with parameter type " + parameterType);
}
FunctionInvocation invocation = (FunctionInvocation) TestUtils
.invokeMethod(method, null, mock);
.invokeMethod(method, null, parameter);
assertThat(invocation).hasFieldOrPropertyWithValue(FUNCTION_NAME_FIELD, expectedValue);
}
}
8 changes: 0 additions & 8 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,6 @@
<asm.version>9.6</asm.version>
<assertj.version>3.24.2</assertj.version>
<auto-common.version>0.11</auto-common.version>
<byte-buddy.version>1.14.9</byte-buddy.version>
<cglib.version>3.3.0</cglib.version>
<changelist>-SNAPSHOT</changelist>
<checker-qual.version>3.39.0</checker-qual.version>
Expand Down Expand Up @@ -339,13 +338,6 @@
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy-parent</artifactId>
<version>${byte-buddy.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.junit</groupId>
<artifactId>junit-bom</artifactId>
Expand Down

0 comments on commit 83a9453

Please sign in to comment.