package com.github.donkirkby.vograbulary.russian;
import java.util.Arrays;
import java.util.List;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameter;
import org.junit.runners.Parameterized.Parameters;
@RunWith(Parameterized.class)
public class PuzzleTargetIndexTest {
@Parameter
public int targetWord;
@Parameter(value=1)
public int targetCharacter;
@Parameter(value=2)
public String expectedErrorMessage;
@Parameters(name="{0}, {1} expects {2}")
public static List<Object[]> getParameters() {
return Arrays.asList(new Object[][] {
{-1, 1, "Target word index -1 is invalid." },
{ 0, 1, null },
{ 1, 1, null },
{ 2, 1, "Target word index 2 is invalid." },
{ 0, 0, "Target character index 0 is invalid." },
{ 0, 5, null },
{ 0, 6, "Target character index 6 is invalid." },
{ 1, 6, null },
{ 1, 7, "Target character index 7 is invalid." }
});
}
@Rule
public ExpectedException thrown = ExpectedException.none();
@Test
public void setTargets() {
Puzzle puzzle = new Puzzle("unable comfort");
if (expectedErrorMessage != null) {
thrown.expect(ArrayIndexOutOfBoundsException.class);
thrown.expectMessage(expectedErrorMessage);
}
puzzle.setTargetWord(targetWord);
puzzle.setTargetCharacter(targetCharacter);
}
}