@Override
 public Iterator<List<String>> getGeneratorImpl(GeneratorFactory generatorFactory) {
   Tuple2<Double, String> p1 = Tuple.tuple2(1.0, "1");
   Tuple2<Double, String> p2 = Tuple.tuple2(1.0, "2");
   Tuple2<Double, String> p3 = Tuple.tuple2(1.0, "3");
   ArrayList<Tuple2<Double, String>> items = new ArrayList<Tuple2<Double, String>>();
   items.add(p1);
   items.add(p2);
   items.add(p3);
   Iterator<Integer> amountToRetrieveGenerator = generatorFactory.uniform(0, 3);
   Iterator<List<String>> generator =
       generatorFactory.weightedDiscreteList(items, amountToRetrieveGenerator);
   return generator;
 }
  @Test(expected = GeneratorException.class)
  public void emptyConstructorTest() {
    // Given
    GeneratorFactory generatorFactory = new GeneratorFactory(new RandomDataGeneratorFactory());
    Iterator<Integer> amountToRetrieveGenerator = generatorFactory.uniform(0, 3);
    ArrayList<Tuple2<Double, String>> emptyItems = new ArrayList<Tuple2<Double, String>>();
    Iterator<List<String>> generator =
        generatorFactory.weightedDiscreteList(emptyItems, amountToRetrieveGenerator);

    // When
    generator.next();

    // Then
    assertEquals("Empty DiscreteGenerator should throw exception on next()", false, true);
  }