Skip to content

Commit 17a7dfb

Browse files
committed
Share and simplify code
1 parent 12aac7b commit 17a7dfb

File tree

1 file changed

+36
-48
lines changed

1 file changed

+36
-48
lines changed

proc/test/src/main/java/org/neo4j/gds/AlgoBaseProcTest.java

Lines changed: 36 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@
4545
import org.neo4j.gds.core.write.NativeNodePropertiesExporterBuilder;
4646
import org.neo4j.gds.core.write.NativeRelationshipExporterBuilder;
4747
import org.neo4j.gds.core.write.NativeRelationshipStreamExporterBuilder;
48-
import org.neo4j.gds.executor.ComputationResult;
4948
import org.neo4j.gds.transaction.TransactionContext;
5049
import org.neo4j.gds.utils.StringJoining;
5150
import org.neo4j.graphdb.GraphDatabaseService;
@@ -192,37 +191,22 @@ public void remove(String username, JobId jobId) {
192191
default void shouldUnregisterTaskAfterComputation() {
193192
var taskStore = new InvocationCountingTaskStore();
194193

195-
String loadedGraphName = "loadedGraph";
196-
GraphProjectConfig graphProjectConfig = withNameAndRelationshipProjections(
194+
var loadedGraphName = "loadedGraph";
195+
var graphProjectConfig = withNameAndRelationshipProjections(
197196
"",
198197
loadedGraphName,
199198
relationshipProjections()
200199
);
201-
applyOnProcedure(proc -> {
202-
proc.taskRegistryFactory = jobId -> new TaskRegistry("", taskStore, jobId);
203200

204-
GraphStore graphStore = graphLoader(graphProjectConfig).graphStore();
205-
GraphStoreCatalog.set(
206-
graphProjectConfig,
207-
graphStore
208-
);
209-
Map<String, Object> configMap = createMinimalConfig(CypherMapWrapper.empty()).toMap();
210-
ComputationResult<?, RESULT, CONFIG> computationResult1 = proc.compute(
211-
loadedGraphName,
212-
configMap,
213-
releaseAlgorithm(),
214-
true
215-
);
201+
GraphStoreCatalog.set(
202+
graphProjectConfig,
203+
graphLoader(graphProjectConfig).graphStore()
204+
);
216205

217-
ComputationResult<?, RESULT, CONFIG> computationResult2 = proc.compute(
218-
loadedGraphName,
219-
configMap,
220-
releaseAlgorithm(),
221-
true
222-
);
206+
applyOnProcedure(proc -> {
207+
proc.taskRegistryFactory = jobId -> new TaskRegistry("", taskStore, jobId);
223208

224-
// trigger consumption of stream return values
225-
assertResultEquals(computationResult1.result(), computationResult2.result());
209+
runTwiceAndAssertEqualResult(loadedGraphName, proc);
226210

227211
assertThat(taskStore.taskStream())
228212
.withFailMessage(() -> formatWithLocale(
@@ -282,32 +266,36 @@ default boolean releaseAlgorithm() {
282266
@ParameterizedTest
283267
@ValueSource(booleans = {true, false})
284268
default void testRunMultipleTimesOnLoadedGraph(boolean cypherProjection) {
285-
String loadedGraphName = "loadedGraph";
286-
GraphProjectConfig graphProjectConfig = cypherProjection
269+
var loadedGraphName = "loadedGraph";
270+
var graphProjectConfig = cypherProjection
287271
? emptyWithNameCypher(TEST_USERNAME, loadedGraphName)
288-
: withNameAndRelationshipProjections(TEST_USERNAME, loadedGraphName, relationshipProjections());
289-
290-
applyOnProcedure((proc) -> {
291-
GraphStoreCatalog.set(
292-
graphProjectConfig,
293-
graphLoader(graphProjectConfig).graphStore()
294-
);
295-
Map<String, Object> configMap = createMinimalConfig(CypherMapWrapper.empty()).toMap();
296-
ComputationResult<?, RESULT, CONFIG> resultRun1 = proc.compute(
297-
loadedGraphName,
298-
configMap,
299-
releaseAlgorithm(),
300-
true
301-
);
302-
ComputationResult<?, RESULT, CONFIG> resultRun2 = proc.compute(
303-
loadedGraphName,
304-
configMap,
305-
releaseAlgorithm(),
306-
true
272+
: withNameAndRelationshipProjections(TEST_USERNAME, loadedGraphName, relationshipProjections()
307273
);
308274

309-
assertResultEquals(resultRun1.result(), resultRun2.result());
310-
});
275+
GraphStoreCatalog.set(
276+
graphProjectConfig,
277+
graphLoader(graphProjectConfig).graphStore()
278+
);
279+
280+
applyOnProcedure(proc -> runTwiceAndAssertEqualResult(loadedGraphName, proc));
281+
}
282+
283+
private void runTwiceAndAssertEqualResult(String loadedGraphName, AlgoBaseProc<ALGORITHM, RESULT, CONFIG, ?> proc) {
284+
var configMap = createMinimalConfig(CypherMapWrapper.empty()).toMap();
285+
var resultRun1 = proc.compute(
286+
loadedGraphName,
287+
configMap,
288+
releaseAlgorithm(),
289+
true
290+
);
291+
var resultRun2 = proc.compute(
292+
loadedGraphName,
293+
configMap,
294+
releaseAlgorithm(),
295+
true
296+
);
297+
298+
assertResultEquals(resultRun1.result(), resultRun2.result());
311299
}
312300

313301
@Test

0 commit comments

Comments
 (0)