Skip to content

Commit 2dddf4a

Browse files
authored
This commit is related to BAEL-6463 (#16753)
This commit aims to add a test class ClearScannerBufferUnitTest.
1 parent 61350e7 commit 2dddf4a

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package clearscannerbuffer;
2+
3+
4+
import org.junit.Test;
5+
6+
import java.io.ByteArrayInputStream;
7+
import java.util.Scanner;
8+
import java.util.stream.Collectors;
9+
import java.util.stream.Stream;
10+
11+
import static org.junit.Assert.assertEquals;
12+
13+
public class ClearScannerBufferUnitTest {
14+
Scanner scanner = new Scanner("123\nHello World");
15+
16+
@Test
17+
public void givenInput_whenUsingNextLineWithHasNextLine_thenBufferCleared() {
18+
19+
int number = scanner.nextInt();
20+
if (scanner.hasNextLine()) {
21+
scanner.nextLine();
22+
}
23+
String text = scanner.nextLine();
24+
25+
assertEquals(123, number);
26+
assertEquals("Hello World", text);
27+
}
28+
29+
@Test
30+
public void givenInput_whenUsingReset_thenBufferCleared() {
31+
String input = "123\nHello World";
32+
ByteArrayInputStream inputStream = new ByteArrayInputStream(input.getBytes());
33+
Scanner scanner = new Scanner(inputStream);
34+
35+
int number = scanner.nextInt();
36+
37+
inputStream.reset();
38+
scanner = new Scanner(inputStream);
39+
40+
int newNumber = scanner.nextInt();
41+
42+
scanner.nextLine();
43+
44+
String text = scanner.nextLine();
45+
46+
assertEquals(123, number);
47+
assertEquals(123, newNumber);
48+
assertEquals("Hello World", text);
49+
}
50+
51+
@Test
52+
public void givenInput_whenUsingStreamAPI_thenBufferCleared() {
53+
Scanner scanner = new Scanner("123\nline1\nline2\nexit");
54+
55+
int number = scanner.nextInt();
56+
57+
scanner.nextLine();
58+
59+
String lines = Stream.generate(scanner::nextLine)
60+
.takeWhile(line -> !line.equalsIgnoreCase("exit"))
61+
.collect(Collectors.joining(System.lineSeparator()));
62+
63+
String expectedLines = "line1" + System.lineSeparator() + "line2";
64+
65+
assertEquals(123, number);
66+
assertEquals(expectedLines, lines);
67+
}
68+
}

0 commit comments

Comments
 (0)