### Question:
AlternativeProvider implements Iterator<Alternative> { @Override public boolean hasNext() { return !this.mediaTypes.isExhausted() && hasMoreVariants(); } AlternativeProvider(List<MediaType> mediaTypes, List<CharacterEncoding> characterEncodings, List<Language> languages); @Override boolean hasNext(); @Override ImmutableAlternative next(); @Override void remove();  }### Answer:
@Test public void cannotIterateOverEmptyComponents() throws Exception { AlternativeProvider sut= new AlternativeProvider( Lists.<MediaType>newArrayList(), Lists.<CharacterEncoding>newArrayList(), Lists.<Language>newArrayList()); assertThat(sut.hasNext(),equalTo(false)); }