package me.corriekay.pokegoutil.data.models.operations;
import static org.hamcrest.CoreMatchers.is;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import com.sun.javafx.collections.ObservableListWrapper;
import me.corriekay.pokegoutil.data.models.PokemonModel;
import me.corriekay.pokegoutil.gui.enums.OperationId;
@RunWith(value = Parameterized.class)
public class OperationTest {
private final OperationId operationId;
private final ObservableListWrapper<PokemonModel> pokemonList;
@Parameters(name = "{index}: {0}")
public static Collection<OperationId> data() {
return Arrays.asList(OperationId.values());
}
/**
* Instantiate a OperationTest using the parameters from data().
*
* @param operationId operationId to test
*/
public OperationTest(final OperationId operationId) {
this.operationId = operationId;
// Create list with 1 null value for testing
final List<PokemonModel> list = new ArrayList<>();
list.add(null);
pokemonList = new ObservableListWrapper<>(list);
}
@Test
public void testGenerateOperations() {
final List<Operation> operations = Operation.generateOperations(operationId, pokemonList);
Assert.assertThat("Created correct operation", operations.get(0).getOperationId(), is(operationId));
}
}