package org.magenta.generators; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import java.util.ArrayList; import org.junit.Test; import org.magenta.Fixture; import org.magenta.DataKey; import org.magenta.DataSpecification; import com.google.common.base.Supplier; public class SupplierBasedSimpleGenerationStrategyTest { @Test public void testGeneratePreferredNumberOfItems(){ //setup fixtures int CONFIGURED_NUMBER_OF_ITEMS = 10; DataKey<String> key = DataKey.makeDefault(String.class); Fixture<DataSpecification> dataDomain=mock(Fixture.class); when(dataDomain.sizeOf(key)).thenReturn(CONFIGURED_NUMBER_OF_ITEMS); String[] expected = new String[]{"1","2","3","4","5","6","7","8","9","10"}; Supplier<String> stringSupplier=mock(Supplier.class); when(stringSupplier.get()).thenReturn(expected[0],expected[1],expected[2],expected[3],expected[4],expected[5],expected[6],expected[7],expected[8],expected[9]); SupplierGenerationStrategyAdapter<String, DataSpecification> sut=new SupplierGenerationStrategyAdapter<>(key, stringSupplier, new ArrayList<DataKey<?>>()); //exercise sut Iterable<String> actual = sut.generate(dataDomain); //verify outcome assertThat(actual).containsOnly(expected); } }