### Question:
GraphCreateProc extends CatalogProc { @Procedure(name = "gds.graph.create", mode = READ) @Description(DESCRIPTION) public Stream<GraphCreateNativeResult> create( @Name(value = "graphName") String graphName, @Name(value = "nodeProjection") @Nullable Object nodeProjection, @Name(value = "relationshipProjection") @Nullable Object relationshipProjection, @Name(value = "configuration", defaultValue = "{}") Map<String, Object> configuration ) { validateGraphName(username(), graphName); CypherMapWrapper cypherConfig = CypherMapWrapper.create(configuration); GraphCreateFromStoreConfig config = GraphCreateFromStoreConfig.of( username(), graphName, nodeProjection, relationshipProjection, cypherConfig ); validateConfig(cypherConfig, config); GraphCreateNativeResult result = runWithExceptionLogging( "Graph creation failed", () -> (GraphCreateNativeResult) createGraph(config) ); return Stream.of(result); }  @Procedure(name = "gds.graph.create", mode = READ) @Description(DESCRIPTION) Stream<GraphCreateNativeResult> create(
        @Name(value = "graphName") String graphName,
        @Name(value = "nodeProjection") @Nullable Object nodeProjection,
        @Name(value = "relationshipProjection") @Nullable Object relationshipProjection,
        @Name(value = "configuration", defaultValue = "{}") Map<String, Object> configuration
    ); @Procedure(name = "gds.graph.create.estimate", mode = READ) @Description(ESTIMATE_DESCRIPTION) Stream<MemoryEstimateResult> createEstimate(
        @Name(value = "nodeProjection") @Nullable Object nodeProjection,
        @Name(value = "relationshipProjection") @Nullable Object relationshipProjection,
        @Name(value = "configuration", defaultValue = "{}") Map<String, Object> configuration
    ); @Procedure(name = "gds.graph.create.cypher", mode = READ) @Description(DESCRIPTION) Stream<GraphCreateCypherResult> create(
        @Name(value = "graphName") String graphName,
        @Name(value = "nodeQuery") String nodeQuery,
        @Name(value = "relationshipQuery") String relationshipQuery,
        @Name(value = "configuration", defaultValue = "{}") Map<String, Object> configuration
    ); @Procedure(name = "gds.graph.create.cypher.estimate", mode = READ) @Description(ESTIMATE_DESCRIPTION) Stream<MemoryEstimateResult> createCypherEstimate(
        @Name(value = "nodeQuery") String nodeQuery,
        @Name(value = "relationshipQuery") String relationshipQuery,
        @Name(value = "configuration", defaultValue = "{}") Map<String, Object> configuration
    );  }### Answer:
@Test void shouldFailOnTooBigGraphNative() { IllegalStateException exception = assertThrows(IllegalStateException.class, () -> { applyOnProcedure(proc -> { GraphCreateConfig config = GraphCreateFromStoreConfig.fromProcedureConfig( "", CypherMapWrapper.create(MapUtil.map( NODE_PROJECTION_KEY, "*", RELATIONSHIP_PROJECTION_KEY, "*")) ); proc.tryValidateMemoryUsage(config, proc::memoryTreeWithDimensions, () -> 42); }); }); String message = ExceptionUtil.rootCause(exception).getMessage(); assertTrue(message.matches( "Procedure was blocked since minimum estimated memory \\(.+\\) exceeds current free memory \\(42 Bytes\\).")); }