# HG changeset patch # User smarks # Date 1522256512 25200 # Node ID bcc8ae80f42753f40922fa2fc4ed93e66ff9ef99 # Parent 2954c0c194038d39ae5a0d20f3714d480e7b4b89 remove old Optional tests diff -r 2954c0c19403 -r bcc8ae80f427 test/jdk/java/util/Optional/Basic.java --- a/test/jdk/java/util/Optional/Basic.java Tue Mar 27 23:12:36 2018 -0700 +++ b/test/jdk/java/util/Optional/Basic.java Wed Mar 28 10:01:52 2018 -0700 @@ -208,333 +208,5 @@ assertEquals(Optional.of("xyzzy").stream().collect(toList()), List.of("xyzzy")); } - // ===== old tests ===== - - @Test(groups = "unit") - public void testOldEmpty() { - Optional empty = Optional.empty(); - Optional presentEmptyString = Optional.of(""); - Optional present = Optional.of(Boolean.TRUE); - - // empty - assertTrue(empty.equals(empty)); - assertTrue(empty.equals(Optional.empty())); - assertTrue(!empty.equals(present)); - assertTrue(0 == empty.hashCode()); - assertTrue(!empty.toString().isEmpty()); - assertTrue(!empty.toString().equals(presentEmptyString.toString())); - assertTrue(!empty.isPresent()); - - empty.ifPresent(v -> fail()); - - AtomicBoolean emptyCheck = new AtomicBoolean(); - empty.ifPresentOrElse(v -> fail(), () -> emptyCheck.set(true)); - assertTrue(emptyCheck.get()); - - try { - empty.ifPresentOrElse(v -> fail(), () -> { throw new ObscureException(); }); - fail(); - } catch (ObscureException expected) { - } catch (AssertionError e) { - throw e; - } catch (Throwable t) { - fail(); - } - - assertSame(null, empty.orElse(null)); - RuntimeException orElse = new RuntimeException() { }; - assertSame(Boolean.FALSE, empty.orElse(Boolean.FALSE)); - assertSame(null, empty.orElseGet(() -> null)); - assertSame(Boolean.FALSE, empty.orElseGet(() -> Boolean.FALSE)); - } - - @Test(groups = "unit") - public void testIfPresentAndOrElseAndNull() { - Optional empty = Optional.empty(); - Optional present = Optional.of(Boolean.TRUE); - - // No NPE - present.ifPresentOrElse(v -> {}, null); - empty.ifPresent(null); - empty.ifPresentOrElse(null, () -> {}); - - // NPE - try { - present.ifPresent(null); - fail(); - } catch (NullPointerException ex) {} - try { - present.ifPresentOrElse(null, () -> {}); - fail(); - } catch (NullPointerException ex) {} - try { - empty.ifPresentOrElse(v -> {}, null); - fail(); - } catch (NullPointerException ex) {} - } - - @Test(expectedExceptions=NoSuchElementException.class) - public void testEmptyGet() { - Optional empty = Optional.empty(); - - Boolean got = empty.get(); - } - - @Test(expectedExceptions=NullPointerException.class) - public void testEmptyOrElseGetNull() { - Optional empty = Optional.empty(); - - Boolean got = empty.orElseGet(null); - } - - @Test(expectedExceptions=NullPointerException.class) - public void testEmptyOrElseThrowNull() throws Throwable { - Optional empty = Optional.empty(); - - Boolean got = empty.orElseThrow(null); - } - - @Test(expectedExceptions=ObscureException.class) - public void testEmptyOrElseThrow() throws Exception { - Optional empty = Optional.empty(); - - Boolean got = empty.orElseThrow(ObscureException::new); - } - - @Test(expectedExceptions=NoSuchElementException.class) - public void testEmptyOrElseThrowNoArg() throws Exception { - Optional empty = Optional.empty(); - - Boolean got = empty.orElseThrow(); - } - - @Test(groups = "unit") - public void testPresent() { - Optional empty = Optional.empty(); - Optional presentEmptyString = Optional.of(""); - Optional present = Optional.of(Boolean.TRUE); - - // present - assertTrue(present.equals(present)); - assertTrue(present.equals(Optional.of(Boolean.TRUE))); - assertTrue(!present.equals(empty)); - assertTrue(Boolean.TRUE.hashCode() == present.hashCode()); - assertTrue(!present.toString().isEmpty()); - assertTrue(!present.toString().equals(presentEmptyString.toString())); - assertTrue(-1 != present.toString().indexOf(Boolean.TRUE.toString())); - assertSame(Boolean.TRUE, present.get()); - assertSame(Boolean.TRUE, present.orElseThrow()); - - AtomicBoolean presentCheck = new AtomicBoolean(); - present.ifPresent(v -> presentCheck.set(true)); - assertTrue(presentCheck.get()); - presentCheck.set(false); - present.ifPresentOrElse(v -> presentCheck.set(true), () -> fail()); - assertTrue(presentCheck.get()); - - try { - present.ifPresent(v -> { throw new ObscureException(); }); - fail(); - } catch (ObscureException expected) { - } catch (AssertionError e) { - throw e; - } catch (Throwable t) { - fail(); - } - try { - present.ifPresentOrElse(v -> { throw new ObscureException(); }, () -> fail()); - fail(); - } catch (ObscureException expected) { - } catch (AssertionError e) { - throw e; - } catch (Throwable t) { - fail(); - } - - assertSame(Boolean.TRUE, present.orElse(null)); - assertSame(Boolean.TRUE, present.orElse(Boolean.FALSE)); - assertSame(Boolean.TRUE, present.orElseGet(null)); - assertSame(Boolean.TRUE, present.orElseGet(() -> null)); - assertSame(Boolean.TRUE, present.orElseGet(() -> Boolean.FALSE)); - assertSame(Boolean.TRUE, present.orElseThrow(null)); - assertSame(Boolean.TRUE, present.orElseThrow(ObscureException::new)); - } - - @Test(groups = "unit") - public void testOfNullable() { - Optional instance = Optional.ofNullable(null); - assertFalse(instance.isPresent()); - - instance = Optional.ofNullable("Duke"); - assertTrue(instance.isPresent()); - assertEquals(instance.get(), "Duke"); - assertEquals(instance.orElseThrow(), "Duke"); - } - - @Test(groups = "unit") - public void testFilter() { - // Null mapper function - Optional empty = Optional.empty(); - Optional duke = Optional.of("Duke"); - - try { - Optional result = empty.filter(null); - fail("Should throw NPE on null mapping function"); - } catch (NullPointerException npe) { - // expected - } - - Optional result = empty.filter(String::isEmpty); - assertFalse(result.isPresent()); - - result = duke.filter(String::isEmpty); - assertFalse(result.isPresent()); - result = duke.filter(s -> s.startsWith("D")); - assertTrue(result.isPresent()); - assertEquals(result.get(), "Duke"); - assertEquals(result.orElseThrow(), "Duke"); - - Optional emptyString = Optional.of(""); - result = emptyString.filter(String::isEmpty); - assertTrue(result.isPresent()); - assertEquals(result.get(), ""); - assertEquals(result.orElseThrow(), ""); - } - - @Test(groups = "unit") - public void testMap() { - Optional empty = Optional.empty(); - Optional duke = Optional.of("Duke"); - - // Null mapper function - try { - Optional b = empty.map(null); - fail("Should throw NPE on null mapping function"); - } catch (NullPointerException npe) { - // expected - } - - // Map an empty value - Optional b = empty.map(String::isEmpty); - assertFalse(b.isPresent()); - - // Map into null - b = empty.map(n -> null); - assertFalse(b.isPresent()); - b = duke.map(s -> null); - assertFalse(b.isPresent()); - - // Map to value - Optional l = duke.map(String::length); - assertEquals(l.get().intValue(), 4); - } - - @Test(groups = "unit") - public void testFlatMap() { - Optional empty = Optional.empty(); - Optional duke = Optional.of("Duke"); - - // Null mapper function - try { - Optional b = empty.flatMap(null); - fail("Should throw NPE on null mapping function"); - } catch (NullPointerException npe) { - // expected - } - - // Map into null - try { - Optional b = duke.flatMap(s -> null); - fail("Should throw NPE when mapper return null"); - } catch (NullPointerException npe) { - // expected - } - - // Empty won't invoke mapper function - try { - Optional b = empty.flatMap(s -> null); - assertFalse(b.isPresent()); - } catch (NullPointerException npe) { - fail("Mapper function should not be invoked"); - } - - // Map an empty value - Optional l = empty.flatMap(s -> Optional.of(s.length())); - assertFalse(l.isPresent()); - - // Map to value - Optional fixture = Optional.of(Integer.MAX_VALUE); - l = duke.flatMap(s -> Optional.of(s.length())); - assertTrue(l.isPresent()); - assertEquals(l.get().intValue(), 4); - assertEquals(l.orElseThrow().intValue(), 4); - - // Verify same instance - l = duke.flatMap(s -> fixture); - assertSame(l, fixture); - } - - @Test(groups = "unit") - public void testOr() { - Optional empty = Optional.empty(); - Optional duke = Optional.of("Duke"); - - // Null supplier - try { - Optional b = empty.or(null); - fail("Should throw NPE on null supplier"); - } catch (NullPointerException npe) { - // expected - } - - // Supply null - try { - Optional b = empty.or(() -> null); - fail("Should throw NPE when supplier returns null"); - } catch (NullPointerException npe) { - // expected - } - - // Non-empty won't invoke supplier - try { - Optional b = duke.or(() -> null); - assertTrue(b.isPresent()); - } catch (NullPointerException npe) { - fail("Supplier should not be invoked"); - } - - // Supply for empty - Optional suppliedDuke = empty.or(() -> duke); - assertTrue(suppliedDuke.isPresent()); - assertSame(suppliedDuke, duke); - - // Supply for non-empty - Optional actualDuke = duke.or(() -> Optional.of("Other Duke")); - assertTrue(actualDuke.isPresent()); - assertSame(actualDuke, duke); - } - - @Test(groups = "unit") - public void testStream() { - { - Stream s = Optional.empty().stream(); - assertFalse(s.isParallel()); - - Object[] es = s.toArray(); - assertEquals(es.length, 0); - } - - { - Stream s = Optional.of("Duke").stream(); - assertFalse(s.isParallel()); - - String[] es = s.toArray(String[]::new); - assertEquals(es.length, 1); - assertEquals(es[0], "Duke"); - } - } - - private static class ObscureException extends RuntimeException { - - } + private static class ObscureException extends RuntimeException { } }