package org.wikipedia.media;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.wikipedia.test.TestRunner;
import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertThat;
@RunWith(TestRunner.class)
public class StateTest {
private static final String PATH_A = "http://pathA";
private static final String PATH_B = "http://pathB";
private State subject;
@Before
public void setUp() {
subject = new State();
}
@Test
public void testGetPathConstructor() {
assertThat(subject.getPath(), is((String) null));
}
@Test
public void testGetPathDeinit() {
subject.setLoading(PATH_A);
subject.setDeinit();
assertPath(PATH_A);
}
@Test
public void testGetPathInit() {
subject.setLoading(PATH_A);
subject.setInit();
assertPath(PATH_A);
}
@Test
public void testGetPathLoaded() {
subject.setLoading(PATH_A);
subject.setLoaded();
assertPath(PATH_A);
}
@Test
public void testIsDeinitConstructor() {
assertDeinit(true);
}
@Test
public void testIsDeinitInit() {
subject.setInit();
assertDeinit(false);
}
@Test
public void testSetDeinitInit() {
subject.setInit();
subject.setDeinit();
assertDeinit(true);
}
@Test
public void testIsInitConstructor() {
assertInit(false);
}
@Test
public void testIsInitDeinit() {
subject.setDeinit();
assertInit(false);
}
@Test
public void testIsInitInit() {
subject.setInit();
assertInit(true);
}
@Test
public void testIsInitLoading() {
subject.setLoading(PATH_A);
assertInit(true);
}
@Test
public void testIsInitLoaded() {
subject.setLoaded();
assertInit(true);
}
@Test
public void testSetInitDeinit() {
subject.setDeinit();
subject.setInit();
assertInit(true);
}
@Test
public void testIsLoadingConstructor() {
assertThat(subject.isLoading(), is(false));
}
@Test
public void testIsLoadingLoading() {
subject.setLoading(PATH_A);
assertThat(subject.isLoading(), is(true));
}
@Test
public void testIsLoadingLoaded() {
subject.setLoading(PATH_A);
subject.setLoaded();
assertThat(subject.isLoading(), is(false));
}
@Test
public void testIsLoadingLoadAgain() {
subject.setLoading(PATH_A);
subject.setLoaded();
subject.setLoading(PATH_B);
assertThat(subject.isLoading(), is(true));
}
@Test
public void testIsLoadingPathConstructor() {
assertThat(subject.isLoading(PATH_A), is(false));
}
@Test
public void testIsLoadingPathLoading() {
subject.setLoading(PATH_A);
assertThat(subject.isLoading(PATH_A), is(true));
}
@Test
public void testIsLoadingPathLoaded() {
subject.setLoading(PATH_A);
subject.setLoaded();
assertThat(subject.isLoading(PATH_A), is(false));
}
@Test
public void testIsLoadingPathLoadAgain() {
subject.setLoading(PATH_A);
subject.setLoaded();
subject.setLoading(PATH_B);
assertThat(subject.isLoading(PATH_B), is(true));
}
@Test
public void testIsLoadingPathLoadAgainPreviousPath() {
subject.setLoading(PATH_A);
subject.setLoading(PATH_B);
assertThat(subject.isLoading(PATH_A), is(false));
}
@Test
public void testSetLoadingInit() {
subject.setInit();
subject.setLoading(PATH_A);
assertThat(subject.isLoading(), is(true));
}
@Test
public void testIsLoadedConstructor() {
assertLoaded(false);
}
@Test
public void testIsLoadedLoading() {
subject.setLoading(PATH_A);
assertLoaded(false);
}
@Test
public void testIsLoadedLoaded() {
subject.setLoading(PATH_A);
subject.setLoaded();
assertLoaded(true);
}
@Test
public void testIsLoadedPathConstructor() {
assertLoaded(PATH_A, false);
}
@Test
public void testIsLoadedPathLoading() {
subject.setLoading(PATH_A);
assertLoaded(PATH_A, false);
}
@Test
public void testIsLoadedPathLoaded() {
subject.setLoading(PATH_A);
subject.setLoaded();
assertLoaded(PATH_A, true);
}
@Test
public void testIsLoadedPathLoadAgain() {
subject.setLoading(PATH_A);
subject.setLoading(PATH_B);
subject.setLoaded();
assertLoaded(PATH_B, true);
}
@Test
public void testIsLoadedPathLoadAgainPreviousPath() {
subject.setLoading(PATH_A);
subject.setLoading(PATH_B);
subject.setLoaded();
assertLoaded(PATH_A, false);
}
@Test
public void testSetLoadedInit() {
subject.setInit();
subject.setLoaded();
assertLoaded(true);
}
@Test
public void testIsStoppedConstructor() {
assertStopped(true);
}
@Test
public void testIsStoppedPaused() {
subject.setPaused();
assertStopped(false);
}
@Test
public void testIsStoppedDeinit() {
subject.setPlaying();
subject.setDeinit();
assertStopped(true);
}
@Test
public void testSetStopped() {
subject.setPlaying();
subject.setStopped();
assertStopped(true);
}
@Test
public void testIsPlayingConstructor() {
assertPlaying(false);
}
@Test
public void testIsPlayingPaused() {
subject.setPaused();
assertPlaying(false);
}
@Test
public void testIsPlayingDeinit() {
subject.setPlaying();
subject.setDeinit();
assertPlaying(false);
}
@Test
public void testSetPlaying() {
subject.setPlaying();
assertPlaying(true);
}
@Test
public void testIsPausedConstructor() {
assertPaused(false);
}
@Test
public void testIsPausedStopped() {
subject.setStopped();
assertPaused(false);
}
@Test
public void testIsPausedDeinit() {
subject.setPaused();
subject.setDeinit();
assertPaused(false);
}
@Test
public void testSetPaused() {
subject.setPaused();
assertPaused(true);
}
private void assertInit(boolean init) {
assertThat(subject.isInit(), is(init));
}
private void assertLoaded(boolean loaded) {
assertThat(subject.isLoaded(), is(loaded));
}
private void assertLoaded(String path, boolean loaded) {
assertThat(subject.isLoaded(path), is(loaded));
}
private void assertStopped(boolean stopped) {
assertThat(subject.isStopped(), is(stopped));
}
private void assertPlaying(boolean playing) {
assertThat(subject.isPlaying(), is(playing));
}
private void assertPaused(boolean paused) {
assertThat(subject.isPaused(), is(paused));
}
private void assertPath(String path) {
assertThat(subject.getPath(), is(path));
}
private void assertDeinit(boolean deinit) {
assertThat(subject.isDeinit(), is(deinit));
}
}