You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by kw...@apache.org on 2019/08/27 06:26:36 UTC

svn commit: r1865971 - in /jackrabbit/commons/filevault/trunk/vault-core/src: main/java/org/apache/jackrabbit/vault/util/ test/java/org/apache/jackrabbit/vault/util/

Author: kwin
Date: Tue Aug 27 06:26:36 2019
New Revision: 1865971

URL: http://svn.apache.org/viewvc?rev=1865971&view=rev
Log:
JCRVLT-356 add equals and toString to DocViewNode and DocViewProperty

Migrate Unit tests to JUnit4

Added:
    jackrabbit/commons/filevault/trunk/vault-core/src/test/java/org/apache/jackrabbit/vault/util/DocViewNodeTest.java
Modified:
    jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/util/DocViewNode.java
    jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/util/DocViewProperty.java
    jackrabbit/commons/filevault/trunk/vault-core/src/test/java/org/apache/jackrabbit/vault/util/DocViewPropertyTest.java

Modified: jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/util/DocViewNode.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/util/DocViewNode.java?rev=1865971&r1=1865970&r2=1865971&view=diff
==============================================================================
--- jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/util/DocViewNode.java (original)
+++ jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/util/DocViewNode.java Tue Aug 27 06:26:36 2019
@@ -16,11 +16,11 @@
  ************************************************************************/
 package org.apache.jackrabbit.vault.util;
 
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;
 
 import javax.jcr.NamespaceException;
-import javax.jcr.Value;
 
 import org.apache.jackrabbit.spi.Name;
 import org.apache.jackrabbit.spi.commons.conversion.NamePathResolver;
@@ -93,4 +93,62 @@ public class DocViewNode {
         return prop == null ? null : prop.values[0];
     }
 
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((label == null) ? 0 : label.hashCode());
+        result = prime * result + Arrays.hashCode(mixins);
+        result = prime * result + ((name == null) ? 0 : name.hashCode());
+        result = prime * result + ((primary == null) ? 0 : primary.hashCode());
+        result = prime * result + ((props == null) ? 0 : props.hashCode());
+        result = prime * result + ((uuid == null) ? 0 : uuid.hashCode());
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        DocViewNode other = (DocViewNode) obj;
+        if (label == null) {
+            if (other.label != null)
+                return false;
+        } else if (!label.equals(other.label))
+            return false;
+        if (!Arrays.equals(mixins, other.mixins))
+            return false;
+        if (name == null) {
+            if (other.name != null)
+                return false;
+        } else if (!name.equals(other.name))
+            return false;
+        if (primary == null) {
+            if (other.primary != null)
+                return false;
+        } else if (!primary.equals(other.primary))
+            return false;
+        if (props == null) {
+            if (other.props != null)
+                return false;
+        } else if (!props.equals(other.props))
+            return false;
+        if (uuid == null) {
+            if (other.uuid != null)
+                return false;
+        } else if (!uuid.equals(other.uuid))
+            return false;
+        return true;
+    }
+
+    @Override
+    public String toString() {
+        return "DocViewNode [name=" + name + ", label=" + label + ", props=" + props + ", uuid=" + uuid + ", mixins="
+                + Arrays.toString(mixins) + ", primary=" + primary + "]";
+    }
+
 }
\ No newline at end of file

Modified: jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/util/DocViewProperty.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/util/DocViewProperty.java?rev=1865971&r1=1865970&r2=1865971&view=diff
==============================================================================
--- jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/util/DocViewProperty.java (original)
+++ jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/util/DocViewProperty.java Tue Aug 27 06:26:36 2019
@@ -439,4 +439,47 @@ public class DocViewProperty {
         return false;
     }
 
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + (isMulti ? 1231 : 1237);
+        result = prime * result + (isReferenceProperty ? 1231 : 1237);
+        result = prime * result + ((name == null) ? 0 : name.hashCode());
+        result = prime * result + type;
+        result = prime * result + Arrays.hashCode(values);
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        DocViewProperty other = (DocViewProperty) obj;
+        if (isMulti != other.isMulti)
+            return false;
+        if (isReferenceProperty != other.isReferenceProperty)
+            return false;
+        if (name == null) {
+            if (other.name != null)
+                return false;
+        } else if (!name.equals(other.name))
+            return false;
+        if (type != other.type)
+            return false;
+        if (!Arrays.equals(values, other.values))
+            return false;
+        return true;
+    }
+
+    @Override
+    public String toString() {
+        return "DocViewProperty [name=" + name + ", values=" + Arrays.toString(values) + ", isMulti=" + isMulti + ", type=" + type
+                + ", isReferenceProperty=" + isReferenceProperty + "]";
+    }
+
 }
\ No newline at end of file

