### Question:
GetItemReadResult extends AbstractReadResult<T> { @Override protected Spliterator<T> spliterator() { return new GetItemReadResultSpliterator(); } protected  GetItemReadResult(GetItemResult getItemResult);   }### Answer:
@Test void spliterator_characteristics_nonNullSizedSubSizedDistinctAndOrdered() { Spliterator<Item> spliterator = build(emptyResult()).spliterator(); assertThat(spliterator.characteristics()).isEqualTo(Spliterator.SIZED | Spliterator.SUBSIZED | Spliterator.DISTINCT | Spliterator.ORDERED | Spliterator.NONNULL); }
@Test void spliterator_trySplit_returnsNull() { Spliterator<Item> spliterator = build(emptyResult()).spliterator().trySplit(); assertThat(spliterator).isNull(); }
@Test void spliterator_estimateSizeEmpty_returnsZero() { long size = build(emptyResult()).spliterator().estimateSize(); assertThat(size).isZero(); }
@Test void spliterator_estimateSizeNotConsumed_returnsOne() { long size = build(result(item("hash", 0))).spliterator().estimateSize(); assertThat(size).isOne(); }
@Test void spliterator_estimateSizeConsumed_returnsZero() { Spliterator<Item> spliterator = build(result(item("hash", 0))).spliterator(); spliterator.tryAdvance(item -> {}); long size = spliterator.estimateSize(); assertThat(size).isZero(); }