From d34f3a76d9c4117a44a1368368f857e705f33eb3 Mon Sep 17 00:00:00 2001 From: mperor Date: Wed, 9 Oct 2024 12:46:16 +0200 Subject: [PATCH] Add Java 10 test class ... - Local-Variable Type Inference `var` - Unmodifiable Collections `copyOf()` - Optional Enhancements --- src/test/java/pl/mperor/lab/java/Java10.java | 41 ++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/test/java/pl/mperor/lab/java/Java10.java diff --git a/src/test/java/pl/mperor/lab/java/Java10.java b/src/test/java/pl/mperor/lab/java/Java10.java new file mode 100644 index 0000000..81a488b --- /dev/null +++ b/src/test/java/pl/mperor/lab/java/Java10.java @@ -0,0 +1,41 @@ +package pl.mperor.lab.java; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +/** + * Java 10 (March 2018) + */ +public class Java10 { + + @Test + public void testLocalVariableTypeInferenceKeywordAkaVar() { + var message = "Hello Java 10!"; + // same as String message = ... + Assertions.assertEquals("Hello Java 10!", message); + + var number = 10; + // same as int number = ... + Assertions.assertEquals(10, number); + } + + @Test + public void testCopyOf() { + var original = List.of("Java", "Python", "JavaScript"); + var copy = List.copyOf(original); + Assertions.assertEquals(original, copy); + Assertions.assertThrows(UnsupportedOperationException.class, () -> copy.add("Ruby")); + } + + @Test + public void testOptionalEnhancements() { + Optional optional = Optional.empty(); + Assertions.assertThrows(IllegalStateException.class, () -> optional.orElseThrow(IllegalStateException::new)); + Assertions.assertEquals("", optional.stream().collect(Collectors.joining())); + } + +}