### Question:
Procedures extends LifecycleAdapter { public RawIterator<Object[], ProcedureException> callProcedure( Context ctx, QualifiedName name, Object[] input, ResourceTracker resourceTracker ) throws ProcedureException { return registry.callProcedure( ctx, name, input, resourceTracker ); } Procedures();  Procedures(
            EmbeddedProxySPI proxySPI,
            ThrowingConsumer<Procedures,ProcedureException> builtin,
            File pluginDir,
            Log log,
            ProcedureConfig config ); void register( CallableProcedure proc ); void register( CallableUserFunction function ); void register( CallableUserAggregationFunction function ); void register( CallableUserFunction function, boolean overrideCurrentImplementation ); void register( CallableUserAggregationFunction function, boolean overrideCurrentImplementation ); void register( CallableProcedure proc, boolean overrideCurrentImplementation ); void registerProcedure( Class<?> proc ); void registerProcedure( Class<?> proc, boolean overrideCurrentImplementation ); void registerProcedure( Class<?> proc, boolean overrideCurrentImplementation, String warning ); void registerBuiltInFunctions( Class<?> func ); void registerFunction( Class<?> func ); void registerAggregationFunction( Class<?> func, boolean overrideCurrentImplementation ); void registerAggregationFunction( Class<?> func ); void registerFunction( Class<?> func, boolean overrideCurrentImplementation ); void registerType( Class<?> javaClass, Neo4jTypes.AnyType type ); void registerComponent( Class<T> cls, ComponentRegistry.Provider<T> provider, boolean safe ); ProcedureHandle procedure( QualifiedName name ); UserFunctionHandle function( QualifiedName name ); UserFunctionHandle aggregationFunction( QualifiedName name ); Set<ProcedureSignature> getAllProcedures(); Set<UserFunctionSignature> getAllFunctions(); RawIterator<Object[], ProcedureException> callProcedure( Context ctx, QualifiedName name,
                                                           Object[] input, ResourceTracker resourceTracker ); RawIterator<Object[], ProcedureException> callProcedure( Context ctx, int id,
            Object[] input, ResourceTracker resourceTracker ); AnyValue callFunction( Context ctx, QualifiedName name, AnyValue[] input ); AnyValue callFunction( Context ctx, int id, AnyValue[] input ); UserAggregator createAggregationFunction( Context ctx, QualifiedName name ); UserAggregator createAggregationFunction( Context ctx, int id ); ValueMapper<Object> valueMapper(); @Override void start();  }### Answer:
@Test public void shouldNotAllowCallingNonExistingProcedure() throws Throwable { exception.expect( ProcedureException.class ); exception.expectMessage( "There is no procedure with the name `org.myproc` registered for this " + "database instance. Please ensure you've spelled the " + "procedure name correctly and that the procedure is properly deployed." ); procs.callProcedure( new BasicContext(), signature.name(), new Object[]{1337}, resourceTracker ); }