This is an automated email from the ASF dual-hosted git repository.
tmaret pushed a commit to branch master
in repository
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-distribution-core.git
The following commit(s) were added to refs/heads/master by this push:
new 78b28f3 SLING-4075 - Improve test coverage of SCD
78b28f3 is described below
commit 78b28f3cbc1cbfe83f7adb4adba302c27d71de1e
Author: tmaret <[email protected]>
AuthorDate: Wed Feb 27 15:10:07 2019 +0100
SLING-4075 - Improve test coverage of SCD
* Extend FileBackedMemoryOutputStream unit test coverage
---
.../impl/FileBackedMemoryOutputStreamTest.java | 59 +++++++++++++++++++---
1 file changed, 53 insertions(+), 6 deletions(-)
diff --git
a/src/test/java/org/apache/sling/distribution/util/impl/FileBackedMemoryOutputStreamTest.java
b/src/test/java/org/apache/sling/distribution/util/impl/FileBackedMemoryOutputStreamTest.java
index d98931e..03d0bfe 100644
---
a/src/test/java/org/apache/sling/distribution/util/impl/FileBackedMemoryOutputStreamTest.java
+++
b/src/test/java/org/apache/sling/distribution/util/impl/FileBackedMemoryOutputStreamTest.java
@@ -42,6 +42,14 @@ import org.junit.Test;
*/
public class FileBackedMemoryOutputStreamTest {
+ @Test(expected = IllegalArgumentException.class)
+ public void thresholdMustBePositive() throws IOException {
+ new FileBackedMemoryOutputStream(-1,
+ MemoryUnit.BYTES,
+ false,
+ new File("/tmp"),
"FileBackedMemoryOutputStreamTest.justKeepDataInMemory", ".tmp");
+ }
+
@Test
public void justKeepDataInMemory() throws IOException {
FileBackedMemoryOutputStream output = new
FileBackedMemoryOutputStream(10,
@@ -58,14 +66,14 @@ public class FileBackedMemoryOutputStreamTest {
assertEquals(2, output.size());
assertNull(output.getFile());
- verifyWrittenData(data, output);
+ verifyWrittenData(output, data);
}
@Test
- public void backedToFile() throws IOException {
+ public void backedOnlyToFile() throws IOException {
FileBackedMemoryOutputStream output = new
FileBackedMemoryOutputStream(10,
MemoryUnit.BYTES,
-
false,
+
true,
new File("/tmp"),
"FileBackedMemoryOutputStreamTest.backedToFile",
".tmp");
@@ -79,7 +87,31 @@ public class FileBackedMemoryOutputStreamTest {
assertTrue(output.getFile().exists());
assertEquals(90, output.getFile().length());
- verifyWrittenData(data, output);
+ verifyWrittenData(output, data);
+
+ output.clean();
+ assertFalse(output.getFile().exists());
+ }
+
+ @Test
+ public void backedToFile() throws IOException {
+ FileBackedMemoryOutputStream output = new
FileBackedMemoryOutputStream(10,
+ MemoryUnit.BYTES,
+ false,
+ new File("/tmp"),
+ "FileBackedMemoryOutputStreamTest.backedToFile",
+ ".tmp");
+ byte[] data = newDataArray(100);
+
+ output.write(data);
+ output.close();
+
+ assertEquals(100, output.size());
+ assertNotNull(output.getFile());
+ assertTrue(output.getFile().exists());
+ assertEquals(90, output.getFile().length());
+
+ verifyWrittenData(output, data);
output.clean();
assertFalse(output.getFile().exists());
@@ -98,10 +130,25 @@ public class FileBackedMemoryOutputStreamTest {
output.write(data);
output.close();
assertEquals(data.length, output.size());
- verifyWrittenData(data, output);
+ verifyWrittenData(output, data);
}
}
+ @Test
+ public void singleByteWritesBackedToFile() throws IOException {
+ FileBackedMemoryOutputStream output = new
FileBackedMemoryOutputStream(1,
+ MemoryUnit.BYTES,
+ false,
+ new File("/tmp"),
+ "FileBackedMemoryOutputStreamTest.singleByteBackedToFile",
+ ".tmp");
+ byte[] data = {0x0F, 0x0D};
+ output.write(data[0]);
+ output.write(data[1]);
+ output.flush();
+ verifyWrittenData(output, data);
+ }
+
private byte[] newDataArray(int size) {
byte[] data = new byte[size];
byte b = (byte) (new Random().nextInt() & 0xff);
@@ -109,7 +156,7 @@ public class FileBackedMemoryOutputStreamTest {
return data;
}
- private void verifyWrittenData(byte[] expecteds,
FileBackedMemoryOutputStream writtenData) throws IOException {
+ private void verifyWrittenData(FileBackedMemoryOutputStream writtenData,
byte... expecteds) throws IOException {
InputStream input = writtenData.openWrittenDataInputStream();
ByteArrayOutputStream output = new ByteArrayOutputStream();
copy(input, output);