Skip to content

Commit 36608b7

Browse files
Ahmed Tawilapivovarit
authored andcommitted
BAEL-1033 Introduction to StreamUtils (eugenp#2337)
* Evaluation article: Different Types of Bean Injection in Spring * added tests & changed configuration to Java-based config * removed xml config files * rename unit tests * BAEL-972 - Apache Commons Text * remove code from evaluation article * remove code from evaluation article * BAEL-972 - Apache Commons Text - added another example * BAEL-972 - Apache Commons Text - just indentation * BAEL-994 - TemporalAdjuster in Java * BAEL-994 - TemporalAdjuster in Java * BAEL-994 - TemporalAdjuster in Java * BAEL-994 - TemporalAdjuster in Java * BAEL-994 - TemporalAdjuster in Java - fix problems * BAEL-1033 Introduction to StreamUtils * BAEL-1033 Introduction to StreamUtils
1 parent dc037a4 commit 36608b7

6 files changed

Lines changed: 136 additions & 1 deletion

File tree

core-java/src/test/java/com/baeldung/temporaladjusters/CustomTemporalAdjusterTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,4 @@ public void whenAdjust_thenFourteenDaysAfterDate() {
4141

4242
assertEquals(fourteenDaysAfterDate, result.toString());
4343
}
44-
}
44+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.baeldung.streamutils;
2+
3+
import java.io.FileInputStream;
4+
import java.io.IOException;
5+
import java.io.InputStream;
6+
import java.io.StringWriter;
7+
8+
import org.apache.commons.io.IOUtils;
9+
import org.springframework.util.StreamUtils;
10+
11+
public class CopyStream {
12+
public static String getStringFromInputStream(InputStream input) throws IOException {
13+
StringWriter writer = new StringWriter();
14+
IOUtils.copy(input, writer, "UTF-8");
15+
return writer.toString();
16+
}
17+
18+
public InputStream getNonClosingInputStream() throws IOException {
19+
InputStream in = new FileInputStream("src/test/resources/input.txt");
20+
return StreamUtils.nonClosing(in);
21+
}
22+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.baeldung.streamutils;
2+
3+
import java.io.InputStream;
4+
5+
import org.springframework.util.StreamUtils;
6+
7+
public class DrainStream {
8+
public InputStream getInputStream() {
9+
return StreamUtils.emptyInput();
10+
}
11+
}
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
package com.baeldung.streamutils;
2+
3+
import static org.junit.Assert.assertTrue;
4+
5+
import java.io.File;
6+
import java.io.FileInputStream;
7+
import java.io.FileOutputStream;
8+
import java.io.IOException;
9+
import java.io.InputStream;
10+
import java.io.OutputStream;
11+
import java.nio.charset.StandardCharsets;
12+
13+
import org.junit.Assert;
14+
import org.junit.Test;
15+
import org.springframework.util.StreamUtils;
16+
17+
import static com.baeldung.streamutils.CopyStream.getStringFromInputStream;
18+
19+
public class CopyStreamTest {
20+
21+
@Test
22+
public void whenCopyInputStreamToOutputStream_thenCorrect() throws IOException {
23+
String inputFileName = "src/test/resources/input.txt";
24+
String outputFileName = "src/test/resources/output.txt";
25+
File outputFile = new File(outputFileName);
26+
InputStream in = new FileInputStream(inputFileName);
27+
OutputStream out = new FileOutputStream(outputFileName);
28+
29+
StreamUtils.copy(in, out);
30+
31+
assertTrue(outputFile.exists());
32+
String inputFileContent = getStringFromInputStream(new FileInputStream(inputFileName));
33+
String outputFileContent = getStringFromInputStream(new FileInputStream(outputFileName));
34+
Assert.assertEquals(inputFileContent, outputFileContent);
35+
}
36+
37+
@Test
38+
public void whenCopyRangeOfInputStreamToOutputStream_thenCorrect() throws IOException {
39+
String inputFileName = "src/test/resources/input.txt";
40+
String outputFileName = "src/test/resources/output.txt";
41+
File outputFile = new File(outputFileName);
42+
InputStream in = new FileInputStream(inputFileName);
43+
OutputStream out = new FileOutputStream(outputFileName);
44+
45+
StreamUtils.copyRange(in, out, 1, 10);
46+
47+
assertTrue(outputFile.exists());
48+
String inputFileContent = getStringFromInputStream(new FileInputStream(inputFileName));
49+
String outputFileContent = getStringFromInputStream(new FileInputStream(outputFileName));
50+
Assert.assertEquals(inputFileContent.substring(1, 11), outputFileContent);
51+
}
52+
53+
@Test
54+
public void whenCopyStringToOutputStream_thenCorrect() throws IOException {
55+
String string = "Should be copied to OutputStream.";
56+
String outputFileName = "src/test/resources/output.txt";
57+
File outputFile = new File(outputFileName);
58+
OutputStream out = new FileOutputStream("src/test/resources/output.txt");
59+
60+
StreamUtils.copy(string, StandardCharsets.UTF_8, out);
61+
62+
assertTrue(outputFile.exists());
63+
String outputFileContent = getStringFromInputStream(new FileInputStream(outputFileName));
64+
Assert.assertEquals(outputFileContent, string);
65+
}
66+
67+
@Test
68+
public void whenCopyInputStreamToString_thenCorrect() throws IOException {
69+
String inputFileName = "src/test/resources/input.txt";
70+
InputStream is = new FileInputStream(inputFileName);
71+
String content = StreamUtils.copyToString(is, StandardCharsets.UTF_8);
72+
73+
String inputFileContent = getStringFromInputStream(new FileInputStream(inputFileName));
74+
Assert.assertEquals(inputFileContent, content);
75+
}
76+
77+
@Test
78+
public void whenCopyByteArrayToOutputStream_thenCorrect() throws IOException {
79+
String outputFileName = "src/test/resources/output.txt";
80+
String string = "Should be copied to OutputStream.";
81+
byte[] byteArray = string.getBytes();
82+
OutputStream out = new FileOutputStream("src/test/resources/output.txt");
83+
84+
StreamUtils.copy(byteArray, out);
85+
String outputFileContent = getStringFromInputStream(new FileInputStream(outputFileName));
86+
Assert.assertEquals(outputFileContent, string);
87+
}
88+
89+
@Test
90+
public void whenCopyInputStreamToByteArray_thenCorrect() throws IOException {
91+
String inputFileName = "src/test/resources/input.txt";
92+
InputStream in = new FileInputStream(inputFileName);
93+
byte[] out = StreamUtils.copyToByteArray(in);
94+
95+
String content = new String(out);
96+
String inputFileContent = getStringFromInputStream(new FileInputStream(inputFileName));
97+
Assert.assertEquals(inputFileContent, content);
98+
}
99+
100+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
This file is merely for testing.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Should be copied to OutputStream.

0 commit comments

Comments
 (0)