package org.wikipedia.page; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.wikipedia.dataclient.WikiSite; import org.wikipedia.test.TestRunner; import java.util.Locale; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.nullValue; import static org.wikipedia.page.Namespace.FILE; import static org.wikipedia.page.Namespace.MAIN; import static org.wikipedia.page.Namespace.MEDIA; import static org.wikipedia.page.Namespace.SPECIAL; import static org.wikipedia.page.Namespace.TALK; @RunWith(TestRunner.class) public class NamespaceTest { private static Locale PREV_DEFAULT_LOCALE; @BeforeClass public static void setUp() { PREV_DEFAULT_LOCALE = Locale.getDefault(); Locale.setDefault(Locale.ENGLISH); } @AfterClass public static void tearDown() { Locale.setDefault(PREV_DEFAULT_LOCALE); } @Test public void testOf() { assertThat(Namespace.of(SPECIAL.code()), is(SPECIAL)); } @Test public void testFromLegacyStringMain() { //noinspection deprecation assertThat(Namespace.fromLegacyString(WikiSite.forLanguageCode("test"), null), is(MAIN)); } @Test public void testFromLegacyStringFile() { //noinspection deprecation assertThat(Namespace.fromLegacyString(WikiSite.forLanguageCode("he"), "קובץ"), is(FILE)); } @Test public void testFromLegacyStringSpecial() { //noinspection deprecation assertThat(Namespace.fromLegacyString(WikiSite.forLanguageCode("lez"), "Служебная"), is(SPECIAL)); } @Test public void testFromLegacyStringTalk() { //noinspection deprecation assertThat(Namespace.fromLegacyString(WikiSite.forLanguageCode("en"), "stringTalk"), is(TALK)); } @Test public void testCode() { assertThat(MAIN.code(), is(0)); assertThat(TALK.code(), is(1)); } @Test public void testSpecial() { assertThat(SPECIAL.special(), is(true)); assertThat(MAIN.special(), is(false)); } @Test public void testMain() { assertThat(MAIN.main(), is(true)); assertThat(TALK.main(), is(false)); } @Test public void testFile() { assertThat(FILE.file(), is(true)); assertThat(MAIN.file(), is(false)); } @Test public void testTalkNegative() { assertThat(MEDIA.talk(), is(false)); assertThat(SPECIAL.talk(), is(false)); } @Test public void testTalkZero() { assertThat(MAIN.talk(), is(false)); } @Test public void testTalkOdd() { assertThat(TALK.talk(), is(true)); } @Test public void testToLegacyStringMain() { //noinspection deprecation assertThat(MAIN.toLegacyString(), nullValue()); } @Test public void testToLegacyStringNonMain() { //noinspection deprecation assertThat(TALK.toLegacyString(), is("Talk")); } }