Skip to content

Instantly share code, notes, and snippets.

View tolmachevroman's full-sized avatar

Roman Tolmachev tolmachevroman

  • Santiago, Chile
View GitHub Profile
@tolmachevroman
tolmachevroman / Restaurant.kt
Last active November 26, 2017 05:12
Medium Post 1. Restaurant entity
@Entity
data class Restaurant(@PrimaryKey val id: Int, val cuisine: Int?, val name: String?,
val lat: Double, val lng: Double, val price: Int,
val image: String = "", val description: String = "") : Serializable
@tolmachevroman
tolmachevroman / RestaurantsDao.kt
Last active November 26, 2017 05:12
Medium Post 1. RestaurantsDao
@Dao
interface RestaurantsDao {
@Query("SELECT * FROM restaurant")
fun queryRestaurants(): LiveData<List<Restaurant>>
@Query("SELECT * FROM restaurant WHERE cuisine LIKE :cuisine")
fun queryRestaurantsByCuisine(cuisine: Int): LiveData<List<Restaurant>>
@Insert(onConflict = REPLACE)
@tolmachevroman
tolmachevroman / Database.kt
Last active November 26, 2017 05:11
Medium Post 1. Database
@Database(entities = arrayOf(Restaurant::class), version = 1)
abstract class Database : RoomDatabase() {
abstract fun restaurantsDao(): RestaurantsDao
}
@tolmachevroman
tolmachevroman / URL, build.gradle
Created November 25, 2017 07:39
Medium Post 1. URL, build.gradle
buildTypes {
//
debug {
buildConfigField 'String', 'URL', '"http://192.168.1.195:8080/"'
}
release {
buildConfigField 'String', 'URL', '"https://my-json-server.typicode.com/tolmachevroman/demo/"'
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
@tolmachevroman
tolmachevroman / Utils.kt
Last active November 26, 2017 05:11
Medium Post 3. Utils.hasConnection()
fun hasConnection(): Boolean {
val cm = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val activeNetwork = cm.activeNetworkInfo
return activeNetwork != null && activeNetwork.isAvailable && activeNetwork.isConnected
}
@tolmachevroman
tolmachevroman / UtilsTest.kt
Last active November 26, 2017 05:11
Medium Post 3. UtilsTest
@RunWith(JUnit4::class)
class UtilsTest {
@Test
fun hasConnectionTest() {
val context = Mockito.mock<Context>(Context::class.java)
val connManager = Mockito.mock(ConnectivityManager::class.java)
val networkInfo = Mockito.mock(NetworkInfo::class.java)
val packageManager = Mockito.mock(PackageManager::class.java)
val utils = Utils(context)
@tolmachevroman
tolmachevroman / RestaurantsViewModelTest.kt
Last active November 26, 2017 05:10
Medium Post 3. RestaurantsViewModelTest
@RunWith(JUnit4::class)
class RestaurantsViewModelTest {
@Rule
@JvmField
var instantExecutor = InstantTaskExecutorRule()
@Mock
lateinit var repository: RestaurantsRepository
@tolmachevroman
tolmachevroman / WebServiceTest.kt
Last active November 26, 2017 05:10
Medium Part 3. WebServiceTest
@RunWith(JUnit4::class)
class WebServiceTest {
@Rule
@JvmField
var instantExecutor = InstantTaskExecutorRule()
private lateinit var webService: WebService
private lateinit var mockWebServer: MockWebServer
@tolmachevroman
tolmachevroman / build.gradle
Last active November 26, 2017 05:10
Medium Post 4. shared folders between tests
android {
// ...
sourceSets {
String sharedTestDir = 'src/sharedTest/utils'
test {
java.srcDirs += "$projectDir/$sharedTestDir"
}
androidTest {
java.srcDirs += "$projectDir/$sharedTestDir"
@tolmachevroman
tolmachevroman / RestaurantsDaoTest.kt
Last active November 26, 2017 05:09
Medium Post 3. RestaurantsDaoTest
@RunWith(AndroidJUnit4::class)
class RestaurantsDaoTest {
@Rule
@JvmField
var instantExecutor = InstantTaskExecutorRule()
@Mock
private lateinit var observer: Observer<List<Restaurant>>