Эх сурвалжийг харах

Merge remote-tracking branch 'origin/master'

Beautus Sduduzo Gumede 7 жил өмнө
parent
commit
a098f5af2b

+ 12 - 4
app/build.gradle

@@ -31,21 +31,29 @@ android {
 dependencies {
     implementation fileTree(include: ['*.jar'], dir: 'libs')
     implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
+
+    // Support Libraries
     implementation 'com.android.support:appcompat-v7:28.0.0'
     implementation 'com.android.support.constraint:constraint-layout:1.1.3'
-    implementation 'android.arch.lifecycle:extensions:1.1.1'
+    implementation 'com.android.support:cardview-v7:28.0.0'
+    implementation 'com.android.support:design:28.0.0'
     implementation 'com.android.support:recyclerview-v7:28.0.0'
+
+    // Arch Components
+    implementation 'android.arch.lifecycle:extensions:1.1.1'
     implementation 'android.arch.navigation:navigation-fragment:1.0.0-alpha06'
     implementation 'android.arch.persistence.room:runtime:1.1.1'
     annotationProcessor "android.arch.persistence.room:compiler:1.1.1"
     implementation 'android.arch.lifecycle:extensions:1.1.1'
     annotationProcessor "android.arch.lifecycle:compiler:1.1.1"
-    implementation 'com.android.support:cardview-v7:28.0.0'
-    implementation 'com.android.support:design:28.0.0'
+
+    // 3rd Party libs
     implementation 'com.daasuu:EasingInterpolator:1.0.0'
 
-    // Tests
+    // Test libs
     testImplementation 'junit:junit:4.12'
     testImplementation 'org.mockito:mockito-core:2.7.6'
     androidTestImplementation 'android.arch.persistence.room:testing:1.1.1'
+    androidTestImplementation 'com.android.support.test:runner:1.0.2'
+    androidTestImplementation 'com.android.support.test:rules:1.0.2'
 }

+ 46 - 0
app/src/androidTest/java/com/sduduzog/slimlauncher/DBTest.kt

@@ -0,0 +1,46 @@
+package com.sduduzog.slimlauncher
+
+import android.arch.persistence.room.Room
+import android.content.Context
+import android.support.test.InstrumentationRegistry
+import android.support.test.runner.AndroidJUnit4
+
+import com.sduduzog.slimlauncher.data.App
+import com.sduduzog.slimlauncher.data.AppDao
+import com.sduduzog.slimlauncher.data.AppRoomDatabase
+
+import org.junit.After
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+
+import org.hamcrest.CoreMatchers.equalTo
+import org.junit.Assert.assertThat
+
+@RunWith(AndroidJUnit4::class)
+class DBTest {
+
+    private var mAppDao: AppDao? = null
+    private var mDb: AppRoomDatabase? = null
+
+    @Before
+    fun createDb() {
+        val context = InstrumentationRegistry.getTargetContext()
+        mDb = Room.inMemoryDatabaseBuilder(context, AppRoomDatabase::class.java).build()
+        mAppDao = mDb!!.appDao()
+    }
+
+    @After
+    fun closeDb() {
+        mDb!!.close()
+    }
+
+    @Test
+    @Throws(InterruptedException::class)
+    fun testInsertLiveDataApps() {
+        val app = TestUtil.createApp("TestApp", "com.test.testapp", "TestMainActivity")
+        mAppDao!!.insert(app)
+        val appsInstalled = LiveDataTestUtil.getValue(mAppDao!!.apps)
+        assertThat(appsInstalled.size, equalTo(1))
+    }
+}

+ 27 - 0
app/src/androidTest/java/com/sduduzog/slimlauncher/LiveDataTestUtil.kt

@@ -0,0 +1,27 @@
+package com.sduduzog.slimlauncher
+
+import android.arch.lifecycle.LiveData
+import android.arch.lifecycle.Observer
+
+import java.util.concurrent.CountDownLatch
+import java.util.concurrent.TimeUnit
+
+object LiveDataTestUtil {
+
+    @Throws(InterruptedException::class)
+    fun <T> getValue(liveData: LiveData<T>): T {
+        val data = arrayOfNulls<Any>(1)
+        val latch = CountDownLatch(1)
+        val observer = object : Observer<T> {
+            override fun onChanged(o: T?) {
+                data[0] = o
+                latch.countDown()
+                liveData.removeObserver(this)
+            }
+        }
+        liveData.observeForever(observer)
+        latch.await(2, TimeUnit.SECONDS)
+
+        return data[0] as T
+    }
+}

+ 14 - 0
app/src/androidTest/java/com/sduduzog/slimlauncher/TestUtil.kt

@@ -0,0 +1,14 @@
+package com.sduduzog.slimlauncher
+
+import com.sduduzog.slimlauncher.data.App
+
+internal object TestUtil {
+
+    fun createApp(appName: String, packageName: String, activityName: String): App {
+        val app = App()
+        app.appName = appName
+        app.packageName = packageName
+        app.activityName = activityName
+        return app
+    }
+}