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