Skip to content

Instantly share code, notes, and snippets.

View nhoxbypass's full-sized avatar
🐧
I come from Earth

Tam H. Doan nhoxbypass

🐧
I come from Earth
View GitHub Profile
@Throws(Exception::class)
fun setFinalStatic(field: Field, newValue: Any) {
field.setAccessible(true)
val modifiersField = Field::class.java.getDeclaredField("modifiers")
modifiersField.setAccessible(true)
modifiersField.setInt(field, field.getModifiers() and Modifier.FINAL.inv())
field.set(null, newValue)
}
class MyPresenterTest {
@Test
fun onOpenCameraButtonClick_postM() {
setFinalStatic(Build.VERSION::class.java.getField("SDK_INT"), 23)
// Verify flow request Runtime Permissions
// ...
}
@After
class MyPresenter(val view: MyView, val buildProvider: BuildVersionProvider) : BasePresenter() {
override fun onCameraButtonClick() {
if (buildProvider.isMarshmallowAndAbove()) {
view.requestCameraPermission()
} else {
navigator.openCamera()
}
}
}
class MyPresenterTest {
@Mock
private lateinit var mockBuildProvider: BuildVersionProvider
@Mock
private lateinit var mockView: MyView
private lateinit var presenter: MyPresenter
@Before
class MyPresenterTest {
@Test
fun onOpenCameraButtonClick_postM() {
// Arrange
Mockito.`when`(mockBuildProvider.isMarshmallowAndAbove()).thenReturn(true)
// Action
presenter.onCameraButtonClick()
// Assert