Search in sources :

Example 11 with QualifiedName

use of org.neo4j.internal.kernel.api.procs.QualifiedName in project neo4j by neo4j.

the class ProceduresKernelIT method shouldCallReadOnlyProcedure.

@Test
void shouldCallReadOnlyProcedure() throws Throwable {
    // Given
    internalKernel().registerProcedure(procedure);
    // When
    RawIterator<AnyValue[], ProcedureException> found = procs().procedureCallRead(procs().procedureGet(new QualifiedName(new String[] { "example" }, "exampleProc")).id(), new AnyValue[] { longValue(1337) }, ProcedureCallContext.EMPTY);
    // Then
    assertThat(asList(found)).contains(new AnyValue[] { longValue(1337) });
    commit();
}
Also used : QualifiedName(org.neo4j.internal.kernel.api.procs.QualifiedName) ProcedureException(org.neo4j.internal.kernel.api.exceptions.ProcedureException) NTString(org.neo4j.internal.kernel.api.procs.Neo4jTypes.NTString) Test(org.junit.jupiter.api.Test)

Example 12 with QualifiedName

use of org.neo4j.internal.kernel.api.procs.QualifiedName in project neo4j by neo4j.

the class ProcedureHolderTest method shouldGetProcedureFromHolder.

@Test
void shouldGetProcedureFromHolder() {
    // given
    ProcedureHolder<String> procHolder = new ProcedureHolder<>();
    QualifiedName qualifiedName = new QualifiedName(new String[0], "CaseSensitive");
    String item = "CaseSensitiveItem";
    procHolder.put(qualifiedName, item, false);
    // then
    assertThat(procHolder.get(qualifiedName)).isEqualTo(item);
    assertThat(procHolder.idOf(qualifiedName)).isEqualTo(0);
}
Also used : QualifiedName(org.neo4j.internal.kernel.api.procs.QualifiedName) Test(org.junit.jupiter.api.Test)

Example 13 with QualifiedName

use of org.neo4j.internal.kernel.api.procs.QualifiedName in project neo4j by neo4j.

the class ProcedureHolderTest method okToHaveProcsOnlyDifferByCase.

@Test
void okToHaveProcsOnlyDifferByCase() {
    // given
    ProcedureHolder<String> procHolder = new ProcedureHolder<>();
    procHolder.put(new QualifiedName(new String[0], "CASESENSITIVE"), "CASESENSITIVEItem", false);
    procHolder.put(new QualifiedName(new String[0], "CaseSensitive"), "CaseSensitiveItem", false);
    // then
    assertThat(procHolder.get(new QualifiedName(new String[0], "CASESENSITIVE"))).isEqualTo("CASESENSITIVEItem");
    assertThat(procHolder.get(new QualifiedName(new String[0], "CaseSensitive"))).isEqualTo("CaseSensitiveItem");
    assertThat(procHolder.idOf(new QualifiedName(new String[0], "CASESENSITIVE"))).isEqualTo(0);
    assertThat(procHolder.idOf(new QualifiedName(new String[0], "CaseSensitive"))).isEqualTo(1);
}
Also used : QualifiedName(org.neo4j.internal.kernel.api.procs.QualifiedName) Test(org.junit.jupiter.api.Test)

Example 14 with QualifiedName

use of org.neo4j.internal.kernel.api.procs.QualifiedName in project neo4j by neo4j.

the class BuiltInDbmsProceduresIT method listCapabilitiesShouldReturnDynamicValues.

@Test
void listCapabilitiesShouldReturnDynamicValues() throws KernelException {
    QualifiedName procedureName = procedureName("dbms", "listCapabilities");
    int procedureId = procs().procedureGet(procedureName).id();
    // first call
    RawIterator<AnyValue[], ProcedureException> callResult = procs().procedureCallDbms(procedureId, new AnyValue[] {}, ProcedureCallContext.EMPTY);
    List<AnyValue[]> capabilities = asList(callResult);
    // should return false
    assertThat(capabilities).contains(new AnyValue[] { Values.stringValue(TestCapabilities.my_dynamic_capability.name().fullName()), Values.stringValue(TestCapabilities.my_dynamic_capability.description()), Values.booleanValue(false) });
    try (var txc = db.beginTx()) {
        txc.createNode(label("my_dynamic_capability"));
        txc.commit();
    }
    // second call
    callResult = procs().procedureCallDbms(procedureId, new AnyValue[] {}, ProcedureCallContext.EMPTY);
    capabilities = asList(callResult);
    // should return true
    assertThat(capabilities).contains(new AnyValue[] { Values.stringValue(TestCapabilities.my_dynamic_capability.name().fullName()), Values.stringValue(TestCapabilities.my_dynamic_capability.description()), Values.booleanValue(true) });
}
Also used : QualifiedName(org.neo4j.internal.kernel.api.procs.QualifiedName) AnyValue(org.neo4j.values.AnyValue) ProcedureException(org.neo4j.internal.kernel.api.exceptions.ProcedureException) Test(org.junit.jupiter.api.Test) KernelIntegrationTest(org.neo4j.kernel.impl.api.integrationtest.KernelIntegrationTest)

Example 15 with QualifiedName

use of org.neo4j.internal.kernel.api.procs.QualifiedName in project neo4j by neo4j.

the class BuiltInDbmsProceduresIT method listCapabilities.

