From 4a4dcc5185f8ba5a28c7f9fef509f32c0c2389e6 Mon Sep 17 00:00:00 2001 From: "Sonsino, Ofir (os0695)" Date: Sun, 12 Aug 2018 14:51:28 +0300 Subject: vid-automation selenium tests Change-Id: I6c1b0a0cf3bbfa4314c81f0cc72507db805ec632 Issue-ID: VID-281 Signed-off-by: Sonsino, Ofir (os0695) --- .../test/java/org/opencomp/vid/api/Streams.java | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 vid-automation/src/test/java/org/opencomp/vid/api/Streams.java (limited to 'vid-automation/src/test/java/org/opencomp/vid/api/Streams.java') diff --git a/vid-automation/src/test/java/org/opencomp/vid/api/Streams.java b/vid-automation/src/test/java/org/opencomp/vid/api/Streams.java new file mode 100644 index 00000000..c1c6cea4 --- /dev/null +++ b/vid-automation/src/test/java/org/opencomp/vid/api/Streams.java @@ -0,0 +1,47 @@ +package org.opencomp.vid.api; + +import java.util.Iterator; +import java.util.Spliterator; +import java.util.Spliterators; +import java.util.function.Consumer; +import java.util.function.Predicate; +import java.util.stream.Stream; +import java.util.stream.StreamSupport; + +public class Streams { + public static Predicate not(Predicate predicate) { + return predicate.negate(); + } + + public static Stream fromIterator(final Iterator iterator) { + Iterable iterable = () -> iterator; + return StreamSupport.stream(iterable.spliterator(), false); + } + + + // https://stackoverflow.com/questions/20746429/limit-a-stream-by-a-predicate + private static Spliterator takeWhile( + Spliterator splitr, Predicate predicate) { + return new Spliterators.AbstractSpliterator(splitr.estimateSize(), 0) { + boolean stillGoing = true; + @Override public boolean tryAdvance(Consumer consumer) { + if (stillGoing) { + boolean hadNext = splitr.tryAdvance(elem -> { + if (predicate.test(elem)) { + consumer.accept(elem); + } else { + stillGoing = false; + } + }); + return hadNext && stillGoing; + } + return false; + } + }; + } + + public static Stream takeWhile(Stream stream, Predicate predicate) { + return StreamSupport.stream(takeWhile(stream.spliterator(), predicate), false); + } + +} -- cgit 1.2.3-korg