瀏覽代碼

Added first instrumented unit test

David A. Velasco 9 年之前
父節點
當前提交
b826c80cb8
共有 1 個文件被更改,包括 135 次插入0 次删除
  1. 135 0
      androidTest/java/com/owncloud/android/datamodel/OCFileUnitTest.java

+ 135 - 0
androidTest/java/com/owncloud/android/datamodel/OCFileUnitTest.java

@@ -0,0 +1,135 @@
+/**
+ *   ownCloud Android client application
+ *
+ *   @author David A. Velasco
+ *   Copyright (C) 2016 ownCloud Inc.
+ *
+ *   This program is free software: you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License version 2,
+ *   as published by the Free Software Foundation.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+
+package com.owncloud.android.datamodel;
+
+import android.os.Parcel;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+
+/**
+ * Instrumented unit test, to be run in an Android emulator or device.
+ *
+ * At the moment, it's a sample to validate the automatic test environment, in the scope of instrumented unit tests.
+ *
+ * Don't take it as an example of completeness.
+ *
+ * See http://developer.android.com/intl/es/training/testing/unit-testing/instrumented-unit-tests.html .
+ */
+@RunWith(AndroidJUnit4.class)
+@SmallTest
+public class OCFileUnitTest {
+
+    private final static String PATH = "/path/to/a/file.txt";
+    private static final long ID = 12345L;
+    private static final long PARENT_ID = 567890L;
+    private static final String STORAGE_PATH = "/mnt/sd/localpath/to/a/file.txt";
+    private static final String MIME_TYPE = "text/plain";
+    private static final long FILE_LENGTH = 9876543210L;
+    private static final long CREATION_TIMESTAMP = 8765432109L;
+    private static final long MODIFICATION_TIMESTAMP = 7654321098L;
+    private static final long MODIFICATION_TIMESTAMP_AT_LAST_SYNC_FOR_DATA = 6543210987L;
+    private static final long LAST_SYNC_DATE_FOR_PROPERTIES = 5432109876L;
+    private static final long LAST_SYNC_DATE_FOR_DATA = 4321098765L;
+    private static final String ETAG = "adshfas98ferqw8f9yu2";
+    private static final String PUBLIC_LINK = "https://fake.url.net/owncloud/987427448712984sdas29";
+    private static final String PERMISSIONS = "SRKNVD";
+    private static final String REMOTE_ID = "jadñgiadf8203:9jrp98v2mn3er2089fh";
+    private static final String ETAG_IN_CONFLICT = "2adshfas98ferqw8f9yu";
+
+    private OCFile mFile;
+
+    @Before
+    public void createDefaultOCFile() {
+        mFile = new OCFile(PATH);
+    }
+
+
+    @Test
+    public void writeThenReadAsParcelable() {
+
+        // Set up mFile with not-default values
+        mFile.setFileId(ID);
+        mFile.setParentId(PARENT_ID);
+        mFile.setStoragePath(STORAGE_PATH);
+        mFile.setMimetype(MIME_TYPE);
+        mFile.setFileLength(FILE_LENGTH);
+        mFile.setCreationTimestamp(CREATION_TIMESTAMP);
+        mFile.setModificationTimestamp(MODIFICATION_TIMESTAMP);
+        mFile.setModificationTimestampAtLastSyncForData(MODIFICATION_TIMESTAMP_AT_LAST_SYNC_FOR_DATA);
+        mFile.setLastSyncDateForProperties(LAST_SYNC_DATE_FOR_PROPERTIES);
+        mFile.setLastSyncDateForData(LAST_SYNC_DATE_FOR_DATA);
+        mFile.setFavorite(true);
+        mFile.setEtag(ETAG);
+        mFile.setShareViaLink(true);
+        mFile.setShareWithSharee(true);
+        mFile.setPublicLink(PUBLIC_LINK);
+        mFile.setPermissions(PERMISSIONS);
+        mFile.setRemoteId(REMOTE_ID);
+        mFile.setNeedsUpdateThumbnail(true);
+        mFile.setDownloading(true);
+        mFile.setEtagInConflict(ETAG_IN_CONFLICT);
+
+
+        // Write the file data in a Parcel
+        Parcel parcel = Parcel.obtain();
+        mFile.writeToParcel(parcel, mFile.describeContents());
+
+        // Read the data from the parcel
+        parcel.setDataPosition(0);
+        OCFile fileReadFromParcel = OCFile.CREATOR.createFromParcel(parcel);
+
+        // Verify that the received data are correct
+        assertThat(fileReadFromParcel.getRemotePath(), is(PATH));
+        assertThat(fileReadFromParcel.getFileId(), is(ID));
+        assertThat(fileReadFromParcel.getParentId(), is(PARENT_ID));
+        assertThat(fileReadFromParcel.getStoragePath(), is(STORAGE_PATH));
+        assertThat(fileReadFromParcel.getMimetype(), is(MIME_TYPE));
+        assertThat(fileReadFromParcel.getFileLength(), is(FILE_LENGTH));
+        assertThat(fileReadFromParcel.getCreationTimestamp(), is(CREATION_TIMESTAMP));
+        assertThat(fileReadFromParcel.getModificationTimestamp(), is(MODIFICATION_TIMESTAMP));
+        assertThat(
+            fileReadFromParcel.getModificationTimestampAtLastSyncForData(),
+            is(MODIFICATION_TIMESTAMP_AT_LAST_SYNC_FOR_DATA)
+        );
+        assertThat(fileReadFromParcel.getLastSyncDateForProperties(), is(LAST_SYNC_DATE_FOR_PROPERTIES));
+        assertThat(fileReadFromParcel.getLastSyncDateForData(), is(LAST_SYNC_DATE_FOR_DATA));
+        assertThat(fileReadFromParcel.isFavorite(), is(true));
+        assertThat(fileReadFromParcel.getEtag(), is(ETAG));
+        assertThat(fileReadFromParcel.isSharedViaLink(), is(true));
+        assertThat(fileReadFromParcel.isSharedWithSharee(), is(true));
+        assertThat(fileReadFromParcel.getPublicLink(), is(PUBLIC_LINK));
+        assertThat(fileReadFromParcel.getPermissions(), is(PERMISSIONS));
+        assertThat(fileReadFromParcel.getRemoteId(), is(REMOTE_ID));
+        assertThat(fileReadFromParcel.needsUpdateThumbnail(), is(true));
+        assertThat(fileReadFromParcel.isDownloading(), is(true));
+        assertThat(fileReadFromParcel.getEtagInConflict(), is(ETAG_IN_CONFLICT));
+
+    }
+}