Skip to content

Instantly share code, notes, and snippets.

@tolmachevroman
Last active November 26, 2017 05:09
Show Gist options
  • Save tolmachevroman/3a19e750946bf4e5ecaf02606659ef93 to your computer and use it in GitHub Desktop.
Save tolmachevroman/3a19e750946bf4e5ecaf02606659ef93 to your computer and use it in GitHub Desktop.
Medium Post 3. RestaurantsDaoTest
@RunWith(AndroidJUnit4::class)
class RestaurantsDaoTest {
@Rule
@JvmField
var instantExecutor = InstantTaskExecutorRule()
@Mock
private lateinit var observer: Observer<List<Restaurant>>
private lateinit var database: Database
private lateinit var restaurantsDao: RestaurantsDao
@Before
fun setup() {
MockitoAnnotations.initMocks(this)
val context = InstrumentationRegistry.getTargetContext()
database = Room.inMemoryDatabaseBuilder(context, Database::class.java).allowMainThreadQueries().build()
restaurantsDao = database.restaurantsDao()
}
@After
fun tearDown() {
database.close()
}
@Test
fun queryRestaurantsTest() {
//given
val restaurant = Restaurant(1, 1, "Fake Restaurant", 0.0, 0.0, 1000,
"image", "description")
restaurantsDao.insertRestaurant(restaurant)
//when
restaurantsDao.queryRestaurants().observeForever(observer)
//then
verify(observer).onChanged(listOf(restaurant))
}
@Test
fun queryRestaurantsByCuisineTest() {
//given
val restaurant1 = Restaurant(1, 1, "Fake Restaurant", 0.0, 0.0, 1000,
"image", "description")
val restaurant2 = Restaurant(2, 2, "Fake Restaurant 2", 0.0, 0.0, 1000,
"image", "description")
val restaurant3 = Restaurant(3, 1, "Fake Restaurant 3", 0.0, 0.0, 1000,
"image", "description")
restaurantsDao.insertRestaurant(restaurant1)
restaurantsDao.insertRestaurant(restaurant2)
restaurantsDao.insertRestaurant(restaurant3)
//when
restaurantsDao.queryRestaurantsByCuisine(1).observeForever(observer)
//then
verify(observer).onChanged(listOf(restaurant1, restaurant3))
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment