From 8823fd7e1dcc9bf0680469209ba631f3189216b7 Mon Sep 17 00:00:00 2001 From: Tom Page Date: Fri, 4 Sep 2020 16:30:15 +0100 Subject: [PATCH] SEARCH-2368 Add test to check what happens when start and end dates are omitted. Nb. The behaviour for SolrParams.getLong() is different in older releases. --- .../solr/AlfrescoCoreAdminHandlerTest.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoCoreAdminHandlerTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoCoreAdminHandlerTest.java index 4c419480c..4eb97a2e5 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoCoreAdminHandlerTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoCoreAdminHandlerTest.java @@ -60,6 +60,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.mock; @@ -69,6 +70,7 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoInteractions; import static org.mockito.Mockito.when; +import org.alfresco.error.AlfrescoRuntimeException; import org.alfresco.solr.adapters.IOpenBitSet; import org.alfresco.solr.adapters.SolrOpenBitSetAdapter; import org.alfresco.solr.client.SOLRAPIClient; @@ -152,6 +154,33 @@ public class AlfrescoCoreAdminHandlerTest assertEquals(UNPROCESSABLE_REQUEST_ON_SLAVE_NODES, actionResponse.get(ACTION_ERROR_MESSAGE_LABEL)); } + @Test + public void noStartEndDatesInParamsForFix() throws Exception + { + // An exception to allow us to return once we've tested the relevant code. + // Controlling execution with exceptions isn't stylish, but it's effective. + class EndOfTest extends RuntimeException {} + + params.set(CORE, ALFRESCO_CORE_NAME); + MetadataTracker metadataTracker = mock(MetadataTracker.class); + when(registry.getTrackerForCore(ALFRESCO_CORE_NAME, MetadataTracker.class)).thenReturn(metadataTracker); + when(metadataTracker.checkIndex(any(), any(), any())).thenThrow(new EndOfTest()); + + try + { + // Call the method under test. + admin.actionFIX(params); + fail("Expected 'End of test' exception to be thrown."); + } + catch (AlfrescoRuntimeException e) + { + assertEquals("Expected AlfrescoRuntimeException to be caused by the EndOfTest exception.", + e.getCause().getClass(), EndOfTest.class); + // Check that the start and end dates were set to null. + verify(metadataTracker).checkIndex(null, null, null); + } + } + @Test public void maxTransactionScheduledParameterIsNotNull() {