Skip to content
Snippets Groups Projects
Commit 72956238 authored by Tamás Szabó's avatar Tamás Szabó
Browse files

favorites test

parent 1a72bc93
No related branches found
No related tags found
2 merge requests!12finished labor 6,!11implement mock
......@@ -20,6 +20,14 @@ public class MockDAO implements ComicsDAO {
setTitle("Title");
setYear("2000");
}});
comicStrip.add(new ComicStrip(){{
setImg("https://cataas.com/cat");
setDay("1");
setMonth("1");
setNum(9L);
setTitle("Tittle");
setYear("1999");
}});
}
@Override
......
package me.szaki.xkcd.xkcdbrowser.test;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import me.szaki.xkcd.xkcdbrowser.BuildConfig;
import me.szaki.xkcd.xkcdbrowser.TestHelper;
import me.szaki.xkcd.xkcdbrowser.model.ComicStrip;
import me.szaki.xkcd.xkcdbrowser.network.model.Comic;
import me.szaki.xkcd.xkcdbrowser.ui.favorites.FavoritesPresenter;
import me.szaki.xkcd.xkcdbrowser.ui.favorites.FavoritesScreen;
import me.szaki.xkcd.xkcdbrowser.ui.main.MainPresenter;
import me.szaki.xkcd.xkcdbrowser.ui.main.MainScreen;
import static junit.framework.Assert.assertEquals;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.verify;
@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class)
public class FavoritesTest {
private FavoritesPresenter favoritesPresenter;
private FavoritesScreen favoritesScreen;
private CountDownLatch latch;
@Before
public void Setup() {
TestHelper.setTestInjector();
favoritesScreen = mock(FavoritesScreen.class);
favoritesPresenter = new FavoritesPresenter();
favoritesPresenter.attachScreen(favoritesScreen);
latch = new CountDownLatch(1);
}
@Test
public void getData () throws InterruptedException {
favoritesPresenter.getData();
latch.await(200, TimeUnit.MILLISECONDS);
ArgumentCaptor<List> comiCaptor = ArgumentCaptor.forClass(List.class);
verify(favoritesScreen).dataReceived(comiCaptor.capture());
assertEquals(2, comiCaptor.getValue().size());
List<ComicStrip> list = comiCaptor.getValue();
assertEquals(10L, (long) list.get(0).getNum());
assertEquals("4", list.get(0).getDay());
assertEquals("4", list.get(0).getMonth());
assertEquals("2000", list.get(0).getYear());
assertEquals("Title", list.get(0).getTitle());
assertEquals("https://cataas.com/c", list.get(0).getImg());
assertEquals(9L, (long) list.get(1).getNum());
assertEquals("1", list.get(1).getDay());
assertEquals("1", list.get(1).getMonth());
assertEquals("1999", list.get(1).getYear());
assertEquals("Tittle", list.get(1).getTitle());
assertEquals("https://cataas.com/cat", list.get(1).getImg());
}
@Test
public void deleteData() throws InterruptedException {
favoritesPresenter.getData();
latch.await(200, TimeUnit.MILLISECONDS);
ArgumentCaptor<List> comiCaptor = ArgumentCaptor.forClass(List.class);
verify(favoritesScreen).dataReceived(comiCaptor.capture());
reset(favoritesScreen);
favoritesPresenter.deleteData((ComicStrip) comiCaptor.getValue().get(0));
latch.await(200, TimeUnit.MILLISECONDS);
verify(favoritesScreen).deleteSucess();
favoritesPresenter.getData();
latch.await(200, TimeUnit.MILLISECONDS);
comiCaptor = ArgumentCaptor.forClass(List.class);
verify(favoritesScreen).dataReceived(comiCaptor.capture());
assertEquals(1, comiCaptor.getValue().size());
List<ComicStrip> list = comiCaptor.getValue();
assertEquals(9L, (long) list.get(0).getNum());
assertEquals("1", list.get(0).getDay());
assertEquals("1", list.get(0).getMonth());
assertEquals("1999", list.get(0).getYear());
assertEquals("Tittle", list.get(0).getTitle());
assertEquals("https://cataas.com/cat", list.get(0).getImg());
}
@After
public void Teardown() {
favoritesPresenter.detachScreen();
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment