mirror of
				https://github.com/KokaKiwi/BarInsta
				synced 2025-10-31 03:25:34 +00:00 
			
		
		
		
	Fix tests
This commit is contained in:
		
							parent
							
								
									6763ccb6d5
								
							
						
					
					
						commit
						3d5569c46b
					
				| @ -148,6 +148,8 @@ android { | |||||||
|         exclude 'META-INF/LICENSE.md' |         exclude 'META-INF/LICENSE.md' | ||||||
|         exclude 'META-INF/LICENSE-notice.md' |         exclude 'META-INF/LICENSE-notice.md' | ||||||
|         exclude 'META-INF/atomicfu.kotlin_module' |         exclude 'META-INF/atomicfu.kotlin_module' | ||||||
|  |         exclude 'META-INF/AL2.0' | ||||||
|  |         exclude 'META-INF/LGPL2.1' | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     testOptions.unitTests { |     testOptions.unitTests { | ||||||
| @ -254,5 +256,7 @@ dependencies { | |||||||
|     androidTestImplementation 'com.android.support:support-annotations:28.0.0' |     androidTestImplementation 'com.android.support:support-annotations:28.0.0' | ||||||
|     androidTestImplementation 'com.android.support.test:runner:1.0.2' |     androidTestImplementation 'com.android.support.test:runner:1.0.2' | ||||||
|     androidTestImplementation "androidx.room:room-testing:2.3.0" |     androidTestImplementation "androidx.room:room-testing:2.3.0" | ||||||
|  |     androidTestImplementation "androidx.arch.core:core-testing:2.1.0" | ||||||
|  |     androidTestImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.5.0' | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  | |||||||
| @ -27,7 +27,6 @@ public class MigrationTest { | |||||||
| 
 | 
 | ||||||
|     public MigrationTest() { |     public MigrationTest() { | ||||||
|         final String canonicalName = AppDatabase.class.getCanonicalName(); |         final String canonicalName = AppDatabase.class.getCanonicalName(); | ||||||
|         assert canonicalName != null; |  | ||||||
|         helper = new MigrationTestHelper(InstrumentationRegistry.getInstrumentation(), |         helper = new MigrationTestHelper(InstrumentationRegistry.getInstrumentation(), | ||||||
|                                          canonicalName, |                                          canonicalName, | ||||||
|                                          new FrameworkSQLiteOpenHelperFactory()); |                                          new FrameworkSQLiteOpenHelperFactory()); | ||||||
|  | |||||||
| @ -1,82 +1,81 @@ | |||||||
| package awais.instagrabber.db.dao; | package awais.instagrabber.db.dao | ||||||
| 
 | 
 | ||||||
| import android.content.Context; | import android.content.Context | ||||||
|  | import androidx.arch.core.executor.testing.InstantTaskExecutorRule | ||||||
|  | import androidx.room.Room | ||||||
|  | import androidx.test.core.app.ApplicationProvider | ||||||
|  | import androidx.test.runner.AndroidJUnit4 | ||||||
|  | import awais.instagrabber.db.AppDatabase | ||||||
|  | import awais.instagrabber.db.entities.RecentSearch | ||||||
|  | import awais.instagrabber.models.enums.FavoriteType | ||||||
|  | import kotlinx.coroutines.ExperimentalCoroutinesApi | ||||||
|  | import kotlinx.coroutines.runBlocking | ||||||
|  | import kotlinx.coroutines.test.runBlockingTest | ||||||
|  | import org.junit.After | ||||||
|  | import org.junit.Before | ||||||
|  | import org.junit.Rule | ||||||
|  | import org.junit.Test | ||||||
|  | import org.junit.jupiter.api.Assertions | ||||||
|  | import org.junit.runner.RunWith | ||||||
|  | import java.time.LocalDateTime | ||||||
| 
 | 
 | ||||||
| import androidx.annotation.NonNull; | @RunWith(AndroidJUnit4::class) | ||||||
| import androidx.room.Room; | class RecentSearchDaoTest { | ||||||
| import androidx.test.core.app.ApplicationProvider; |     private lateinit var db: AppDatabase | ||||||
| import androidx.test.runner.AndroidJUnit4; |     private lateinit var dao: RecentSearchDao | ||||||
| 
 | 
 | ||||||
| import com.google.common.collect.ImmutableList; |     @get:Rule | ||||||
| 
 |     var instantExecutorRule = InstantTaskExecutorRule() | ||||||
| import org.junit.After; |  | ||||||
| import org.junit.Before; |  | ||||||
| import org.junit.Test; |  | ||||||
| import org.junit.jupiter.api.Assertions; |  | ||||||
| import org.junit.runner.RunWith; |  | ||||||
| 
 |  | ||||||
| import java.time.LocalDateTime; |  | ||||||
| import java.util.List; |  | ||||||
| 
 |  | ||||||
| import awais.instagrabber.db.AppDatabase; |  | ||||||
| import awais.instagrabber.db.entities.RecentSearch; |  | ||||||
| import awais.instagrabber.models.enums.FavoriteType; |  | ||||||
| 
 |  | ||||||
| @RunWith(AndroidJUnit4.class) |  | ||||||
| public class RecentSearchDaoTest { |  | ||||||
|     private static final String TAG = RecentSearchDaoTest.class.getSimpleName(); |  | ||||||
| 
 |  | ||||||
|     private RecentSearchDao dao; |  | ||||||
|     private AppDatabase db; |  | ||||||
| 
 | 
 | ||||||
|     @Before |     @Before | ||||||
|     public void createDb() { |     fun createDb() { | ||||||
|         final Context context = ApplicationProvider.getApplicationContext(); |         val context = ApplicationProvider.getApplicationContext<Context>() | ||||||
|         db = Room.inMemoryDatabaseBuilder(context, AppDatabase.class).build(); |         db = Room.inMemoryDatabaseBuilder(context, AppDatabase::class.java).build() | ||||||
|         dao = db.recentSearchDao(); |         dao = db.recentSearchDao() | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     @After |     @After | ||||||
|     public void closeDb() { |     fun closeDb() { | ||||||
|         db.close(); |         db.close() | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     @ExperimentalCoroutinesApi | ||||||
|     @Test |     @Test | ||||||
|     public void writeQueryDelete() { |     fun writeQueryDelete() = runBlockingTest { | ||||||
|         final RecentSearch recentSearch = insertRecentSearch("1", "test1", FavoriteType.HASHTAG); |         val recentSearch = insertRecentSearch(1, "1", "test1", FavoriteType.HASHTAG) | ||||||
|         final RecentSearch byIgIdAndType = dao.getRecentSearchByIgIdAndType("1", FavoriteType.HASHTAG); |         val byIgIdAndType = dao.getRecentSearchByIgIdAndType("1", FavoriteType.HASHTAG) | ||||||
|         Assertions.assertEquals(recentSearch, byIgIdAndType); |         Assertions.assertNotNull(byIgIdAndType) | ||||||
|         dao.deleteRecentSearch(byIgIdAndType); |         Assertions.assertEquals(recentSearch, byIgIdAndType) | ||||||
|         final RecentSearch deleted = dao.getRecentSearchByIgIdAndType("1", FavoriteType.HASHTAG); |         dao.deleteRecentSearch(byIgIdAndType ?: throw NullPointerException()) | ||||||
|         Assertions.assertNull(deleted); |         val deleted = dao.getRecentSearchByIgIdAndType("1", FavoriteType.HASHTAG) | ||||||
|  |         Assertions.assertNull(deleted) | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     @ExperimentalCoroutinesApi | ||||||
|     @Test |     @Test | ||||||
|     public void queryAllOrdered() { |     fun queryAllOrdered() = runBlockingTest { | ||||||
|         final List<RecentSearch> insertListReversed = ImmutableList |         val insertListReversed: List<RecentSearch> = listOf( | ||||||
|                 .<RecentSearch>builder() |             insertRecentSearch(1, "1", "test1", FavoriteType.HASHTAG), | ||||||
|                 .add(insertRecentSearch("1", "test1", FavoriteType.HASHTAG)) |             insertRecentSearch(2, "2", "test2", FavoriteType.LOCATION), | ||||||
|                 .add(insertRecentSearch("2", "test2", FavoriteType.LOCATION)) |             insertRecentSearch(3, "3", "test3", FavoriteType.USER), | ||||||
|                 .add(insertRecentSearch("3", "test3", FavoriteType.USER)) |             insertRecentSearch(4, "4", "test4", FavoriteType.USER), | ||||||
|                 .add(insertRecentSearch("4", "test4", FavoriteType.USER)) |             insertRecentSearch(5, "5", "test5", FavoriteType.USER) | ||||||
|                 .add(insertRecentSearch("5", "test5", FavoriteType.USER)) |         ).asReversed() // important | ||||||
|                 .build() |         val fromDb: List<RecentSearch?> = dao.getAllRecentSearches() | ||||||
|                 .reverse(); // important |         Assertions.assertIterableEquals(insertListReversed, fromDb) | ||||||
|         final List<RecentSearch> fromDb = dao.getAllRecentSearches(); |  | ||||||
|         Assertions.assertIterableEquals(insertListReversed, fromDb); |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     @NonNull |     private fun insertRecentSearch(id: Int, igId: String, name: String, type: FavoriteType): RecentSearch { | ||||||
|     private RecentSearch insertRecentSearch(final String igId, final String name, final FavoriteType type) { |         val recentSearch = RecentSearch( | ||||||
|         final RecentSearch recentSearch = new RecentSearch( |             id, | ||||||
|             igId, |             igId, | ||||||
|             name, |             name, | ||||||
|             null, |             null, | ||||||
|             null, |             null, | ||||||
|             type, |             type, | ||||||
|             LocalDateTime.now() |             LocalDateTime.now() | ||||||
|         ); |         ) | ||||||
|         dao.insertRecentSearch(recentSearch); |         runBlocking { dao.insertRecentSearch(recentSearch) } | ||||||
|         return recentSearch; |         return recentSearch | ||||||
|     } |     } | ||||||
| } | } | ||||||
| @ -132,7 +132,9 @@ abstract class AppDatabase : RoomDatabase() { | |||||||
|                 db.execSQL("ALTER TABLE " + Favorite.TABLE_NAME + "_backup RENAME TO " + Favorite.TABLE_NAME) |                 db.execSQL("ALTER TABLE " + Favorite.TABLE_NAME + "_backup RENAME TO " + Favorite.TABLE_NAME) | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|         private val MIGRATION_4_5: Migration = object : Migration(4, 5) { | 
 | ||||||
|  |         @JvmField | ||||||
|  |         val MIGRATION_4_5: Migration = object : Migration(4, 5) { | ||||||
|             override fun migrate(database: SupportSQLiteDatabase) { |             override fun migrate(database: SupportSQLiteDatabase) { | ||||||
|                 database.execSQL("CREATE TABLE IF NOT EXISTS `dm_last_notified` (" + |                 database.execSQL("CREATE TABLE IF NOT EXISTS `dm_last_notified` (" + | ||||||
|                                  "`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, " + |                                  "`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, " + | ||||||
| @ -142,7 +144,9 @@ abstract class AppDatabase : RoomDatabase() { | |||||||
|                 database.execSQL("CREATE UNIQUE INDEX IF NOT EXISTS `index_dm_last_notified_thread_id` ON `dm_last_notified` (`thread_id`)") |                 database.execSQL("CREATE UNIQUE INDEX IF NOT EXISTS `index_dm_last_notified_thread_id` ON `dm_last_notified` (`thread_id`)") | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|         private val MIGRATION_5_6: Migration = object : Migration(5, 6) { | 
 | ||||||
|  |         @JvmField | ||||||
|  |         val MIGRATION_5_6: Migration = object : Migration(5, 6) { | ||||||
|             override fun migrate(database: SupportSQLiteDatabase) { |             override fun migrate(database: SupportSQLiteDatabase) { | ||||||
|                 database.execSQL("CREATE TABLE IF NOT EXISTS `recent_searches` (" + |                 database.execSQL("CREATE TABLE IF NOT EXISTS `recent_searches` (" + | ||||||
|                                  "`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, " + |                                  "`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, " + | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user