You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by fe...@apache.org on 2010/05/20 20:11:49 UTC

svn commit: r946737 - in /directory/shared/trunk/ldap/src: main/java/org/apache/directory/shared/ldap/schema/SyntaxChecker.java test/java/org/apache/directory/shared/ldap/schema/SyntaxCheckerTest.java

Author: felixk
Date: Thu May 20 18:11:49 2010
New Revision: 946737

URL: http://svn.apache.org/viewvc?rev=946737&view=rev
Log:
- Override hashCode when overriding equals
- Adding simple testcases

Added:
    directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/SyntaxCheckerTest.java   (with props)
Modified:
    directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/SyntaxChecker.java

Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/SyntaxChecker.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/SyntaxChecker.java?rev=946737&r1=946736&r2=946737&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/SyntaxChecker.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/SyntaxChecker.java Thu May 20 18:11:49 2010
@@ -85,8 +85,23 @@ public abstract class SyntaxChecker exte
 
 
     /**
+     * {@inheritDoc}
+     */
+    @Override
+    public int hashCode()
+    {
+        int hash = 37;
+        hash = hash * 17 + getClass().getName().hashCode();
+        hash=hash * 17 + super.hashCode();
+        
+        return hash;
+    }
+
+
+    /**
      * @see Object#equals()
      */
+    @Override
     public boolean equals( Object o )
     {
         if ( !super.equals( o ) )

Added: directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/SyntaxCheckerTest.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/SyntaxCheckerTest.java?rev=946737&view=auto
==============================================================================
--- directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/SyntaxCheckerTest.java (added)
+++ directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/SyntaxCheckerTest.java Thu May 20 18:11:49 2010
@@ -0,0 +1,120 @@
+/*
+ *  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.directory.shared.ldap.schema;
+
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+
+import org.apache.directory.shared.ldap.schema.syntaxCheckers.AccessPointSyntaxChecker;
+import org.apache.directory.shared.ldap.schema.syntaxCheckers.CountrySyntaxChecker;
+import org.junit.Before;
+import org.junit.Test;
+
+
+/**
+ * Unit tests class SyntaxChecker.
+ * 
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$
+ */
+public class SyntaxCheckerTest
+{
+    SyntaxChecker objectClassA;
+    SyntaxChecker objectClassACopy;
+    SyntaxChecker objectClassB;
+    SyntaxChecker objectClassC;
+
+
+    /**
+     * Initialize name instances
+     */
+    @Before
+    public void initNames() throws Exception
+    {
+        objectClassA = new AccessPointSyntaxChecker();
+        objectClassACopy = new AccessPointSyntaxChecker();
+        objectClassB = new AccessPointSyntaxChecker();
+        objectClassC = new CountrySyntaxChecker();
+    }
+
+
+    @Test
+    public void testEqualsNull() throws Exception
+    {
+        assertFalse( objectClassA.equals( null ) );
+    }
+
+
+    @Test
+    public void testEqualsReflexive() throws Exception
+    {
+        assertEquals( objectClassA, objectClassA );
+    }
+
+
+    @Test
+    public void testHashCodeReflexive() throws Exception
+    {
+        assertEquals( objectClassA.hashCode(), objectClassA.hashCode() );
+    }
+
+
+    @Test
+    public void testEqualsSymmetric() throws Exception
+    {
+        assertEquals( objectClassA, objectClassACopy );
+        assertEquals( objectClassACopy, objectClassA );
+    }
+
+
+    @Test
+    public void testHashCodeSymmetric() throws Exception
+    {
+        assertEquals( objectClassA.hashCode(), objectClassACopy.hashCode() );
+        assertEquals( objectClassACopy.hashCode(), objectClassA.hashCode() );
+    }
+
+
+    @Test
+    public void testEqualsTransitive() throws Exception
+    {
+        assertEquals( objectClassA, objectClassACopy );
+        assertEquals( objectClassACopy, objectClassB );
+        assertEquals( objectClassA, objectClassB );
+    }
+
+
+    @Test
+    public void testHashCodeTransitive() throws Exception
+    {
+        assertEquals( objectClassA.hashCode(), objectClassACopy.hashCode() );
+        assertEquals( objectClassACopy.hashCode(), objectClassB.hashCode() );
+        assertEquals( objectClassA.hashCode(), objectClassB.hashCode() );
+    }
+
+
+    @Test
+    public void testNotEqualDiffValue() throws Exception
+    {
+        assertFalse( objectClassA.equals( objectClassC ) );
+        assertFalse( objectClassC.equals( objectClassA ) );
+    }
+}

Propchange: directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/SyntaxCheckerTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/SyntaxCheckerTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision