Skip to content

Instantly share code, notes, and snippets.

View ShaishavGandhi's full-sized avatar

Shaishav Gandhi ShaishavGandhi

View GitHub Profile
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:paddingTop="8dp"
android:paddingBottom="8dp"
xmlns:tools="http://schemas.android.com/tools">
<TextView
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:drawable="@drawable/ic_thumb_up_red_24dp"/>
<item android:drawable="@drawable/ic_thumb_up_black_24dp"/>
</selector>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true">
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="scaleX"
android:valueTo="1.525"
android:valueType="floatType" />
<objectAnimator
class BlogPresenter(val blogRepository: BlogRepository, val view : BlogView) {
fun blogs() {
val disposable = blogRepository.blogs()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(object : DisposableObserver<List<Blog>>() {
override fun onComplete() {
}
@RunWith(JUnit4::class)
class BlogPresenterUTest {
lateinit var blogRepository : BlogRepository
lateinit var blogView : BlogView
lateinit var blogPresenter : BlogPresenter
@Before @Throws fun setUp(){
RxAndroidPlugins.setInitMainThreadSchedulerHandler({ Schedulers.trampoline()})
MockitoAnnotations.initMocks(this)
class BlogRepository(val blogService : BlogService) {
fun blogs() : Observable<List<Blog>> {
return blogService.blogs()
}
}
public interface BlogService {
@GET("/blogs")
fun blogs() : Observable<List<Blog>>
}
@RunWith(JUnit4::class)
class BlogRepositoryUTest {
lateinit var blogRepository : BlogRepository
lateinit var mockServer : MockWebServer
lateinit var blogService : BlogService
@Before @Throws fun setUp() {
// Initialize mock webserver
mockServer = MockWebServer()
@Test fun testBlogsReturnsListOfBlogs() {
val testObserver = TestObserver<List<Blog>>()
val path = "/blogs"
// Mock a response with status 200 and sample JSON output
val mockReponse = MockReponse()
.setResponseCode(200)
.setBody(getJson("json/blog/blogs.json"))
@Test fun testBlogsReturnsError() {
val testObserver = TestObserver<List<Blog>>()
val path = "/blogs"
// Mock a response with status 200 and sample JSON output
val mockReponse = MockReponse()
.setResponseCode(500) // Simulate a 500 HTTP Code
// Enqueue request