@Test void testEmptyIterator() { FirstItemIterable<?> firstItemIterable = new FirstItemIterable<>( Collections.emptyList() ); Iterator<?> empty = firstItemIterable.iterator(); assertFalse( empty.hasNext() ); try { empty.next(); fail( "Exception expected" ); } catch ( Exception e ) { assertThat( e, instanceOf( NoSuchElementException.class ) ); } assertNull( firstItemIterable.getFirst() ); }
@SuppressWarnings( "unchecked" ) static FirstItemIterable<Representation> convertValuesToRepresentations( Iterable data ) { return new FirstItemIterable<>( new IterableWrapper<Representation,Object>( data ) { @Override protected Representation underlyingObjectToObject( Object value ) { return convert( value ); } } ); }
static RepresentationType getType( FirstItemIterable<Representation> representations ) { Representation representation = representations.getFirst(); if ( representation == null ) { return RepresentationType.STRING; } return representation.getRepresentationType(); }
@SuppressWarnings( "unchecked" ) static Representation getIteratorRepresentation( Iterator data ) { final FirstItemIterable<Representation> results = new FirstItemIterable<>( new IteratorWrapper<Representation,Object>( data ) { @Override protected Representation underlyingObjectToObject( Object value ) { if ( value instanceof Iterable ) { FirstItemIterable<Representation> nested = convertValuesToRepresentations( (Iterable) value ); return new ListRepresentation( getType( nested ), nested ); } else { return getSingleRepresentation( value ); } } } ); return new ListRepresentation( getType( results ), results ); }
static RepresentationType getType( FirstItemIterable<Representation> representations ) { Representation representation = representations.getFirst(); if ( representation == null ) { return RepresentationType.STRING; } return representation.getRepresentationType(); }
@Test void testSingleIterator() { FirstItemIterable<Boolean> firstItemIterable = new FirstItemIterable<>( Collections.singleton( Boolean.TRUE ) ); Iterator<Boolean> empty = firstItemIterable.iterator(); assertTrue( empty.hasNext() ); assertEquals( Boolean.TRUE, empty.next() ); assertEquals( Boolean.TRUE, firstItemIterable.getFirst() ); assertFalse( empty.hasNext() ); try { empty.next(); fail( "Exception expected" ); } catch ( Exception e ) { assertThat( e, instanceOf( NoSuchElementException.class ) ); } assertEquals( Boolean.TRUE, firstItemIterable.getFirst() ); }
@SuppressWarnings( "unchecked" ) static FirstItemIterable<Representation> convertValuesToRepresentations( Iterable data ) { return new FirstItemIterable<>( new IterableWrapper<Representation,Object>( data ) { @Override protected Representation underlyingObjectToObject( Object value ) { return convert( value ); } } ); }
static RepresentationType getType( FirstItemIterable<Representation> representations ) { Representation representation = representations.getFirst(); if ( representation == null ) { return RepresentationType.STRING; } return representation.getRepresentationType(); }
@Test void testMultiIterator() { FirstItemIterable<Boolean> firstItemIterable = new FirstItemIterable<>( asList( Boolean.TRUE, Boolean.FALSE ) ); Iterator<Boolean> empty = firstItemIterable.iterator(); assertTrue( empty.hasNext() ); assertEquals( Boolean.TRUE, empty.next() ); assertEquals( Boolean.TRUE, firstItemIterable.getFirst() ); assertTrue( empty.hasNext() ); assertEquals( Boolean.FALSE, empty.next() ); assertEquals( Boolean.TRUE, firstItemIterable.getFirst() ); assertFalse( empty.hasNext() ); try { empty.next(); fail( "Exception expected" ); } catch ( Exception e ) { assertThat( e, instanceOf( NoSuchElementException.class ) ); } assertEquals( Boolean.TRUE, firstItemIterable.getFirst() ); } }
static FirstItemIterable<Representation> convertValuesToRepresentations( Iterable data ) { if ( data instanceof Table ) { return new FirstItemIterable<Representation>( Collections.<Representation>singleton( new GremlinTableRepresentation( (Table) data ) ) ); } return new FirstItemIterable<Representation>( new IterableWrapper<Representation, Object>( data ) { @Override protected Representation underlyingObjectToObject( Object value ) { return convert( value ); } } ); }
static Representation getIteratorRepresentation( Iterator data ) { final FirstItemIterable<Representation> results = new FirstItemIterable<Representation>( new IteratorWrapper<Representation, Object>( data ) { @Override protected Representation underlyingObjectToObject( Object value ) { if ( value instanceof Iterable ) { FirstItemIterable<Representation> nested = convertValuesToRepresentations( (Iterable) value ); return new ListRepresentation( getType( nested ), nested ); } else { return getSingleRepresentation( value ); } } } ); return new ListRepresentation( getType( results ), results ); }
@SuppressWarnings( "unchecked" ) static Representation getIteratorRepresentation( Iterator data ) { final FirstItemIterable<Representation> results = new FirstItemIterable<>( new IteratorWrapper<Representation,Object>( data ) { @Override protected Representation underlyingObjectToObject( Object value ) { if ( value instanceof Iterable ) { FirstItemIterable<Representation> nested = convertValuesToRepresentations( (Iterable) value ); return new ListRepresentation( getType( nested ), nested ); } else { return getSingleRepresentation( value ); } } } ); return new ListRepresentation( getType( results ), results ); }