diff --git a/.travis.yml b/.travis.yml index 7f4a898138b8015f0cbcbe071cf38b721f9d1a20..dccc6e6d6f4fa863ea00d1946653cf52d068d29a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,7 +12,7 @@ android: - extra-google-googleplayservices - extra-google-m2repository - extra-android-m2repository - - addon-google_apis-google-27 + - addon-google_apis-google-22 - sys-img-armeabi-v7a-android-22 env: global: diff --git a/app/src/test/java/me/szaki/xkcd/xkcdbrowser/mock/api/MockAPI.java b/app/src/test/java/me/szaki/xkcd/xkcdbrowser/mock/api/MockAPI.java index fdae20c7426760ff9b9e575c0260cd41ad1feba2..fb248a3a3848d1a4c5990df39205c47f6a2a4d8d 100644 --- a/app/src/test/java/me/szaki/xkcd/xkcdbrowser/mock/api/MockAPI.java +++ b/app/src/test/java/me/szaki/xkcd/xkcdbrowser/mock/api/MockAPI.java @@ -17,7 +17,7 @@ public class MockAPI implements ComicApi { setImg("https://cataas.com/c"); setDay("4"); setMonth("4"); - setNum(10); + setNum(2); setTitle("Title"); setYear("2000"); }}; @@ -60,22 +60,22 @@ public class MockAPI implements ComicApi { @Override public Call<Comic> getComic(Long id) { Comic comic = null; - if (10L == id) { + if (2L == id) { comic = new Comic() {{ setImg("https://cataas.com/c"); setDay("4"); setMonth("4"); - setNum(10); + setNum(2); setTitle("Title"); setYear("2000"); }}; - } else if (9L == id) { + } else if (1L == id) { comic = new Comic() {{ setImg("https://cataas.com/cat"); setDay("1"); setMonth("1"); - setNum(9); + setNum(1); setTitle("Tittle"); setYear("1999"); }}; diff --git a/app/src/test/java/me/szaki/xkcd/xkcdbrowser/mock/db/MockDAO.java b/app/src/test/java/me/szaki/xkcd/xkcdbrowser/mock/db/MockDAO.java index 3455de785905e561b973afac2db64f929b8b7e4d..b534777f670b23c0f8eb9ed9d37e073cd4ccf1e1 100644 --- a/app/src/test/java/me/szaki/xkcd/xkcdbrowser/mock/db/MockDAO.java +++ b/app/src/test/java/me/szaki/xkcd/xkcdbrowser/mock/db/MockDAO.java @@ -16,7 +16,7 @@ public class MockDAO implements ComicsDAO { setImg("https://cataas.com/c"); setDay("4"); setMonth("4"); - setNum(10L); + setNum(2L); setTitle("Title"); setYear("2000"); }}); @@ -24,7 +24,7 @@ public class MockDAO implements ComicsDAO { setImg("https://cataas.com/cat"); setDay("1"); setMonth("1"); - setNum(9L); + setNum(1L); setTitle("Tittle"); setYear("1999"); }}); diff --git a/app/src/test/java/me/szaki/xkcd/xkcdbrowser/test/DetailTest.java b/app/src/test/java/me/szaki/xkcd/xkcdbrowser/test/DetailTest.java new file mode 100644 index 0000000000000000000000000000000000000000..67c6e66bce339ecb7e5a11e523cf38f382506306 --- /dev/null +++ b/app/src/test/java/me/szaki/xkcd/xkcdbrowser/test/DetailTest.java @@ -0,0 +1,64 @@ +package me.szaki.xkcd.xkcdbrowser.test; + +import org.junit.After; +import org.junit.Before; +import org.junit.Ignore; +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.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.detail.DetailPresenter; +import me.szaki.xkcd.xkcdbrowser.ui.detail.DetailScreen; +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.verify; + +@RunWith(RobolectricTestRunner.class) +@Config(constants = BuildConfig.class) +public class DetailTest { + private DetailPresenter detailPresenter; + private DetailScreen detailScreen; + private CountDownLatch latch; + + @Before + public void Setup() { + TestHelper.setTestInjector(); + detailScreen = mock(DetailScreen.class); + detailPresenter = new DetailPresenter(); + detailPresenter.attachScreen(detailScreen); + latch = new CountDownLatch(1); + } + + @Test + public void getComicByNum() throws InterruptedException { + detailPresenter.getComicByNum(2L); + latch.await(200, TimeUnit.MILLISECONDS); + + ArgumentCaptor<ComicStrip> comiCaptor = ArgumentCaptor.forClass(ComicStrip.class); + verify(detailScreen).dataReceived(comiCaptor.capture()); + + assertEquals(2L, (long) comiCaptor.getValue().getNum()); + assertEquals("4", comiCaptor.getValue().getDay()); + assertEquals("4", comiCaptor.getValue().getMonth()); + assertEquals("2000", comiCaptor.getValue().getYear()); + assertEquals("Title", comiCaptor.getValue().getTitle()); + assertEquals("https://cataas.com/c", comiCaptor.getValue().getImg()); + } + + @After + public void Teardown() { + detailPresenter.detachScreen(); + } +} diff --git a/app/src/test/java/me/szaki/xkcd/xkcdbrowser/test/FavoritesTest.java b/app/src/test/java/me/szaki/xkcd/xkcdbrowser/test/FavoritesTest.java index ea37d49290e20d73474f687e14fdeee2565badfe..052af4234fba9d6dfa53eaa9f9400e59d25929be 100644 --- a/app/src/test/java/me/szaki/xkcd/xkcdbrowser/test/FavoritesTest.java +++ b/app/src/test/java/me/szaki/xkcd/xkcdbrowser/test/FavoritesTest.java @@ -55,14 +55,14 @@ public class FavoritesTest { List<ComicStrip> list = comiCaptor.getValue(); - assertEquals(10L, (long) list.get(0).getNum()); + assertEquals(2L, (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(1L, (long) list.get(1).getNum()); assertEquals("1", list.get(1).getDay()); assertEquals("1", list.get(1).getMonth()); assertEquals("1999", list.get(1).getYear()); @@ -96,7 +96,7 @@ public class FavoritesTest { List<ComicStrip> list = comiCaptor.getValue(); - assertEquals(9L, (long) list.get(0).getNum()); + assertEquals(1L, (long) list.get(0).getNum()); assertEquals("1", list.get(0).getDay()); assertEquals("1", list.get(0).getMonth()); assertEquals("1999", list.get(0).getYear()); diff --git a/app/src/test/java/me/szaki/xkcd/xkcdbrowser/test/MainTest.java b/app/src/test/java/me/szaki/xkcd/xkcdbrowser/test/MainTest.java index 759597ea923381ffa95bdf507ede229f9ed470c7..583faa8ac9df1d1355a9611aab2f6d2647e452c1 100644 --- a/app/src/test/java/me/szaki/xkcd/xkcdbrowser/test/MainTest.java +++ b/app/src/test/java/me/szaki/xkcd/xkcdbrowser/test/MainTest.java @@ -18,6 +18,7 @@ import me.szaki.xkcd.xkcdbrowser.network.model.Comic; import me.szaki.xkcd.xkcdbrowser.ui.main.MainPresenter; import me.szaki.xkcd.xkcdbrowser.ui.main.MainScreen; +import static junit.framework.Assert.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.verify; @@ -48,12 +49,14 @@ public class MainTest { ArgumentCaptor<Comic> comiCaptor = ArgumentCaptor.forClass(Comic.class); verify(mainScreen).getImage(comiCaptor.capture()); - assertEquals(10, (int) comiCaptor.getValue().getNum()); + assertEquals(2, (int) comiCaptor.getValue().getNum()); assertEquals("4", comiCaptor.getValue().getDay()); assertEquals("4", comiCaptor.getValue().getMonth()); assertEquals("2000", comiCaptor.getValue().getYear()); assertEquals("Title", comiCaptor.getValue().getTitle()); assertEquals("https://cataas.com/c", comiCaptor.getValue().getImg()); + + verify(mainScreen).setFavorite(true); } @Test @@ -69,16 +72,45 @@ public class MainTest { ArgumentCaptor<Comic> comiCaptor = ArgumentCaptor.forClass(Comic.class); verify(mainScreen).getImage(comiCaptor.capture()); - assertEquals(9, (int) comiCaptor.getValue().getNum()); + assertEquals(1, (int) comiCaptor.getValue().getNum()); assertEquals("1", comiCaptor.getValue().getDay()); assertEquals("1", comiCaptor.getValue().getMonth()); assertEquals("1999", comiCaptor.getValue().getYear()); assertEquals("Tittle", comiCaptor.getValue().getTitle()); assertEquals("https://cataas.com/cat", comiCaptor.getValue().getImg()); + + verify(mainScreen).setFavorite(true); } @Test - public void getRandom() { + public void getRandom() throws InterruptedException { + mainPresenter.getCurrent(); + latch.await(200, TimeUnit.MILLISECONDS); + reset(mainScreen); + + mainPresenter.getRandom(); + + latch.await(200, TimeUnit.MILLISECONDS); + ArgumentCaptor<Comic> comiCaptor = ArgumentCaptor.forClass(Comic.class); + verify(mainScreen).getImage(comiCaptor.capture()); + + if (comiCaptor.getValue().getNum() == 1L) { + assertEquals(1, (int) comiCaptor.getValue().getNum()); + assertEquals("1", comiCaptor.getValue().getDay()); + assertEquals("1", comiCaptor.getValue().getMonth()); + assertEquals("1999", comiCaptor.getValue().getYear()); + assertEquals("Tittle", comiCaptor.getValue().getTitle()); + assertEquals("https://cataas.com/cat", comiCaptor.getValue().getImg()); + } else if (comiCaptor.getValue().getNum() == 2L) { + assertEquals(2, (int) comiCaptor.getValue().getNum()); + assertEquals("4", comiCaptor.getValue().getDay()); + assertEquals("4", comiCaptor.getValue().getMonth()); + assertEquals("2000", comiCaptor.getValue().getYear()); + assertEquals("Title", comiCaptor.getValue().getTitle()); + assertEquals("https://cataas.com/c", comiCaptor.getValue().getImg()); + } else { + assertTrue(false); + } } @@ -98,12 +130,14 @@ public class MainTest { ArgumentCaptor<Comic> comiCaptor = ArgumentCaptor.forClass(Comic.class); verify(mainScreen).getImage(comiCaptor.capture()); - assertEquals(10, (int) comiCaptor.getValue().getNum()); + assertEquals(2, (int) comiCaptor.getValue().getNum()); assertEquals("4", comiCaptor.getValue().getDay()); assertEquals("4", comiCaptor.getValue().getMonth()); assertEquals("2000", comiCaptor.getValue().getYear()); assertEquals("Title", comiCaptor.getValue().getTitle()); assertEquals("https://cataas.com/c", comiCaptor.getValue().getImg()); + + verify(mainScreen).setFavorite(true); } @Test