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

github.com/stefan-niedermann/nextcloud-notes.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Niedermann <info@niedermann.it>2021-05-01 11:07:18 +0300
committerStefan Niedermann <info@niedermann.it>2021-05-01 11:07:18 +0300
commit6b4c09fe4d1be5de68784807036eb6f45e4a113f (patch)
tree4d3d3a61f1bc0fa774814ef52b1671ac55607802
parent7e59f45b223395b3a91047b7f233f1012ffb32d2 (diff)
#1167 Add more tests for updating apiVersion
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/persistence/dao/AccountDao.java2
-rw-r--r--app/src/test/java/it/niedermann/owncloud/notes/persistence/AccountDaoTest.java33
2 files changed, 22 insertions, 13 deletions
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/persistence/dao/AccountDao.java b/app/src/main/java/it/niedermann/owncloud/notes/persistence/dao/AccountDao.java
index 0e1bc60d..085c0a16 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/persistence/dao/AccountDao.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/persistence/dao/AccountDao.java
@@ -53,6 +53,6 @@ public interface AccountDao {
@Query("UPDATE Account SET MODIFIED = :modified WHERE id = :id")
void updateModified(long id, long modified);
- @Query("UPDATE Account SET APIVERSION = :apiVersion WHERE id = :id AND (APIVERSION IS NULL OR APIVERSION <> :apiVersion)")
+ @Query("UPDATE Account SET APIVERSION = :apiVersion WHERE id = :id AND ((APIVERSION IS NULL AND :apiVersion IS NOT NULL) OR (APIVERSION IS NOT NULL AND :apiVersion IS NULL) OR APIVERSION <> :apiVersion)")
int updateApiVersion(Long id, String apiVersion);
}
diff --git a/app/src/test/java/it/niedermann/owncloud/notes/persistence/AccountDaoTest.java b/app/src/test/java/it/niedermann/owncloud/notes/persistence/AccountDaoTest.java
index 1949dbad..7e8d49ea 100644
--- a/app/src/test/java/it/niedermann/owncloud/notes/persistence/AccountDaoTest.java
+++ b/app/src/test/java/it/niedermann/owncloud/notes/persistence/AccountDaoTest.java
@@ -1,6 +1,5 @@
package it.niedermann.owncloud.notes.persistence;
-import android.database.sqlite.SQLiteConstraintException;
import android.os.Build;
import androidx.annotation.NonNull;
@@ -18,22 +17,11 @@ import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
-import java.util.Calendar;
-import java.util.List;
-
import it.niedermann.owncloud.notes.persistence.entity.Account;
-import it.niedermann.owncloud.notes.persistence.entity.CategoryWithNotesCount;
-import it.niedermann.owncloud.notes.persistence.entity.Note;
import it.niedermann.owncloud.notes.shared.model.Capabilities;
-import static it.niedermann.owncloud.notes.shared.model.DBStatus.LOCAL_DELETED;
-import static it.niedermann.owncloud.notes.shared.model.DBStatus.LOCAL_EDITED;
-import static it.niedermann.owncloud.notes.shared.model.DBStatus.VOID;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
@RunWith(RobolectricTestRunner.class)
@Config(sdk = {Build.VERSION_CODES.P})
@@ -66,4 +54,25 @@ public class AccountDaoTest {
assertEquals("彼得", createdAccount.getUserName());
assertEquals("彼得@äöüß.example.com", createdAccount.getAccountName());
}
+
+ @Test
+ public void updateApiVersionFromNull() throws NextcloudHttpRequestFailedException {
+ final Account account = db.getAccountDao().getAccountById(db.getAccountDao().insert(new Account("https://äöüß.example.com", "彼得", "彼得@äöüß.example.com", new Capabilities("{ocs: {}}", null))));
+ assertNull(account.getApiVersion());
+
+ assertEquals(0, db.getAccountDao().updateApiVersion(account.getId(), null));
+ assertEquals(1, db.getAccountDao().updateApiVersion(account.getId(), "[0.2]"));
+ assertEquals(0, db.getAccountDao().updateApiVersion(account.getId(), "[0.2]"));
+ }
+
+ @Test
+ public void updateApiVersionFromExisting() throws NextcloudHttpRequestFailedException {
+ final Account account = db.getAccountDao().getAccountById(db.getAccountDao().insert(new Account("https://äöüß.example.com", "彼得", "彼得@äöüß.example.com", new Capabilities("{ocs: {data: {capabilities: {notes: {api_version: '[0.2]'}}}}}", null))));
+ assertEquals("[0.2]", account.getApiVersion());
+
+ assertEquals(0, db.getAccountDao().updateApiVersion(account.getId(), "[0.2]"));
+ assertEquals(1, db.getAccountDao().updateApiVersion(account.getId(), "[0.2, 1.0]"));
+ assertEquals(1, db.getAccountDao().updateApiVersion(account.getId(), null));
+ }
+
} \ No newline at end of file