@Test
void listCapabilities() throws KernelException {
    QualifiedName procedureName = procedureName("dbms", "listCapabilities");
    int procedureId = procs().procedureGet(procedureName).id();
    RawIterator<AnyValue[], ProcedureException> callResult = procs().procedureCallDbms(procedureId, new AnyValue[] {}, ProcedureCallContext.EMPTY);
    List<AnyValue[]> capabilities = asList(callResult);
    List<String> capabilityNames = capabilities.stream().map(c -> ((TextValue) c[0]).stringValue()).collect(Collectors.toList());
    assertThat(capabilityNames).containsExactlyInAnyOrder(TestCapabilities.my_custom_capability.name().fullName(), TestCapabilities.my_dynamic_capability.name().fullName());
}
Also used : AnyValue(org.neo4j.values.AnyValue) Arrays(java.util.Arrays) Label(org.neo4j.graphdb.Label) RawIterator(org.neo4j.collection.RawIterator) GraphDatabaseSettings(org.neo4j.configuration.GraphDatabaseSettings) Iterators.asList(org.neo4j.internal.helpers.collection.Iterators.asList) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) Config(org.neo4j.configuration.Config) ProcedureException(org.neo4j.internal.kernel.api.exceptions.ProcedureException) ProcedureSignature.procedureName(org.neo4j.internal.kernel.api.procs.ProcedureSignature.procedureName) Public(org.neo4j.annotations.Public) Values(org.neo4j.values.storable.Values) Assertions.assertFalse(org.junit.jupiter.api.Assertions.assertFalse) CapabilitiesRegistry(org.neo4j.capabilities.CapabilitiesRegistry) Capability(org.neo4j.capabilities.Capability) CapabilitiesSettings(org.neo4j.capabilities.CapabilitiesSettings) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) FALSE(org.neo4j.configuration.SettingValueParsers.FALSE) CapabilityProviderContext(org.neo4j.capabilities.CapabilityProviderContext) INTEGER(org.neo4j.capabilities.Type.INTEGER) DOUBLE(org.neo4j.capabilities.Type.DOUBLE) CapabilityProvider(org.neo4j.capabilities.CapabilityProvider) Name(org.neo4j.capabilities.Name) DBMSCapabilities(org.neo4j.capabilities.DBMSCapabilities) BooleanValue(org.neo4j.values.storable.BooleanValue) BOOLEAN(org.neo4j.capabilities.Type.BOOLEAN) TextValue(org.neo4j.values.storable.TextValue) Label.label(org.neo4j.graphdb.Label.label) Values.stringValue(org.neo4j.values.storable.Values.stringValue) Collectors(java.util.stream.Collectors) QualifiedName(org.neo4j.internal.kernel.api.procs.QualifiedName) Test(org.junit.jupiter.api.Test) Assertions.assertArrayEquals(org.junit.jupiter.api.Assertions.assertArrayEquals) List(java.util.List) ProcedureCallContext(org.neo4j.internal.kernel.api.procs.ProcedureCallContext) ArrayUtils.toArray(org.apache.commons.lang3.ArrayUtils.toArray) Description(org.neo4j.configuration.Description) KernelException(org.neo4j.exceptions.KernelException) Matchers.contains(org.hamcrest.Matchers.contains) Assertions.assertTrue(org.junit.jupiter.api.Assertions.assertTrue) CapabilityDeclaration(org.neo4j.capabilities.CapabilityDeclaration) KernelIntegrationTest(org.neo4j.kernel.impl.api.integrationtest.KernelIntegrationTest) TextValue(org.neo4j.values.storable.TextValue) QualifiedName(org.neo4j.internal.kernel.api.procs.QualifiedName) ProcedureException(org.neo4j.internal.kernel.api.exceptions.ProcedureException) Test(org.junit.jupiter.api.Test) KernelIntegrationTest(org.neo4j.kernel.impl.api.integrationtest.KernelIntegrationTest)

Aggregations

QualifiedName (org.neo4j.internal.kernel.api.procs.QualifiedName)23 ProcedureException (org.neo4j.internal.kernel.api.exceptions.ProcedureException)14 Test (org.junit.jupiter.api.Test)13 Arrays (java.util.Arrays)7 List (java.util.List)7 Collectors (java.util.stream.Collectors)7 KernelException (org.neo4j.exceptions.KernelException)7 ProcedureSignature (org.neo4j.internal.kernel.api.procs.ProcedureSignature)6 Config (org.neo4j.configuration.Config)5 ArrayUtils.toArray (org.apache.commons.lang3.ArrayUtils.toArray)4 Assertions.assertThat (org.assertj.core.api.Assertions.assertThat)4 UserFunctionSignature (org.neo4j.internal.kernel.api.procs.UserFunctionSignature)4 CallableProcedure (org.neo4j.kernel.api.procedure.CallableProcedure)4 CallableUserAggregationFunction (org.neo4j.kernel.api.procedure.CallableUserAggregationFunction)4 KernelIntegrationTest (org.neo4j.kernel.impl.api.integrationtest.KernelIntegrationTest)4 Constructor (java.lang.reflect.Constructor)3 Method (java.lang.reflect.Method)3 Modifier.isPublic (java.lang.reflect.Modifier.isPublic)3 ArrayList (java.util.ArrayList)3 Collections.emptyList (java.util.Collections.emptyList)3