SEARCH-2202 Fix NPE issues and add unit test for BoundedDeque.

This commit is contained in:
Tom Page
2020-04-24 17:09:20 +01:00
parent dc019bcc04
commit e0cee5c5e7
3 changed files with 60 additions and 3 deletions
@@ -43,7 +43,7 @@ public class AclChangeSets
AclChangeSets(List<AclChangeSet> aclChangeSets, Long maxChangeSetCommitTime, Long maxChangeSetId)
{
this.aclChangeSets = new ArrayList<>(aclChangeSets);
this.aclChangeSets = (aclChangeSets == null ? null : new ArrayList<>(aclChangeSets));
this.maxChangeSetCommitTime = maxChangeSetCommitTime;
this.maxChangeSetId = maxChangeSetId;
}
@@ -51,8 +51,8 @@ public class AclReaders
public AclReaders(long id, List<String> readers, List<String> denied, long aclChangeSetId, String tenantDomain)
{
this.id = id;
this.readers = new ArrayList<>(readers);
this.denied = new ArrayList<>(denied);
this.readers = (readers == null ? null : new ArrayList<>(readers));
this.denied = (denied == null ? null : new ArrayList<>(denied));
this.aclChangeSetId = aclChangeSetId;
this.tenantDomain = tenantDomain;
}
@@ -0,0 +1,57 @@
/*
* #%L
* Alfresco Solr Client
* %%
* Copyright (C) 2005 - 2016 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
*
* 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 <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.solr;
import static java.util.Arrays.asList;
import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import java.util.concurrent.LinkedBlockingDeque;
import org.junit.Test;
/** Unit tests for the {@link BoundedDeque}. */
public class BoundedDequeTest
{
/** Check that earlier entries are removed from the BoundedDeque. */
@Test
public void testBoundedness()
{
// Create a BoundedDeque with size two.
BoundedDeque<Object> boundedDeque = new BoundedDeque<>(2);
// Add three things.
boundedDeque.add("A");
boundedDeque.add("B");
boundedDeque.add("C");
// Check that the latest two are still there.
LinkedBlockingDeque<Object> actual = boundedDeque.getDeque();
assertEquals("Unexpected entries in BoundedDeque.", asList("C", "B"), new ArrayList(actual));
}
}