diff options
author | Stefan Niedermann <info@niedermann.it> | 2021-05-20 11:08:52 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2021-05-20 11:08:52 +0300 |
commit | df7f38f22b42524f3e86f50de7c3e0839e96edcf (patch) | |
tree | fc6df9dd10d872307c82a5426c817e723ac33f0b /app/src/test/java/it/niedermann/nextcloud | |
parent | 8d2a33c3772a0b19f56698e69db1d2dc1bb88d47 (diff) |
Add unit test for ResponseCallback
Signed-off-by: Stefan Niedermann <info@niedermann.it>
Diffstat (limited to 'app/src/test/java/it/niedermann/nextcloud')
-rw-r--r-- | app/src/test/java/it/niedermann/nextcloud/deck/api/ResponseCallbackTest.java | 70 | ||||
-rw-r--r-- | app/src/test/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManagerTest.java (renamed from app/src/test/java/it/niedermann/nextcloud/deck/SyncManagerTest.java) | 4 |
2 files changed, 72 insertions, 2 deletions
diff --git a/app/src/test/java/it/niedermann/nextcloud/deck/api/ResponseCallbackTest.java b/app/src/test/java/it/niedermann/nextcloud/deck/api/ResponseCallbackTest.java new file mode 100644 index 000000000..519129c62 --- /dev/null +++ b/app/src/test/java/it/niedermann/nextcloud/deck/api/ResponseCallbackTest.java @@ -0,0 +1,70 @@ +package it.niedermann.nextcloud.deck.api; + +import android.os.Build; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.robolectric.RobolectricTestRunner; +import org.robolectric.annotation.Config; + +import java.util.Arrays; +import java.util.List; + +import it.niedermann.nextcloud.deck.model.Account; +import it.niedermann.nextcloud.deck.model.Board; +import it.niedermann.nextcloud.deck.model.Card; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; + +@RunWith(RobolectricTestRunner.class) +@Config(sdk = {Build.VERSION_CODES.P}) +public class ResponseCallbackTest { + + @Test + public void testFillAccountIDs() { + final Account account = new Account(1337L); + ResponseCallback<Object> callback = new ResponseCallback<Object>(account) { + @Override + public void onResponse(Object response) { + fail("I didn't ask you!"); + } + }; + + // Must do nothing + callback.fillAccountIDs(null); + + final Card card = new Card(); + assertNotEquals(1337, card.getAccountId()); + callback.fillAccountIDs(card); + assertEquals(1337, card.getAccountId()); + + final List<Board> boards = Arrays.asList(new Board(), new Board(), new Board()); + assertFalse(boards.stream().anyMatch(b -> b.getAccountId() == 1337)); + callback.fillAccountIDs(boards); + assertTrue(boards.stream().allMatch(b -> b.getAccountId() == 1337)); + } + + @Test + public void testFrom() { + final IResponseCallback<Void> originalCallback = response -> { + // Do nothing... + }; + final IResponseCallback<Void> originalCallbackSpy = spy(originalCallback); + final ResponseCallback<Void> callback = ResponseCallback.from(mock(Account.class), originalCallbackSpy); + + callback.onResponse(null); + verify(originalCallbackSpy, times(1)).onResponse(null); + + callback.onError(null); + verify(originalCallbackSpy, times(1)).onError(null); + } + +} diff --git a/app/src/test/java/it/niedermann/nextcloud/deck/SyncManagerTest.java b/app/src/test/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManagerTest.java index c2570f3a5..fb02cde01 100644 --- a/app/src/test/java/it/niedermann/nextcloud/deck/SyncManagerTest.java +++ b/app/src/test/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManagerTest.java @@ -1,4 +1,4 @@ -package it.niedermann.nextcloud.deck; +package it.niedermann.nextcloud.deck.persistence.sync; import android.accounts.NetworkErrorException; import android.content.Context; @@ -31,6 +31,7 @@ import java.util.Map; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; +import it.niedermann.nextcloud.deck.TestUtil; import it.niedermann.nextcloud.deck.api.IResponseCallback; import it.niedermann.nextcloud.deck.api.LastSyncUtil; import it.niedermann.nextcloud.deck.api.ResponseCallback; @@ -44,7 +45,6 @@ import it.niedermann.nextcloud.deck.model.full.FullStack; import it.niedermann.nextcloud.deck.model.interfaces.IRemoteEntity; import it.niedermann.nextcloud.deck.model.ocs.Capabilities; import it.niedermann.nextcloud.deck.model.ocs.Version; -import it.niedermann.nextcloud.deck.persistence.sync.SyncManager; import it.niedermann.nextcloud.deck.persistence.sync.adapters.ServerAdapter; import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.DataBaseAdapter; import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.WrappedLiveData; |