Added: jackrabbit/commons/filevault/trunk/vault-core/src/test/java/org/apache/jackrabbit/vault/util/DocViewNodeTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault/trunk/vault-core/src/test/java/org/apache/jackrabbit/vault/util/DocViewNodeTest.java?rev=1865971&view=auto
==============================================================================
--- jackrabbit/commons/filevault/trunk/vault-core/src/test/java/org/apache/jackrabbit/vault/util/DocViewNodeTest.java (added)
+++ jackrabbit/commons/filevault/trunk/vault-core/src/test/java/org/apache/jackrabbit/vault/util/DocViewNodeTest.java Tue Aug 27 06:26:36 2019
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.vault.util;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.jcr.NamespaceException;
+import javax.jcr.PropertyType;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class DocViewNodeTest {
+
+    @Test
+    public void testEquals() throws NamespaceException {
+        Map<String, DocViewProperty> properties1 = new HashMap<>();
+        properties1.put("property1", new DocViewProperty("property1", new String[] {"value1"}, false, PropertyType.STRING));
+        DocViewNode node1 = new DocViewNode("name", "label", "uuid1", properties1, new String[] { "mixin1", "mixin2" }, "primary");
+        DocViewNode node2 = new DocViewNode("name", "label", "uuid1", properties1, new String[] { "mixin1", "mixin2" }, "primary");
+        Assert.assertEquals(node1, node2);
+        DocViewNode node3 = new DocViewNode("name", "label", "uuid1", properties1, new String[] { "mixin1", "mixin3" }, "primary");
+        Assert.assertNotEquals(node1, node3);
+    }
+}

Modified: jackrabbit/commons/filevault/trunk/vault-core/src/test/java/org/apache/jackrabbit/vault/util/DocViewPropertyTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault/trunk/vault-core/src/test/java/org/apache/jackrabbit/vault/util/DocViewPropertyTest.java?rev=1865971&r1=1865970&r2=1865971&view=diff
==============================================================================
--- jackrabbit/commons/filevault/trunk/vault-core/src/test/java/org/apache/jackrabbit/vault/util/DocViewPropertyTest.java (original)
+++ jackrabbit/commons/filevault/trunk/vault-core/src/test/java/org/apache/jackrabbit/vault/util/DocViewPropertyTest.java Tue Aug 27 06:26:36 2019
@@ -22,31 +22,45 @@ import javax.jcr.PropertyType;
 import javax.jcr.Value;
 import javax.jcr.nodetype.PropertyDefinition;
 
-import org.apache.jackrabbit.util.Text;
+import org.junit.Assert;
+import org.junit.Test;
 import org.mockito.Mockito;
 
-import junit.framework.TestCase;
 
 /**
  * {@code DocViewPropertyTest}...
  */
