diff --git a/refinedstorage-autocrafting-api/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/task/ExternalTaskPattern.java b/refinedstorage-autocrafting-api/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/task/ExternalTaskPattern.java index 63a657b3f..c940f03d2 100644 --- a/refinedstorage-autocrafting-api/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/task/ExternalTaskPattern.java +++ b/refinedstorage-autocrafting-api/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/task/ExternalTaskPattern.java @@ -26,11 +26,15 @@ class ExternalTaskPattern extends AbstractTaskPattern { @Override boolean step(final MutableResourceList internalStorage, final ExternalPatternInputSink externalPatternInputSink) { - + if (expectedOutputs.isEmpty()) { + return true; + } if (iterationsToSendToSink == 0) { + // TODO: coverage return false; } if (!acceptsIterationInputs(internalStorage, externalPatternInputSink)) { + // TODO: coverage return false; } LOGGER.info("Stepped {} with {} iterations remaining", pattern, iterationsToSendToSink); @@ -46,6 +50,7 @@ long interceptInsertion(final ResourceKey resource, final long amount) { expectedOutputs.remove(resource, available); return available; } + // TODO: coverage return 0; } @@ -53,15 +58,17 @@ private boolean acceptsIterationInputs(final MutableResourceList internalStorage final ExternalPatternInputSink externalPatternInputSink) { final ResourceList iterationInputsSimulated = calculateIterationInputs(Action.SIMULATE); if (!extractAll(iterationInputsSimulated, internalStorage, Action.SIMULATE)) { + // TODO: coverage return false; } if (!externalPatternInputSink.accept(pattern, iterationInputsSimulated.copyState(), Action.SIMULATE)) { + // TODO: coverage return false; } final ResourceList iterationInputs = calculateIterationInputs(Action.EXECUTE); extractAll(iterationInputs, internalStorage, Action.EXECUTE); if (!externalPatternInputSink.accept(pattern, iterationInputs.copyState(), Action.EXECUTE)) { - // TODO: return here. + // TODO: coverage return false; } return true; diff --git a/refinedstorage-autocrafting-api/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/task/TaskImpl.java b/refinedstorage-autocrafting-api/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/task/TaskImpl.java index 8def2ee2d..c469d1748 100644 --- a/refinedstorage-autocrafting-api/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/task/TaskImpl.java +++ b/refinedstorage-autocrafting-api/src/main/java/com/refinedmods/refinedstorage/api/autocrafting/task/TaskImpl.java @@ -138,6 +138,7 @@ private boolean returnInternalStorage(final RootStorage rootStorage) { @Override public long beforeInsert(final ResourceKey resource, final long amount, final Actor actor) { + // TODO: coverage long totalIntercepted = 0; for (final AbstractTaskPattern pattern : patterns.values()) { final long remaining = amount - totalIntercepted; diff --git a/refinedstorage-autocrafting-api/src/test/java/com/refinedmods/refinedstorage/api/autocrafting/task/TaskImplTest.java b/refinedstorage-autocrafting-api/src/test/java/com/refinedmods/refinedstorage/api/autocrafting/task/TaskImplTest.java index 1a2224991..5aa85efbc 100644 --- a/refinedstorage-autocrafting-api/src/test/java/com/refinedmods/refinedstorage/api/autocrafting/task/TaskImplTest.java +++ b/refinedstorage-autocrafting-api/src/test/java/com/refinedmods/refinedstorage/api/autocrafting/task/TaskImplTest.java @@ -268,6 +268,7 @@ void shouldCompleteTaskWithExternalPattern() { task.step(storage, sink); assertThat(task.getState()).isEqualTo(TaskState.RUNNING); + assertThat(storage.getAll()).isEmpty(); assertThat(task.copyInternalStorageState()) .usingRecursiveFieldByFieldElementComparator() .containsExactlyInAnyOrder( @@ -288,12 +289,23 @@ void shouldCompleteTaskWithExternalPattern() { ); task.step(storage, sink); - assertThat(task.getState()).isEqualTo(TaskState.RUNNING); + assertThat(task.getState()).isEqualTo(TaskState.RETURNING_INTERNAL_STORAGE); + assertThat(storage.getAll()).usingRecursiveFieldByFieldElementComparator().containsExactly( + new ResourceAmount(IRON_INGOT, 3) + ); assertThat(task.copyInternalStorageState()) .usingRecursiveFieldByFieldElementComparator() .containsExactly( new ResourceAmount(IRON_PICKAXE, 1) ); + + task.step(storage, sink); + assertThat(task.getState()).isEqualTo(TaskState.COMPLETED); + assertThat(storage.getAll()).usingRecursiveFieldByFieldElementComparator().containsExactlyInAnyOrder( + new ResourceAmount(IRON_INGOT, 3), + new ResourceAmount(IRON_PICKAXE, 1) + ); + assertThat(task.copyInternalStorageState()).isEmpty(); } @Test