package org.wikipedia.feed.mostread; import android.support.annotation.NonNull; import org.junit.Test; import org.junit.runner.RunWith; import org.wikipedia.json.GsonUnmarshaller; import org.wikipedia.test.TestFileUtil; import org.wikipedia.test.TestRunner; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; import java.util.TimeZone; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.notNullValue; @RunWith(TestRunner.class) @SuppressWarnings("checkstyle:magicnumber") public class MostReadArticlesTest { @NonNull public static MostReadArticles unmarshal(@NonNull String filename) throws Throwable { String json = TestFileUtil.readRawFile(filename); return GsonUnmarshaller.unmarshal(MostReadArticles.class, json); } @Test public void testUnmarshalManyArticles() throws Throwable { MostReadArticles subject = unmarshal("most_read.json"); assertThat(subject.date(), is(date("2016-06-01Z"))); assertThat(subject.articles(), notNullValue()); assertThat(subject.articles().size(), is(40)); } @NonNull private Date date(@NonNull String str) throws Throwable { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'Z'", Locale.ROOT); format.setTimeZone(TimeZone.getTimeZone("UTC")); return format.parse(str); } }