-public class DocViewPropertyTest extends TestCase {
+public class DocViewPropertyTest {
 
+    @Test
     public void testParseUndefined() {
         DocViewProperty p = DocViewProperty.parse("foo", "hello");
-        assertEquals(p, false, PropertyType.UNDEFINED, "hello");
+        Assert.assertEquals(new DocViewProperty("foo", new String[] {"hello"}, false, PropertyType.UNDEFINED), p);
     }
 
+    @Test
     public void testParseLong() {
         DocViewProperty p = DocViewProperty.parse("foo", "{Long}1234");
-        assertEquals(p, false, PropertyType.LONG, "1234");
+        Assert.assertEquals(new DocViewProperty("foo", new String[] {"1234"}, false, PropertyType.LONG), p);
     }
 
+    @Test
+    public void testEquals() {
+        DocViewProperty p1 = DocViewProperty.parse("foo", "{Long}1234");
+        DocViewProperty p2 = DocViewProperty.parse("foo", "{Long}1234");
+        Assert.assertEquals(p1, p2);
+        DocViewProperty p3 = DocViewProperty.parse("foo", "{String}1234");
+        Assert.assertNotEquals(p1, p3);
+    }
+
+    @Test
     public void testParseEmpty() {
         DocViewProperty p = DocViewProperty.parse("foo", "{Binary}");
-        assertEquals(p, false, PropertyType.BINARY, "");
+        Assert.assertEquals(new DocViewProperty("foo", new String[] { ""}, false, PropertyType.BINARY), p);
     }
 
+    
+    @Test
     public void testParseSpecial() {
         DocViewProperty p = DocViewProperty.parse("foo", "\\{hello, world}");
         assertEquals(p, false, PropertyType.UNDEFINED, "{hello, world}");
@@ -54,16 +68,19 @@ public class DocViewPropertyTest extends
         assertEquals(p, false, PropertyType.STRING, "[hello");
     }
 
+    @Test
     public void testParseStringTyped() {
         DocViewProperty p = DocViewProperty.parse("foo", "{String}hello");
         assertEquals(p, false, PropertyType.STRING, "hello");
     }
 
+    @Test
     public void testParseStringUnicode() {
         DocViewProperty p = DocViewProperty.parse("foo", "{String}he\\u000fllo");
         assertEquals(p, false, PropertyType.STRING, "he\u000fllo");
     }
 
+    @Test
     public void testParseMVString() {
         DocViewProperty p = DocViewProperty.parse("foo", "[hello,world]");
         assertEquals(p, true, PropertyType.UNDEFINED, "hello", "world");
@@ -71,6 +88,7 @@ public class DocViewPropertyTest extends
         assertEquals(p, true, PropertyType.UNDEFINED, "hello,world");
     }
 
+    @Test
     public void testParseEmptyMVStrings() {
         DocViewProperty p = DocViewProperty.parse("foo", "[,a,b,c]");
         assertEquals(p, true, PropertyType.UNDEFINED, "", "a", "b", "c");
@@ -80,6 +98,7 @@ public class DocViewPropertyTest extends
         assertEquals(p, true, PropertyType.UNDEFINED, "", "", "", "");
     }
 
+    @Test
     public void testParseMVSpecial() {
         DocViewProperty p = DocViewProperty.parse("foo", "[\\[hello,world]");
         assertEquals(p, true, PropertyType.UNDEFINED, "[hello", "world");
@@ -101,16 +120,19 @@ public class DocViewPropertyTest extends
         assertEquals(p, true, PropertyType.UNDEFINED, "/content/[a-z]{2,3}/[a-z]{2,3}(/.*)");
     }
 
+    @Test
     public void testParseMVLong() {
         DocViewProperty p = DocViewProperty.parse("foo", "{Long}[1,2]");
         assertEquals(p, true, PropertyType.LONG, "1", "2");
     }
 
+    @Test
     public void testParseMVLongEmpty() {
         DocViewProperty p = DocViewProperty.parse("foo", "{Long}[]");
         assertEquals(p, true, PropertyType.LONG);
     }
 
+    @Test
     public void testParseMVStringEmpty() {
         DocViewProperty p = DocViewProperty.parse("foo", "[]");
         assertEquals(p, true, PropertyType.UNDEFINED);
@@ -120,6 +142,7 @@ public class DocViewPropertyTest extends
      * Special test for mv properties with 1 empty string value (JCR-3661)
      * @throws Exception
      */
+    @Test
     public void testEmptyMVString() throws Exception {
         Property p = Mockito.mock(Property.class);
         Value value = Mockito.mock(Value.class);
@@ -135,13 +158,14 @@ public class DocViewPropertyTest extends
         Mockito.when(p.getDefinition()).thenReturn(pd);
 
         String result = DocViewProperty.format(p);
-        assertEquals("formatted property", "[\\0]", result);
+        Assert.assertEquals("formatted property", "[\\0]", result);
 
         // now round trip back
         DocViewProperty dp = DocViewProperty.parse("foo", result);
-        assertEquals(dp, true, PropertyType.UNDEFINED, "");
+        Assert.assertEquals(new DocViewProperty("foo", new String[] {""}, true, PropertyType.UNDEFINED), dp);
     }
 
+    @Test
     public void testEmptyMVBoolean() throws Exception {
         Property p = Mockito.mock(Property.class);
         Value value = Mockito.mock(Value.class);
@@ -157,13 +181,14 @@ public class DocViewPropertyTest extends
         Mockito.when(p.getDefinition()).thenReturn(pd);
 
         String result = DocViewProperty.format(p);
-        assertEquals("formatted property", "{Boolean}[false]", result);
+        Assert.assertEquals("formatted property", "{Boolean}[false]", result);
 
         // now round trip back
         DocViewProperty dp = DocViewProperty.parse("foo", result);
-        assertEquals(dp, true, PropertyType.BOOLEAN, "false");
+        Assert.assertEquals(new DocViewProperty("foo", new String[] {"false"}, true, PropertyType.BOOLEAN), dp);
     }
 
+    @Test
     public void testEscape() {
         assertEscaped("hello", "hello", false);
         assertEscaped("hello, world", "hello, world", false);
@@ -181,13 +206,11 @@ public class DocViewPropertyTest extends
     private void assertEscaped(String original, String expected, boolean multi) {
         StringBuffer buf = new StringBuffer();
         DocViewProperty.escape(buf, original, multi);
-        assertEquals(expected, buf.toString());
+        Assert.assertEquals(expected, buf.toString());
     }
 
-    private void assertEquals(DocViewProperty p, boolean m, int type, String ... values) {
-        assertEquals("Multiple", m, p.isMulti);
-        assertEquals("Type", type, p.type);
-        assertEquals("Array Length", values.length, p.values.length);
-        assertEquals("Values", Text.implode(values, ","), Text.implode(p.values, ","));
+    private void assertEquals(DocViewProperty p, boolean multi, int type, String... values) {
+        Assert.assertEquals(new DocViewProperty(p.name, values, multi, type), p);
     }
+
 }
\ No newline at end of file