Skip to content

Instantly share code, notes, and snippets.

View ragdroid's full-sized avatar
🤪

Garima Jain ragdroid

🤪
View GitHub Profile
@ragdroid
ragdroid / IfElse.kt
Created March 2, 2019 14:00
Simplified if-else
infix fun <T>Boolean.then(action : () -> T): T? {
return if (this)
action.invoke()
else null
}
infix fun <T>T?.elze(action: () -> T): T {
return if (this == null)
action.invoke()
@ragdroid
ragdroid / DataStore.kt
Created February 21, 2018 08:29
Cache Interface to talk to the whole app
interface DataStore<T> {
fun modelListObservable(): Maybe<List<T>>
fun modelObservable(id: String): Maybe<T>
fun putModels(vararg models: T)
fun clear()
@Mock MainView mainViewMock;
@Mock PokeDataSource pokeDataSource;
@Test
public void testOnViewAdded() {
reset(mainViewMock);
MainPresenterImpl presenter = new MainPresenterImpl(
schedulersProvider, pokeDataSource);
@Mock MainView mainViewMock;
@Mock PokeDataSource pokeDataSource;
@Mock HttpException httpException;
@Test
public void testDemoResponseError404() {
reset(mainViewMock);
MainPresenterImpl presenter = new MainPresenterImpl(schedulersProvider, pokeDataSource);
@ragdroid
ragdroid / PokeDataSourceTest.java
Last active March 10, 2017 19:20
Testing DataSource with Mockito
@Inject PokeService pokemonService;
@Test
public void testGetPokemonAbilityStringObservable() {
PokeDataSource dataSource = new PokeDataSource(pokemonService);
TestObserver observer = new TestObserver();
dataSource.getPokemonAbilityStringObservable("12")
.subscribe(observer);
observer.assertNoErrors();
@ragdroid
ragdroid / MockitoError.java
Last active March 10, 2017 18:21
How to be a MockStar - Issue Errors
if (throwable instanceof HttpException) {
if (((HttpException) throwable).code() ==
HttpURLConnection.HTTP_NOT_FOUND) {
if (getView() != null) {
getView().showErrorDialog("Lost!");
}
} else if (((HttpException) throwable).code() ==
HttpURLConnection.HTTP_UNAVAILABLE) {
if (getView() != null) {
@ragdroid
ragdroid / Pokemon.java
Last active March 10, 2017 18:18
How to be Mockstar - Problem
pokeSource.getPokemonAbilityStringObservable("12")
.subscribeOn(provider.io())
.observeOn(provider.ui())
.subscribe(new Consumer<Pokemon>() {
@Override
public void accept(@NonNull String pokemonAbility) throws Exception {
if (getView() != null) {
getView().setApiText(pokemonAbility);
}
public Observable<String> getPokemonAbilityStringObservable(String id) {
return pokemonService.getPokemon(id)
.map(new Function<Pokemon, String>() {
@Override
public String apply(@NonNull Pokemon pokemon) throws Exception {
return constructAbility(pokemon);
}
});
}
@ragdroid
ragdroid / SocketIOTest.java
Created March 5, 2017 22:40
Use MockWebServer to test your app under SocketIO fail.
@Test
public void testDemoResponseErrorSocket() {
reset(mainSceneMock);
MainPresenterImpl presenter = new MainPresenterImpl(schedulersProvider, pokemonService);
MockResponse response = new MockResponse();
response.setBody("\"message\":\"Hello\"").throttleBody(1, 2, TimeUnit.SECONDS);
@ragdroid
ragdroid / TestHttpUnavailable.java
Created March 5, 2017 22:32
Use MockWebserver to test error cases
@Test
public void testDemoResponseError503() {
reset(mainSceneMock);
MainPresenterImpl presenter = new MainPresenterImpl(schedulersProvider, pokemonService);
MockResponse response = new MockResponse();
response.setResponseCode(HttpURLConnection.HTTP_UNAVAILABLE);
getErrorMockWebServer().enqueue(response);