Skip to content

Instantly share code, notes, and snippets.

View pranay1494's full-sized avatar
🤠

Pranay Bansal pranay1494

🤠
View GitHub Profile
import io.reactivex.subjects.PublishSubject
import okhttp3.MediaType
import okhttp3.RequestBody
import okio.BufferedSink
import java.io.File
import java.io.FileInputStream
import java.lang.Exception
class ProgressEmittingRequestBody constructor(val mediaType: String, val file: File) : RequestBody() {
override fun contentLength(): Long {
return file.length()
}
interface VideoUploadClient {
@POST
@Multipart
fun uploadVideoToServer(@Url url: String,
@PartMap body : Map<String,@JvmSuppressWildcards RequestBody>,
@Part video: MultipartBody.Part): Observable<ResponseBody>
}
override fun uploadVideo(pathToVideoFile: String) : Observable<ResponseBody>{
val videoFile = File(pathToVideoFile)
val videoRequestBody = ProgressEmittingRequestBody(mediaType = "video/*", file = videoFile)
val vFile = MultipartBody.Part.createFormData("file", videoFile.name, videoRequestBody)
val bodyMap: HashMap<String, @JvmSuppressWildcards RequestBody> = HashMap()
val body = responseEntity.multipartRequest.body
createRequestBodyMap(bodyMap, body)
package com.example.coroutinesdemo.ui
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.viewModelScope
import com.example.coroutinesdemo.api.model.User
import com.example.coroutinesdemo.base.BaseViewModel
import com.example.coroutinesdemo.base.ViewStatus
import com.example.coroutinesdemo.repository.UserRepository
import kotlinx.coroutines.launch
class UserViewModelTestShould{
@get:Rule
val rule = InstantTaskExecutorRule()
private lateinit var viewModel: UserViewModel
@Mock lateinit var repository: UserRepository
@Mock lateinit var observer: Observer<UserViewModel.DisplayData>
@Before
package olx.com.delorean.view.filter.viewmodel
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.test.TestCoroutineDispatcher
import kotlinx.coroutines.test.TestCoroutineScope
import kotlinx.coroutines.test.resetMain
import kotlinx.coroutines.test.setMain
import org.junit.rules.TestWatcher
import org.junit.runner.Description
package com.example.coroutinesdemo.ui
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
import androidx.lifecycle.Observer
import com.example.coroutinesdemo.api.model.User
import com.example.coroutinesdemo.repository.UserRepository
import kotlinx.coroutines.test.runBlockingTest
import org.junit.Before
import org.junit.Rule
import org.junit.Test
@Before
fun setUp(){
MockitoAnnotations.initMocks(this)
viewModel = UserViewModel(repository,dispatcherRule.testDispatcher)
viewModel.getData().observeForever(observer)
}
package com.example.coroutinesdemo.base
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.Dispatchers
data class CoroutineDispatcherProvider constructor(
val main: CoroutineDispatcher = Dispatchers.Main,
val default: CoroutineDispatcher = Dispatchers.Default,
val io: CoroutineDispatcher = Dispatchers.IO
)