diff --git a/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/binaryfile/StreamExclusiveFileSender.java b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/binaryfile/StreamExclusiveFileSender.java index 4223d4de1b383d657d105d305d11e2d10b35ba54..0853e33dfcf00ea6b176b148b5755f02eb7f0005 100644 --- a/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/binaryfile/StreamExclusiveFileSender.java +++ b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/binaryfile/StreamExclusiveFileSender.java @@ -27,7 +27,6 @@ import java.io.InputStream; import java.util.function.BiFunction; import java.util.function.Function; -import de.ozgcloud.common.errorhandling.TechnicalException; import io.grpc.stub.CallStreamObserver; import io.grpc.stub.StreamObserver; import lombok.extern.log4j.Log4j2; @@ -63,16 +62,4 @@ class StreamExclusiveFileSender<Q, S> extends StreamingFileSender<Q, S> { protected CallStreamObserver<Q> getRequestObserver() { return requestObserver; } - - @Override - public void cancelOnTimeout() { - super.cancelOnTimeout(); - requestObserver.onError(new TechnicalException("Timeout on waiting for upload.")); - } - - @Override - public void cancelOnError(Throwable t) { - super.cancelOnError(t); - requestObserver.onError(t); - } } diff --git a/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/binaryfile/StreamingFileSender.java b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/binaryfile/StreamingFileSender.java index de78cf14b005300683dd1d63ed5c7cf4184da010..3907546cdfe610e8ff75b8535f555752bdbbefbb 100644 --- a/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/binaryfile/StreamingFileSender.java +++ b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/binaryfile/StreamingFileSender.java @@ -75,12 +75,14 @@ public abstract class StreamingFileSender<Q, S> { public void cancelOnTimeout() { LOG.warn("File transfer canceled on timeout"); resultFuture.cancel(true); + getRequestObserver().onError(new TechnicalException("Timeout on waiting for upload.")); closeStreamReader(); } public void cancelOnError(Throwable t) { LOG.error("File transfer canceled on error.", t); resultFuture.cancel(true); + getRequestObserver().onError(t); closeStreamReader(); } diff --git a/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/binaryfile/StreamExclusiveFileSenderTest.java b/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/binaryfile/StreamExclusiveFileSenderTest.java index 6ac54ef835b35e685a9b67b89fdba6fc5ed482a0..6656be616c26409500a07bb54d2386d7ae0a2a51 100644 --- a/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/binaryfile/StreamExclusiveFileSenderTest.java +++ b/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/binaryfile/StreamExclusiveFileSenderTest.java @@ -43,7 +43,6 @@ import org.springframework.test.util.ReflectionTestUtils; import de.ozgcloud.common.binaryfile.BinaryFileTestFactory.TestRequestType; import de.ozgcloud.common.binaryfile.BinaryFileTestFactory.TestResponseType; -import de.ozgcloud.common.errorhandling.TechnicalException; import io.grpc.stub.CallStreamObserver; import io.grpc.stub.StreamObserver; @@ -119,77 +118,4 @@ class StreamExclusiveFileSenderTest { verify(requestObserver).onCompleted(); } } - - @Nested - class TestCancelOnTimeout { - - @Mock - private CompletableFuture<TestResponseType> resultFuture; - @Mock - private CallStreamObserver<TestRequestType> requestObserver; - - @BeforeEach - void init() { - ReflectionTestUtils.setField(fileSender, "resultFuture", resultFuture); - ReflectionTestUtils.setField(fileSender, "requestObserver", requestObserver); - } - - @Test - void shouldCancelResultFuture() { - fileSender.cancelOnTimeout(); - - verify(resultFuture).cancel(true); - } - - @Test - void shouldCallOnError() { - fileSender.cancelOnTimeout(); - - verify(requestObserver).onError(any(TechnicalException.class)); - } - - @Test - void shouldCloseStreamReader() { - fileSender.cancelOnTimeout(); - - verify(fileSender).closeStreamReader(); - } - } - - @Nested - class TestCancelOnError { - - @Mock - private CompletableFuture<TestResponseType> resultFuture; - @Mock - private CallStreamObserver<TestRequestType> requestObserver; - private final Throwable error = new Throwable(); - - @BeforeEach - void init() { - ReflectionTestUtils.setField(fileSender, "resultFuture", resultFuture); - ReflectionTestUtils.setField(fileSender, "requestObserver", requestObserver); - } - - @Test - void shouldCancelResultFuture() { - fileSender.cancelOnError(error); - - verify(resultFuture).cancel(true); - } - - @Test - void shouldCallOnError() { - fileSender.cancelOnError(error); - - verify(requestObserver).onError(error); - } - - @Test - void shouldCloseStreamReader() { - fileSender.cancelOnError(error); - - verify(fileSender).closeStreamReader(); - } - } } diff --git a/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/binaryfile/StreamingFileSenderTest.java b/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/binaryfile/StreamingFileSenderTest.java index ce12c67d1ee3d157c1385d00f5bd5193382ac9ae..f92a7a7bb5c3882ffefe0958fd68e2845b3205c2 100644 --- a/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/binaryfile/StreamingFileSenderTest.java +++ b/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/binaryfile/StreamingFileSenderTest.java @@ -43,6 +43,7 @@ import org.springframework.test.util.ReflectionTestUtils; import de.ozgcloud.common.binaryfile.BinaryFileTestFactory.TestRequestType; import de.ozgcloud.common.binaryfile.BinaryFileTestFactory.TestResponseType; +import de.ozgcloud.common.errorhandling.TechnicalException; import io.grpc.stub.CallStreamObserver; import lombok.AccessLevel; import lombok.Getter; @@ -82,6 +83,13 @@ class StreamingFileSenderTest { verify(resultFuture).cancel(true); } + @Test + void shouldCallOnError() { + fileSender.cancelOnTimeout(); + + verify(requestObserver).onError(any(TechnicalException.class)); + } + @Test void shouldCloseStreams() { fileSender.cancelOnTimeout(); @@ -109,6 +117,13 @@ class StreamingFileSenderTest { verify(resultFuture).cancel(true); } + @Test + void shouldCallOnError() { + fileSender.cancelOnError(error); + + verify(requestObserver).onError(error); + } + @Test void shouldCloseStreams() { fileSender.cancelOnError(error);