Skip to content

Instantly share code, notes, and snippets.

class GreetingServiceFakeTest {
@Inject
lateinit var greetingService: GreetingService
@Test
fun testGreetingInTheMorning() {
val testModule = module {
bind<TimeService>().toInstance(object : TimeService {
@RunWith(RobolectricTestRunner::class)
@Config(sdk = [Build.VERSION_CODES.P])
class GreetingServiceRoboTest {
@get:Rule
val mockitoRule: MockitoRule = MockitoJUnit.rule()
@Mock
lateinit var timeService: TimeService
class MessageData @Inject constructor(val welcomeMessage: String)
val builder = Retrofit.Builder()
.client(getClient(serviceClass))
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.addConverterFactory(GuavaOptionalConverterFactory.create())
.addConverterFactory(GsonConverterFactory.create(gson))
.baseUrl(endpointAdapter.getURLString(context, serviceClass.simpleName))
.addConverterFactory(Json.asConverterFactory(MediaType.get("application/json")))
import kotlinx.serialization.Serializable
@Serializable
class GeofencingResponse(val id: String, val accessCode: String, val nickname: String?)
interface GeoFenceService {
/**
* Return a list of [GeofencingResponse] awaiting for collection by given dpid
*/
@GET("geofencing/v1/articles/{dpid}")
fun getGeoFenceArticles(@Path("dpid") dpid: String): Single<List<GeofencingResponse>>
}
fun getOnboardingInfoAndSmartMessage() {
viewModelScope.launch {
try {
withTimeout(2500) {
onBoardingData.loadWith(this) {
onBoardDispatchManager.getOnboardingInfoAndSmartMessage()
}
}
} catch (error: TimeoutCancellationException) {
onBoardingData.postError(error)
private fun loadAppConfig() {
appConfigManager.getAppConfig(pushNotificationManager.deviceId)
.prodTimeout(2500, TimeUnit.MILLISECONDS)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.`as`(AutoDispose.autoDisposable(AndroidLifecycleScopeProvider.from(lifecycle, Lifecycle.Event.ON_DESTROY)))
.subscribe({ appConfig -> processAppConfig(appConfig) },
{ throwable -> Timber.e(throwable) })
}
fun <T> Observable<T>.prodTimeout(timeout: Long, timeUnit: TimeUnit): Observable<T> {
return if (BuildConfig.BUILD_TYPE == "debug" || timeout == 0L) {
this
} else {
this.timeout(timeout, timeUnit)
}
}
class JsonParser {
val json = Json { ignoreUnknownKeys = true; isLenient = true; }
}