You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2009/08/04 18:23:42 UTC

svn commit: r800862 - /jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/RepositoryCopierTest.java

Author: jukka
Date: Tue Aug  4 16:23:41 2009
New Revision: 800862

URL: http://svn.apache.org/viewvc?rev=800862&view=rev
Log:
JCR-442: Implement a backup tool

Add test for backing up binary properties.

Modified:
    jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/RepositoryCopierTest.java

Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/RepositoryCopierTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/RepositoryCopierTest.java?rev=800862&r1=800861&r2=800862&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/RepositoryCopierTest.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/RepositoryCopierTest.java Tue Aug  4 16:23:41 2009
@@ -16,10 +16,14 @@
  */
 package org.apache.jackrabbit.core;
 
+import java.io.ByteArrayInputStream;
 import java.io.File;
+import java.io.InputStream;
 import java.math.BigDecimal;
 import java.util.Calendar;
+import java.util.Random;
 
+import javax.jcr.Binary;
 import javax.jcr.Credentials;
 import javax.jcr.NamespaceRegistry;
 import javax.jcr.Node;
@@ -41,13 +45,19 @@
     private static final Credentials CREDENTIALS =
         new SimpleCredentials("admin", "admin".toCharArray());
 
-    private final File BASE = new File("target", "RepositoryCopierTest");
+    private static final File BASE = new File("target", "RepositoryCopierTest");
 
-    private final File SOURCE = new File(BASE, "source");
+    private static final File SOURCE = new File(BASE, "source");
 
-    private final File TARGET = new File(BASE, "target");
+    private static final File TARGET = new File(BASE, "target");
 
-    private final Calendar DATE = Calendar.getInstance();
+    private static final Calendar DATE = Calendar.getInstance();
+
+    private static final byte[] BINARY = new byte[64 * 1024];
+
+    static {
+        new Random().nextBytes(BINARY);
+    }
 
     private String identifier;
 
@@ -93,6 +103,13 @@
 
                 Node properties = root.addNode("properties", "test:unstructured");
                 properties.setProperty("boolean", true);
+                Binary binary = session.getValueFactory().createBinary(
+                        new ByteArrayInputStream(BINARY));
+                try {
+                    properties.setProperty("binary", binary);
+                } finally {
+                    binary.dispose();
+                }
                 properties.setProperty("date", DATE);
                 properties.setProperty("decimal", new BigDecimal(123));
                 properties.setProperty("double", Math.PI);
@@ -101,6 +118,21 @@
                 properties.setProperty("string", "test");
                 properties.setProperty("multiple", "a,b,c".split(","));
                 session.save();
+
+                binary = properties.getProperty("binary").getBinary();
+                try {
+                    InputStream stream = binary.getStream();
+                    try {
+                        for (int i = 0; i < BINARY.length; i++) {
+                            assertEquals(BINARY[i], (byte) stream.read());
+                        }
+                        assertEquals(-1, stream.read());
+                    } finally {
+                        stream.close();
+                    }
+                } finally {
+                    binary.dispose();
+                }
             } finally {
                 session.logout();
             }
@@ -134,6 +166,23 @@
                 assertEquals(
                         true, properties.getProperty("boolean").getBoolean());
                 assertEquals(
+                        PropertyType.BINARY,
+                        properties.getProperty("binary").getType());
+                Binary binary = properties.getProperty("binary").getBinary();
+                try {
+                    InputStream stream = binary.getStream();
+                    try {
+                        for (int i = 0; i < BINARY.length; i++) {
+                            assertEquals(BINARY[i], (byte) stream.read());
+                        }
+                        assertEquals(-1, stream.read());
+                    } finally {
+                        stream.close();
+                    }
+                } finally {
+                    binary.dispose();
+                }
+                assertEquals(
                         PropertyType.DATE,
                         properties.getProperty("date").getType());
                 assertEquals(