package net.bible.android.view.activity.page;
import org.junit.Before;
import org.junit.Test;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsInAnyOrder;
import static org.hamcrest.core.IsEqual.equalTo;
/**
* @author Martin Denham [mjdenham at gmail dot com]
* @see gnu.lgpl.License for license details.<br>
* The copyright to this program is held by it's author.
*/
public class VerseNoRangeTest {
private VerseNoRange verseNoRange;
@Before
public void setup() {
}
@Test
public void testClone() throws Exception {
VerseNoRange verseNoRange = new VerseNoRange(4,7);
VerseNoRange clone = verseNoRange.clone();
assertThat(clone, equalTo(verseNoRange));
}
@Test
public void testExpandDown() throws Exception {
verseNoRange = new VerseNoRange(7);
verseNoRange.alter(10);
assertThat(verseNoRange.getStartVerseNo(), equalTo(7));
assertThat(verseNoRange.getEndVerseNo(), equalTo(10));
}
@Test
public void testExpandUp() throws Exception {
verseNoRange = new VerseNoRange(7);
verseNoRange.alter(3);
assertThat(verseNoRange.getStartVerseNo(), equalTo(3));
assertThat(verseNoRange.getEndVerseNo(), equalTo(7));
}
@Test
public void testReduceUp() throws Exception {
verseNoRange = new VerseNoRange(3, 7);
verseNoRange.alter(6);
assertThat(verseNoRange.getStartVerseNo(), equalTo(3));
assertThat(verseNoRange.getEndVerseNo(), equalTo(5));
}
@Test
public void testReduceDown() throws Exception {
verseNoRange = new VerseNoRange(3, 7);
verseNoRange.alter(3);
assertThat(verseNoRange.getStartVerseNo(), equalTo(4));
assertThat(verseNoRange.getEndVerseNo(), equalTo(7));
}
@Test
public void testReduceToZero() throws Exception {
verseNoRange = new VerseNoRange(3, 3);
verseNoRange.alter(3);
assertThat(verseNoRange.isEmpty(), equalTo(true));
assertThat(verseNoRange.getStartVerseNo(), equalTo(-1));
assertThat(verseNoRange.getEndVerseNo(), equalTo(-1));
}
@Test
public void testGetExtras() {
verseNoRange = new VerseNoRange(3, 7);
VerseNoRange other = new VerseNoRange(6, 8);
assertThat(verseNoRange.getExtrasIn(other), containsInAnyOrder(8));
assertThat(other.getExtrasIn(verseNoRange), containsInAnyOrder(3,4,5));
}
}