diff --git a/search-services/alfresco-solrclient-lib/source/java/org/alfresco/solr/client/AclReaders.java b/search-services/alfresco-solrclient-lib/source/java/org/alfresco/solr/client/AclReaders.java index 6d039d4b8..0b880208e 100644 --- a/search-services/alfresco-solrclient-lib/source/java/org/alfresco/solr/client/AclReaders.java +++ b/search-services/alfresco-solrclient-lib/source/java/org/alfresco/solr/client/AclReaders.java @@ -18,7 +18,6 @@ */ package org.alfresco.solr.client; -import java.util.Collections; import java.util.List; /** @@ -53,18 +52,21 @@ public class AclReaders return "AclReaders [id=" + id + ", readers=" + readers + ", denied=" + denied + ", tenantDomain=" + tenantDomain + "]"; } + /** + * ID should be enough for hashCode() and equals(). + */ @Override public int hashCode() { final int prime = 31; int result = 1; - result = prime * result + (int) (aclChangeSetId ^ (aclChangeSetId >>> 32)); result = prime * result + (int) (id ^ (id >>> 32)); - result = prime * result + ((readers == null) ? 0 : readers.hashCode()); - result = prime * result + ((denied == null) ? 0 : denied.hashCode()); return result; } + /** + * ID should be enough for hashCode() and equals(). + */ @Override public boolean equals(Object obj) { @@ -75,24 +77,8 @@ public class AclReaders if (getClass() != obj.getClass()) return false; AclReaders other = (AclReaders) obj; - if (aclChangeSetId != other.aclChangeSetId) - return false; if (id != other.id) return false; - if (readers == null) - { - if (other.readers != null) - return false; - } - else if (!readers.equals(other.readers)) - return false; - if (denied == null) - { - if (other.denied != null) - return false; - } - else if (!denied.equals(other.denied)) - return false; return true; } @@ -108,7 +94,7 @@ public class AclReaders public List getDenied() { - return readers; + return denied; } public long getAclChangeSetId() diff --git a/search-services/alfresco-solrclient-lib/source/test-java/org/alfresco/solr/client/AclReadersTest.java b/search-services/alfresco-solrclient-lib/source/test-java/org/alfresco/solr/client/AclReadersTest.java new file mode 100644 index 000000000..8dbc6cedc --- /dev/null +++ b/search-services/alfresco-solrclient-lib/source/test-java/org/alfresco/solr/client/AclReadersTest.java @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2005-2014 Alfresco Software Limited. + * + * This file is part of Alfresco + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + */ +package org.alfresco.solr.client; + +import static java.util.Arrays.asList; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +/** + * Some simple sanity tests for the {@link AclReaders} class. + * + * @author Matt Ward + */ +public class AclReadersTest +{ + @Test + public void testHashCode() + { + // We only care about ID for equals() and hashCode() + + // The same ID + assertEquals(new AclReaders(123, null, null, 0, null).hashCode(), + new AclReaders(123, null, null, 0, null).hashCode()); + + // Different ID + assertNotEquals(new AclReaders(123, null, null, 0, null).hashCode(), + new AclReaders(124, null, null, 0, null).hashCode()); + } + + @Test + public void testEqualsObject() + { + // The very same + final AclReaders aclReaders = new AclReaders(0, null, null, 0, null); + assertTrue(aclReaders.equals(aclReaders)); + + // The same ID + assertEquals(new AclReaders(123, null, null, 0, null), + new AclReaders(123, null, null, 0, null)); + + // Different ID + assertNotEquals(new AclReaders(123, null, null, 0, null), + new AclReaders(124, null, null, 0, null)); + } + + @Test + public void testGetReaders() + { + AclReaders aclReaders = new AclReaders(0, null, asList("d1", "d2"), 0, null); + assertEquals(asList("d1", "d2"), aclReaders.getDenied()); + } + + @Test + public void testGetDenied() + { + AclReaders aclReaders = new AclReaders(0, asList("r1", "r2", "r3"), null, 0, null); + assertEquals(asList("r1", "r2", "r3"), aclReaders.getReaders()); + } +}