use of org.neo4j.kernel.api.proc.CallableProcedure in project neo4j by neo4j.
the class ReflectiveProcedureTest method shouldNotLoadNoneWhiteListedProcedure.
@Test
public void shouldNotLoadNoneWhiteListedProcedure() throws Throwable {
// Given
ProcedureConfig config = new ProcedureConfig(Config.defaults().with(genericMap(procedure_whitelist.name(), "org.neo4j.kernel.impl.proc.NOTlistCoolPeople")));
Log log = mock(Log.class);
ReflectiveProcedureCompiler procedureCompiler = new ReflectiveProcedureCompiler(new TypeMappers(), components, components, log, config);
// When
List<CallableProcedure> proc = procedureCompiler.compileProcedure(SingleReadOnlyProcedure.class, Optional.empty(), false);
// Then
verify(log).warn("The procedure 'org.neo4j.kernel.impl.proc.listCoolPeople' is not on the whitelist and won't be loaded.");
assertThat(proc.isEmpty(), is(true));
}
use of org.neo4j.kernel.api.proc.CallableProcedure in project neo4j by neo4j.
the class ResourceInjectionTest method shouldCompileAndRunProcedure.
@Test
public void shouldCompileAndRunProcedure() throws Throwable {
// Given
CallableProcedure proc = compiler.compileProcedure(ProcedureWithInjectedAPI.class, Optional.empty(), true).get(0);
// Then
List<Object[]> out = Iterators.asList(proc.apply(new BasicContext(), new Object[0]));
// Then
assertThat(out.get(0), equalTo(new Object[] { "Bonnie" }));
assertThat(out.get(1), equalTo(new Object[] { "Clyde" }));
}
use of org.neo4j.kernel.api.proc.CallableProcedure in project neo4j by neo4j.
the class ResourceInjectionTest method shouldCompileAndRunUnsafeProcedureUnsafeMode.
@Test
public void shouldCompileAndRunUnsafeProcedureUnsafeMode() throws Throwable {
// Given
CallableProcedure proc = compiler.compileProcedure(ProcedureWithUnsafeAPI.class, Optional.empty(), true).get(0);
// Then
List<Object[]> out = Iterators.asList(proc.apply(new BasicContext(), new Object[0]));
// Then
assertThat(out.get(0), equalTo(new Object[] { "Morpheus" }));
assertThat(out.get(1), equalTo(new Object[] { "Trinity" }));
assertThat(out.get(2), equalTo(new Object[] { "Neo" }));
assertThat(out.get(3), equalTo(new Object[] { "Emil" }));
}
use of org.neo4j.kernel.api.proc.CallableProcedure in project neo4j by neo4j.
the class ReflectiveProcedureWithArgumentsTest method shouldRunGenericProcedure.
@Test
public void shouldRunGenericProcedure() throws Throwable {
// Given
CallableProcedure procedure = compile(ClassWithProcedureWithGenericArgs.class).get(0);
// When
RawIterator<Object[], ProcedureException> out = procedure.apply(new BasicContext(), new Object[] { Arrays.asList("Roland", "Eddie", "Susan", "Jake"), Arrays.asList(1000L, 23L, 29L, 12L) });
// Then
List<Object[]> collect = asList(out);
assertThat(collect.get(0)[0], equalTo("Roland is 1000 years old."));
assertThat(collect.get(1)[0], equalTo("Eddie is 23 years old."));
assertThat(collect.get(2)[0], equalTo("Susan is 29 years old."));
assertThat(collect.get(3)[0], equalTo("Jake is 12 years old."));
}
use of org.neo4j.kernel.api.proc.CallableProcedure in project neo4j by neo4j.
the class ProcedureJarLoaderTest method shouldLoadProcedureFromJar.
@Test
public void shouldLoadProcedureFromJar() throws Throwable {
// Given
URL jar = createJarFor(ClassWithOneProcedure.class);
// When
List<CallableProcedure> procedures = jarloader.loadProcedures(jar).procedures();
// Then
List<ProcedureSignature> signatures = procedures.stream().map(CallableProcedure::signature).collect(toList());
assertThat(signatures, contains(procedureSignature("org", "neo4j", "kernel", "impl", "proc", "myProcedure").out("someNumber", NTInteger).build()));
assertThat(asList(procedures.get(0).apply(new BasicContext(), new Object[0])), contains(IsEqual.equalTo(new Object[] { 1337L })));
}
Aggregations