You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sl...@apache.org on 2020/04/11 20:25:25 UTC
[maven-indexer] 02/05: [MINDEXER-124] Write unit tests
This is an automated email from the ASF dual-hosted git repository.
slachiewicz pushed a commit to branch MINDEXER-124
in repository https://gitbox.apache.org/repos/asf/maven-indexer.git
commit 4f51538eb57627c8b9006e2153bf8d1785411804
Author: sixcorners <si...@gmail.com>
AuthorDate: Sun Feb 2 19:39:34 2020 -0600
[MINDEXER-124] Write unit tests
---
indexer-reader/pom.xml | 5 ++
.../resource/BufferedResourceHandlerTest.java | 58 ++++++++++++++++++++++
.../BufferedWritableResourceHandlerTest.java | 52 +++++++++++++++++++
.../resource/BufferedWritableResourceTest.java | 21 ++++++++
.../resource/PathWritableResourceHandlerTest.java | 34 +++++++++++++
.../reader/resource/UriResourceHandlerTest.java | 28 +++++++++++
6 files changed, 198 insertions(+)
diff --git a/indexer-reader/pom.xml b/indexer-reader/pom.xml
index 0d9af1e..150a56a 100644
--- a/indexer-reader/pom.xml
+++ b/indexer-reader/pom.xml
@@ -44,6 +44,11 @@ under the License.
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>org.jmock</groupId>
+ <artifactId>jmock</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<scope>test</scope>
diff --git a/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/BufferedResourceHandlerTest.java b/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/BufferedResourceHandlerTest.java
new file mode 100644
index 0000000..174d923
--- /dev/null
+++ b/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/BufferedResourceHandlerTest.java
@@ -0,0 +1,58 @@
+package org.apache.maven.index.reader.resource;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.BufferedInputStream;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import org.apache.maven.index.reader.ResourceHandler;
+import org.apache.maven.index.reader.ResourceHandler.Resource;
+import org.jmock.Expectations;
+import org.jmock.Mockery;
+import org.junit.Test;
+
+public class BufferedResourceHandlerTest {
+ private Mockery context = new Mockery();
+
+ @Test
+ public void locate() throws IOException {
+ final Resource resource = context.mock(Resource.class);
+ final ResourceHandler resourceHandler = context.mock(ResourceHandler.class);
+ context.checking(new Expectations() {{
+ oneOf(resource).read();
+ will(returnValue(new ByteArrayInputStream(new byte[]{'a'})));
+ oneOf(resourceHandler).locate("test.txt");
+ will(returnValue(resource));
+ }});
+ InputStream in = new BufferedResourceHandler(resourceHandler).locate("test.txt").read();
+ assertTrue(in instanceof BufferedInputStream);
+ assertEquals('a', in.read());
+ context.assertIsSatisfied();
+ }
+
+ @Test
+ public void locateNull() throws IOException {
+ final Resource resource = context.mock(Resource.class);
+ final ResourceHandler resourceHandler = context.mock(ResourceHandler.class);
+ context.checking(new Expectations() {{
+ oneOf(resource).read();
+ oneOf(resourceHandler).locate("test.txt");
+ will(returnValue(resource));
+ }});
+ assertNull(new BufferedResourceHandler(resourceHandler).locate("test.txt").read());
+ context.assertIsSatisfied();
+ }
+
+ @Test
+ public void close() throws IOException {
+ final ResourceHandler resourceHandler = context.mock(ResourceHandler.class);
+ context.checking(new Expectations() {{
+ oneOf(resourceHandler).close();
+ }});
+ new BufferedResourceHandler(resourceHandler).close();
+ context.assertIsSatisfied();
+ }
+}
\ No newline at end of file
diff --git a/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/BufferedWritableResourceHandlerTest.java b/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/BufferedWritableResourceHandlerTest.java
new file mode 100644
index 0000000..7838914
--- /dev/null
+++ b/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/BufferedWritableResourceHandlerTest.java
@@ -0,0 +1,52 @@
+package org.apache.maven.index.reader.resource;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.BufferedOutputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import org.apache.maven.index.reader.WritableResourceHandler;
+import org.apache.maven.index.reader.WritableResourceHandler.WritableResource;
+import org.jmock.Expectations;
+import org.jmock.Mockery;
+import org.junit.Test;
+
+public class BufferedWritableResourceHandlerTest {
+ private Mockery context = new Mockery();
+
+ @Test
+ public void locate() throws IOException {
+ final WritableResource writableResource = context.mock(WritableResource.class);
+ final WritableResourceHandler writableResourceHandler = context
+ .mock(WritableResourceHandler.class);
+ final ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ context.checking(new Expectations() {{
+ oneOf(writableResource).write();
+ will(returnValue(baos));
+ oneOf(writableResourceHandler).locate("test.txt");
+ will(returnValue(writableResource));
+ }});
+ OutputStream out = new BufferedWritableResourceHandler(writableResourceHandler)
+ .locate("test.txt").write();
+ assertTrue(out instanceof BufferedOutputStream);
+ assertArrayEquals(new byte[]{}, baos.toByteArray());
+ out.write('a');
+ assertArrayEquals(new byte[]{}, baos.toByteArray());
+ out.flush();
+ assertArrayEquals(new byte[]{'a'}, baos.toByteArray());
+ context.assertIsSatisfied();
+ }
+
+ @Test
+ public void close() throws IOException {
+ final WritableResourceHandler writableResourceHandler = context
+ .mock(WritableResourceHandler.class);
+ context.checking(new Expectations() {{
+ oneOf(writableResourceHandler).close();
+ }});
+ new BufferedWritableResourceHandler(writableResourceHandler).close();
+ context.assertIsSatisfied();
+ }
+}
diff --git a/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/BufferedWritableResourceTest.java b/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/BufferedWritableResourceTest.java
new file mode 100644
index 0000000..1dc043b
--- /dev/null
+++ b/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/BufferedWritableResourceTest.java
@@ -0,0 +1,21 @@
+package org.apache.maven.index.reader.resource;
+
+import java.io.IOException;
+import org.apache.maven.index.reader.WritableResourceHandler.WritableResource;
+import org.jmock.Expectations;
+import org.jmock.Mockery;
+import org.junit.Test;
+
+public class BufferedWritableResourceTest {
+ private Mockery context = new Mockery();
+
+ @Test
+ public void close() throws IOException {
+ final WritableResource resourceHandler = context.mock(WritableResource.class);
+ context.checking(new Expectations() {{
+ oneOf(resourceHandler).close();
+ }});
+ new BufferedWritableResource(resourceHandler).close();
+ context.assertIsSatisfied();
+ }
+}
\ No newline at end of file
diff --git a/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/PathWritableResourceHandlerTest.java b/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/PathWritableResourceHandlerTest.java
new file mode 100644
index 0000000..0852db7
--- /dev/null
+++ b/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/PathWritableResourceHandlerTest.java
@@ -0,0 +1,34 @@
+package org.apache.maven.index.reader.resource;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.file.Files;
+import org.apache.maven.index.reader.WritableResourceHandler.WritableResource;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
+
+public class PathWritableResourceHandlerTest {
+ @Rule
+ public TemporaryFolder folder = new TemporaryFolder();
+
+ @Test
+ public void locate() throws IOException {
+ WritableResource test = new PathWritableResourceHandler(folder.getRoot().toPath())
+ .locate("test.txt");
+ assertNull(test.read());
+ try (OutputStream out = test.write()) {
+ out.write('a');
+ }
+ try (InputStream in = test.read()) {
+ assertEquals('a', in.read());
+ }
+ assertArrayEquals(new byte[]{'a'},
+ Files.readAllBytes(folder.getRoot().toPath().resolve("test.txt")));
+ }
+}
diff --git a/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/UriResourceHandlerTest.java b/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/UriResourceHandlerTest.java
new file mode 100644
index 0000000..ace8c2f
--- /dev/null
+++ b/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/UriResourceHandlerTest.java
@@ -0,0 +1,28 @@
+package org.apache.maven.index.reader.resource;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.file.Files;
+import org.apache.maven.index.reader.ResourceHandler.Resource;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
+
+public class UriResourceHandlerTest {
+ @Rule
+ public TemporaryFolder folder = new TemporaryFolder();
+
+ @Test
+ public void locate() throws IOException {
+ Resource test = new UriResourceHandler(folder.getRoot().toURI())
+ .locate("test.txt");
+ assertNull(test.read());
+ Files.write(folder.getRoot().toPath().resolve("test.txt"), new byte[]{'a'});
+ try (InputStream in = test.read()) {
+ assertEquals('a', in.read());
+ }
+ }
+}
\ No newline at end of file