From 9946fa53a1e752f970c956779011225823939c0a Mon Sep 17 00:00:00 2001 From: vatsalgosar Date: Mon, 21 Oct 2019 00:17:18 +0530 Subject: [PATCH 1/5] BAEL-3143 - nextLine() method of java.util.Scanner class --- .../baeldung/scanner/JavaScannerUnitTest.java | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 core-java-modules/core-java-io-2/src/test/java/com/baeldung/scanner/JavaScannerUnitTest.java diff --git a/core-java-modules/core-java-io-2/src/test/java/com/baeldung/scanner/JavaScannerUnitTest.java b/core-java-modules/core-java-io-2/src/test/java/com/baeldung/scanner/JavaScannerUnitTest.java new file mode 100644 index 0000000000..ea80c7aef7 --- /dev/null +++ b/core-java-modules/core-java-io-2/src/test/java/com/baeldung/scanner/JavaScannerUnitTest.java @@ -0,0 +1,54 @@ +package com.baeldung.scanner; + +import org.junit.Test; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.nio.charset.StandardCharsets; +import java.util.NoSuchElementException; +import java.util.Scanner; + +import static org.assertj.core.api.Assertions.fail; +import static org.junit.Assert.assertEquals; + +public class JavaScannerUnitTest { + + @Test + public void whenReadingLines_thenCorrect() { + String input = "Scanner\nTest\n"; + + byte[] byteArray = input.getBytes(StandardCharsets.UTF_8); + //@formatter:off + try (InputStream is = new ByteArrayInputStream(byteArray); + Scanner scanner = new Scanner(is)) { + + //@formatter:on + String result = scanner.nextLine() + " " + scanner.nextLine(); + + String expected = input.replace("\n", " ") + .trim(); + assertEquals(expected, result); + } catch (IOException e) { + fail(e.getMessage()); + } + } + + @Test(expected = NoSuchElementException.class) + public void whenReadingLinesFromStringContainingNoLines_thenThrowNoSuchElementException() { + String input = ""; + Scanner scanner = new Scanner(input); + String result = scanner.nextLine(); + scanner.close(); + } + + @Test(expected = IllegalStateException.class) + public void whenReadingLinesUsingClosedScanner_thenThrowIllegalStateException() { + String input = ""; + Scanner scanner = new Scanner(input); + scanner.close(); + String result = scanner.nextLine(); + } + + +} From a87822229a2247098752e0f59c7014b9e7c08bff Mon Sep 17 00:00:00 2001 From: vatsalgosar Date: Wed, 23 Oct 2019 00:17:07 +0530 Subject: [PATCH 2/5] BAEL-3143 - made the required changes --- .../baeldung/scanner/JavaScannerUnitTest.java | 42 +++++-------------- 1 file changed, 11 insertions(+), 31 deletions(-) diff --git a/core-java-modules/core-java-io-2/src/test/java/com/baeldung/scanner/JavaScannerUnitTest.java b/core-java-modules/core-java-io-2/src/test/java/com/baeldung/scanner/JavaScannerUnitTest.java index ea80c7aef7..8bc859ca07 100644 --- a/core-java-modules/core-java-io-2/src/test/java/com/baeldung/scanner/JavaScannerUnitTest.java +++ b/core-java-modules/core-java-io-2/src/test/java/com/baeldung/scanner/JavaScannerUnitTest.java @@ -1,54 +1,34 @@ package com.baeldung.scanner; -import org.junit.Test; +import static org.junit.Assert.assertEquals; -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.nio.charset.StandardCharsets; import java.util.NoSuchElementException; import java.util.Scanner; -import static org.assertj.core.api.Assertions.fail; -import static org.junit.Assert.assertEquals; +import org.junit.Test; public class JavaScannerUnitTest { @Test public void whenReadingLines_thenCorrect() { String input = "Scanner\nTest\n"; - - byte[] byteArray = input.getBytes(StandardCharsets.UTF_8); - //@formatter:off - try (InputStream is = new ByteArrayInputStream(byteArray); - Scanner scanner = new Scanner(is)) { - - //@formatter:on - String result = scanner.nextLine() + " " + scanner.nextLine(); - - String expected = input.replace("\n", " ") - .trim(); - assertEquals(expected, result); - } catch (IOException e) { - fail(e.getMessage()); + try (Scanner scanner = new Scanner(input)) { + assertEquals("Scanner", scanner.nextLine()); + assertEquals("Test", scanner.nextLine()); } } @Test(expected = NoSuchElementException.class) - public void whenReadingLinesFromStringContainingNoLines_thenThrowNoSuchElementException() { - String input = ""; - Scanner scanner = new Scanner(input); - String result = scanner.nextLine(); - scanner.close(); + public void whenReadingLines_thenThrowNoSuchElementException() { + try (Scanner scanner = new Scanner("")) { + String result = scanner.nextLine(); + } } @Test(expected = IllegalStateException.class) - public void whenReadingLinesUsingClosedScanner_thenThrowIllegalStateException() { - String input = ""; - Scanner scanner = new Scanner(input); + public void whenReadingLines_thenThrowIllegalStateException() { + Scanner scanner = new Scanner(""); scanner.close(); String result = scanner.nextLine(); } - - } From d102bbe6cb28708e39cf66941398789168847daf Mon Sep 17 00:00:00 2001 From: vatsalgosar Date: Fri, 25 Oct 2019 14:23:39 +0530 Subject: [PATCH 3/5] -- Added partial line example --- .../java/com/baeldung/scanner/JavaScannerUnitTest.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/core-java-modules/core-java-io-2/src/test/java/com/baeldung/scanner/JavaScannerUnitTest.java b/core-java-modules/core-java-io-2/src/test/java/com/baeldung/scanner/JavaScannerUnitTest.java index 8bc859ca07..7c244803dd 100644 --- a/core-java-modules/core-java-io-2/src/test/java/com/baeldung/scanner/JavaScannerUnitTest.java +++ b/core-java-modules/core-java-io-2/src/test/java/com/baeldung/scanner/JavaScannerUnitTest.java @@ -18,6 +18,16 @@ public class JavaScannerUnitTest { } } + @Test + public void whenReadingPartialLines_thenCorrect() { + String input = "Scanner\n"; + try (Scanner scanner = new Scanner(input)) { + scanner.useDelimiter(""); + scanner.next(); + assertEquals("canner", scanner.nextLine()); + } + } + @Test(expected = NoSuchElementException.class) public void whenReadingLines_thenThrowNoSuchElementException() { try (Scanner scanner = new Scanner("")) { From e8a597b5e991c067e7cf058bc9967ab09ec95a91 Mon Sep 17 00:00:00 2001 From: vatsalgosar Date: Wed, 30 Oct 2019 00:07:04 +0530 Subject: [PATCH 4/5] - Updated test names to reflect what it is testing --- .../test/java/com/baeldung/scanner/JavaScannerUnitTest.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/core-java-modules/core-java-io-2/src/test/java/com/baeldung/scanner/JavaScannerUnitTest.java b/core-java-modules/core-java-io-2/src/test/java/com/baeldung/scanner/JavaScannerUnitTest.java index 7c244803dd..5b304284b2 100644 --- a/core-java-modules/core-java-io-2/src/test/java/com/baeldung/scanner/JavaScannerUnitTest.java +++ b/core-java-modules/core-java-io-2/src/test/java/com/baeldung/scanner/JavaScannerUnitTest.java @@ -29,14 +29,15 @@ public class JavaScannerUnitTest { } @Test(expected = NoSuchElementException.class) - public void whenReadingLines_thenThrowNoSuchElementException() { + + public void givenNoNewLine_whenReadingNextLine_thenThrowNoSuchElementException() { try (Scanner scanner = new Scanner("")) { String result = scanner.nextLine(); } } @Test(expected = IllegalStateException.class) - public void whenReadingLines_thenThrowIllegalStateException() { + public void givenScannerIsClosed_whenReadingNextLine_thenThrowIllegalStateException() { Scanner scanner = new Scanner(""); scanner.close(); String result = scanner.nextLine(); From 1431f2333743ad6741a8a819228e3d70af64c2d0 Mon Sep 17 00:00:00 2001 From: Eric Martin Date: Fri, 1 Nov 2019 23:48:07 -0500 Subject: [PATCH 5/5] Update JavaScannerUnitTest.java --- .../src/test/java/com/baeldung/scanner/JavaScannerUnitTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/core-java-modules/core-java-io-2/src/test/java/com/baeldung/scanner/JavaScannerUnitTest.java b/core-java-modules/core-java-io-2/src/test/java/com/baeldung/scanner/JavaScannerUnitTest.java index 5b304284b2..471c0ea1c7 100644 --- a/core-java-modules/core-java-io-2/src/test/java/com/baeldung/scanner/JavaScannerUnitTest.java +++ b/core-java-modules/core-java-io-2/src/test/java/com/baeldung/scanner/JavaScannerUnitTest.java @@ -29,7 +29,6 @@ public class JavaScannerUnitTest { } @Test(expected = NoSuchElementException.class) - public void givenNoNewLine_whenReadingNextLine_thenThrowNoSuchElementException() { try (Scanner scanner = new Scanner("")) { String result = scanner.nextLine();