public FlowFirst<B> first(B def) { return then(new FlowFirst<B>(def)); }
@Override public void process(A a) { stop(result = a); } }
@Test public void test_of_iterator() { List<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(2); list.add(3); int result = Flow.of(list.iterator()).first().get(); Assert.assertEquals(1, result); }
@Test public void test_orElse() { Assert.assertEquals(Integer.valueOf(-1), Flow.of(1, 2, 3) .filter(new Filter<Integer>() { @Override public boolean allow(Integer integer) { return integer > 10; } }) .first() .orElse(-1)); }
@Test public void test_or_11() { Assert.assertEquals(Integer.valueOf(1), Flow.of(1, 2, 3) .filter(new Filter<Integer>() { @Override public boolean allow(Integer integer) { return integer > 0; } }) .first() .or(-1) .get()); }
@Test public void test_orElse_6() { Assert.assertEquals(Integer.valueOf(1), Flow.of(1, 2, 3) .filter(new Filter<Integer>() { @Override public boolean allow(Integer integer) { return integer > 0; } }) .first() .orElseThrow(new Supplier<RuntimeException>() { @Override public RuntimeException supply() { return new IllegalStateException("nothing found"); } })); }
@Test public void test_suppliers() { final AtomicInteger i = new AtomicInteger(); Assert.assertEquals("1", Flow.of(new Supplier<Integer>() { @Override public Integer supply() { return i.incrementAndGet(); } }, new Supplier<Integer>() { @Override public Integer supply() { return i.incrementAndGet(); } }).first().join(",").get()); Assert.assertEquals(1, i.get()); }
@Test public void test_each_after_first() { final AtomicInteger before = new AtomicInteger(); final AtomicInteger after = new AtomicInteger(); Flow.of(1, 2, 3) .each(new Consumer<Integer>() { @Override public void consume(Integer i) { before.incrementAndGet(); } }) .first() .each(new Consumer<Integer>() { @Override public void consume(Integer i) { after.incrementAndGet(); } }) .execute(); Assert.assertEquals(1, before.get()); Assert.assertEquals(1, after.get()); }
@Test public void test_orElse_4() { Assert.assertEquals(Integer.valueOf(1), Flow.of(1, 2, 3) .filter(new Filter<Integer>() { @Override public boolean allow(Integer integer) { return integer > 0; } }) .first() .orElse(-1)); }
@Test public void test_or_12() { Assert.assertEquals(Integer.valueOf(-1), Flow.of(1, 2, 3) .filter(new Filter<Integer>() { @Override public boolean allow(Integer integer) { return integer > 10; } }) .first() .or(-1) .get()); }
@Test public void test_orElse_3() { try { Flow.of(1, 2, 3) .filter(new Filter<Integer>() { @Override public boolean allow(Integer integer) { return integer > 10; } }) .first() .orElseThrow(new Supplier<RuntimeException>() { @Override public RuntimeException supply() { return new IllegalStateException("nothing found"); } }); Assert.assertTrue(false); } catch (IllegalStateException e) { Assert.assertEquals("nothing found", e.getMessage()); } }
@Test public void test_of_iterable_2() { List<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(2); list.add(3); int result = Flow.of(list).first().get(); Assert.assertEquals(1, result); }
@Override public void process(A a) { stop(result = a); } }
public FlowFirst<B> first(B def) { return then(new FlowFirst<B>(def)); }
@Test public void test_orElse_2() { Assert.assertEquals(Integer.valueOf(-1), Flow.of(1, 2, 3) .filter(new Filter<Integer>() { @Override public boolean allow(Integer integer) { return integer > 10; } }) .first() .orElse(new Supplier<Integer>() { @Override public Integer supply() { return -1; } })); }
@Test public void test_or_13() { Assert.assertEquals(Integer.valueOf(-1), Flow.of(1, 2, 3) .filter(new Filter<Integer>() { @Override public boolean allow(Integer integer) { return integer > 10; } }) .first() .or(new Supplier<Integer>() { @Override public Integer supply() { return -1; } }) .get()); }
@Test public void test_each_with_index_3() { final StringBuilder sb = new StringBuilder(); Flow.of(2, 4, 6) .each(new ConsumerWithInt<Integer>() { @Override public void consume(int i, Integer integer) { if (sb.length() != 0) sb.append(", "); sb.append(i); } }) .first() .get(); Assert.assertEquals("0", sb.toString()); }
@Test public void test_orElse_5() { Assert.assertEquals(Integer.valueOf(1), Flow.of(1, 2, 3) .filter(new Filter<Integer>() { @Override public boolean allow(Integer integer) { return integer > 0; } }) .first() .orElse(new Supplier<Integer>() { @Override public Integer supply() { return -1; } })); }