package ngenes2.ops.crossover; import java.util.ArrayList; import java.util.List; import ngenes2.individual.Individual; import org.junit.Test; import static org.mockito.Mockito.*; public class CrossoverTest { @Test public void testMate() { Individual<Integer, ? extends Individual<Integer, ?>> individual = mock(Individual.class); when(individual.chromosome()).thenReturn(new ArrayList(0)); final List<Integer> l1 = new ArrayList<Integer>(0); final List<Integer> l2 = new ArrayList<Integer>(0); final List<List<Integer>> result = new ArrayList<List<Integer>>(2); result.add(l1); result.add(l2); ChromosomeCrossover<Integer> chromeCO = mock(ChromosomeCrossover.class); when( chromeCO.mate(anyList(), anyList() ) ).thenReturn(result); Crossover co = new Crossover(chromeCO); co.mate(individual, individual); verify(individual, times(2)).makeSibling( anyList() ); verify(chromeCO).mate(anyList(), anyList()); } }