Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Niedermann <info@niedermann.it>2022-01-17 14:05:24 +0300
committerStefan Niedermann <info@niedermann.it>2022-01-17 14:05:24 +0300
commit83e5789646de7717f2f3128b73574c9c4bd3bbc0 (patch)
tree316cce32975fced008604be1091096a4a52bf95a /app/src/test
parent7a1a8a2137c066f00bb7ac874706228bf7986347 (diff)
Add unit tests for ServerCommunicationErrorHandler
Signed-off-by: Stefan Niedermann <info@niedermann.it>
Diffstat (limited to 'app/src/test')
-rw-r--r--app/src/test/java/it/niedermann/nextcloud/deck/api/ServerCommunicationErrorHandlerTest.java49
1 files changed, 49 insertions, 0 deletions
diff --git a/app/src/test/java/it/niedermann/nextcloud/deck/api/ServerCommunicationErrorHandlerTest.java b/app/src/test/java/it/niedermann/nextcloud/deck/api/ServerCommunicationErrorHandlerTest.java
new file mode 100644
index 000000000..aa7ca0837
--- /dev/null
+++ b/app/src/test/java/it/niedermann/nextcloud/deck/api/ServerCommunicationErrorHandlerTest.java
@@ -0,0 +1,49 @@
+package it.niedermann.nextcloud.deck.api;
+
+import static org.junit.Assert.assertEquals;
+
+import com.nextcloud.android.sso.exceptions.UnknownErrorException;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+
+import it.niedermann.nextcloud.deck.exceptions.OfflineException;
+
+@RunWith(RobolectricTestRunner.class)
+public class ServerCommunicationErrorHandlerTest {
+
+ @Test
+ public void shouldMap_UnknownErrorExceptions_To_OfflineExceptions_ForConnectionTimeout() {
+ final var result = ServerCommunicationErrorHandler.translateError(new UnknownErrorException("failed to connect to myhome.example.com/2222:A:B:C:D (port 443) from /2020:A:B:C:D (port 42803) after 60000ms: isConnected failed: ECONNREFUSED (Connection refused)"));
+ assertEquals(OfflineException.class, result.getClass());
+ assertEquals(OfflineException.Reason.CONNECTION_REFUSED, ((OfflineException) result).getReason());
+ }
+
+ @Test
+ public void shouldMap_ClassNotFoundExceptions_To_OfflineExceptions_ForConnectionRefused() {
+ final var result = ServerCommunicationErrorHandler.translateError(new ClassNotFoundException("java.lang.ClassNotFoundException: org.apache.commons.httpclient.ConnectTimeoutException"));
+ assertEquals(OfflineException.class, result.getClass());
+ assertEquals(OfflineException.Reason.CONNECTION_TIMEOUT, ((OfflineException) result).getReason());
+ }
+
+ @Test
+ public void shouldSkip_UnknownErrorExceptions_ForOtherCases() {
+ final var result = ServerCommunicationErrorHandler.translateError(new UnknownErrorException("Foo Bar"));
+ assertEquals(UnknownErrorException.class, result.getClass());
+ assertEquals("Foo Bar", result.getMessage());
+ }
+
+ @Test
+ public void shouldSkip_ClassNotFoundExceptions_ForOtherCases() {
+ final var result = ServerCommunicationErrorHandler.translateError(new ClassNotFoundException("Foo Bar"));
+ assertEquals(ClassNotFoundException.class, result.getClass());
+ assertEquals("Foo Bar", result.getMessage());
+ }
+
+ @Test
+ public void shouldSkip_KnownExceptions_WithNullMessages() {
+ assertEquals(ClassNotFoundException.class, ServerCommunicationErrorHandler.translateError(new ClassNotFoundException()).getClass());
+ assertEquals(UnknownErrorException.class, ServerCommunicationErrorHandler.translateError(new UnknownErrorException()).getClass());
+ }
+}