Skip to content

Instantly share code, notes, and snippets.

View fo2rist's full-sized avatar

Dmitry Sitnikov fo2rist

View GitHub Profile
@fo2rist
fo2rist / EmptyEspressoTest.kt
Last active June 18, 2019 02:17
Simple Espresso Test Setup / Empty Test
@RunWith(AndroidJUnit4::class)
class BaseMainActivityTest {
@get:Rule
var activityRule = ActivityTestRule(MainActivity::class.java)
protected val context: Context by lazy { activityRule.activity }
// test goes here just like this example from Espresso documentation
}
@fo2rist
fo2rist / InfiniteEspressoTest.kt
Last active June 18, 2019 02:38
Simple Espresso Test Setup / Infinite Test
@RunWith(AndroidJUnit4::class)
class BaseMainActivityTest {
@get:Rule
var activityRule = ActivityTestRule(MainActivity::class.java)
@Test
fun acitivityIsRunning() {
if (true) while(true) Thread.sleep(100); /*DEBUG*/
}
@fo2rist
fo2rist / SimpleEspressoTest.kt
Last active June 18, 2019 02:39
Simple Espresso Test Setup / Basic Test
@RunWith(AndroidJUnit4::class)
class BaseMainActivityTest {
@get:Rule
var activityRule = ActivityTestRule(MainActivity::class.java)
// the context is often needed in more complex Espresso tests
protected val context: Context by lazy { activityRule.activity }
@Test
@fo2rist
fo2rist / TryOrElseExample.kt
Last active July 6, 2019 00:05
Initialization example
// try-fail-catch approach
try {
doMainAction()
} catch (exc: SomePreconditionViolated) {
doFallbackAction()
}
/* ^ COMPARE v */
// check-and-execute approach
// try-ignore approach
try {
doAction()
} catch (exc: SomePreconditionViolated) {
//ignore
} finally {
finalize()
}
/* ^ COMPARE v */
@fo2rist
fo2rist / SomeStrictActivity.kt
Created July 9, 2019 18:50
ActivityThatMayCrash.kt
class SomeStrictActivity : Activity() {
companion object {
@JvmStatic
fun createIntent(context: Context, importantParameter: Parameter): Intent {
val intent = Intent(context, SomeStrictActivity::class.java)
intent.putExtra(EXTRA_PARAMETER, importantParameter)
return intent
}
}
@fo2rist
fo2rist / SomeData.kt
Created August 27, 2019 04:13
Gson Examples. Class without default constructor
data class SomeData(
val intValue: Int,
val strValue: String = "default value"
)
@fo2rist
fo2rist / SomeData.kt
Created August 27, 2019 04:24
Gson Examples. Class with default constructor
data class SomeData(
val intValue: Int = 0,
val strValue: String = "default value"
)
@fo2rist
fo2rist / TwoDataClasses.kt
Created August 27, 2019 04:32
Gson Examples. Two data classes
data class WithoutDefaultConstructor(
val intValue: Int,
val strValue: String = "default"
)
data class WithDefaultConstructor(
val intValue: Int = 1,
val strValue: String = "default"
)
@fo2rist
fo2rist / TwoDataClasses.java
Last active August 28, 2019 15:25
Gson Examples. Two data classes corresponding Java code
public final class WithoutDefaultConstructor {
private final int intValue;
@NotNull
private final String strValue;
public WithoutDefaultConstructor(int intValue, @NotNull String strValue) {
super();
this.intValue = intValue;
this.strValue = strValue;
}