/* * Copyright 2015 Hewlett-Packard Development Company, L.P. * Licensed under the MIT License (the "License"); you may not use this file except in compliance with the License. */ package com.hp.autonomy.frontend.find.hod.search; import com.hp.autonomy.frontend.find.core.search.AbstractDocumentsControllerTest; import com.hp.autonomy.hod.client.api.resource.ResourceName; import com.hp.autonomy.hod.client.error.HodErrorException; import com.hp.autonomy.searchcomponents.hod.search.*; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import org.springframework.beans.factory.ObjectFactory; import static org.mockito.Matchers.*; import static org.mockito.Mockito.when; @RunWith(MockitoJUnitRunner.class) public class HodDocumentsControllerTest extends AbstractDocumentsControllerTest<HodQueryRequest, HodSuggestRequest, HodGetContentRequest, ResourceName, HodQueryRestrictions, HodGetContentRequestIndex, HodSearchResult, HodErrorException> { @Mock private HodDocumentsService hodDocumentsService; @Mock private ObjectFactory<HodQueryRestrictionsBuilder> queryRestrictionsBuilderFactory; @Mock private HodQueryRestrictionsBuilder queryRestrictionsBuilder; @Mock private ObjectFactory<HodQueryRequestBuilder> queryRequestBuilderFactory; @Mock private HodQueryRequestBuilder queryRequestBuilder; @Mock private ObjectFactory<HodSuggestRequestBuilder> suggestRequestBuilderFactory; @Mock private HodSuggestRequestBuilder suggestRequestBuilder; @Mock private ObjectFactory<HodGetContentRequestBuilder> getContentRequestBuilderFactory; @Mock private HodGetContentRequestBuilder getContentRequestBuilder; @Mock private ObjectFactory<HodGetContentRequestIndexBuilder> getContentRequestIndexBuilderFactory; @Mock private HodGetContentRequestIndexBuilder getContentRequestIndexBuilder; @Before public void setUp() { when(queryRestrictionsBuilderFactory.getObject()).thenReturn(queryRestrictionsBuilder); when(queryRestrictionsBuilder.queryText(anyString())).thenReturn(queryRestrictionsBuilder); when(queryRestrictionsBuilder.fieldText(anyString())).thenReturn(queryRestrictionsBuilder); when(queryRestrictionsBuilder.databases(any())).thenReturn(queryRestrictionsBuilder); when(queryRestrictionsBuilder.minDate(any())).thenReturn(queryRestrictionsBuilder); when(queryRestrictionsBuilder.maxDate(any())).thenReturn(queryRestrictionsBuilder); when(queryRestrictionsBuilder.minScore(anyInt())).thenReturn(queryRestrictionsBuilder); when(queryRestrictionsBuilder.stateMatchIds(any())).thenReturn(queryRestrictionsBuilder); when(queryRestrictionsBuilder.stateDontMatchIds(any())).thenReturn(queryRestrictionsBuilder); when(queryRequestBuilderFactory.getObject()).thenReturn(queryRequestBuilder); mockSearchRequestBuilder(queryRequestBuilder); when(queryRequestBuilder.autoCorrect(anyBoolean())).thenReturn(queryRequestBuilder); when(queryRequestBuilder.queryType(any())).thenReturn(queryRequestBuilder); when(queryRequestBuilder.summary(any())).thenReturn(queryRequestBuilder); when(queryRequestBuilder.sort(any())).thenReturn(queryRequestBuilder); when(suggestRequestBuilderFactory.getObject()).thenReturn(suggestRequestBuilder); when(suggestRequestBuilder.reference(any())).thenReturn(suggestRequestBuilder); mockSearchRequestBuilder(suggestRequestBuilder); when(suggestRequestBuilder.summary(any())).thenReturn(suggestRequestBuilder); when(suggestRequestBuilder.sort(any())).thenReturn(suggestRequestBuilder); when(getContentRequestBuilderFactory.getObject()).thenReturn(getContentRequestBuilder); when(getContentRequestIndexBuilderFactory.getObject()).thenReturn(getContentRequestIndexBuilder); when(getContentRequestIndexBuilder.index(any())).thenReturn(getContentRequestIndexBuilder); when(getContentRequestIndexBuilder.reference(any())).thenReturn(getContentRequestIndexBuilder); when(getContentRequestBuilder.indexAndReferences(any())).thenReturn(getContentRequestBuilder); when(getContentRequestBuilder.print(any())).thenReturn(getContentRequestBuilder); documentsController = new HodDocumentsController(hodDocumentsService, queryRestrictionsBuilderFactory, queryRequestBuilderFactory, suggestRequestBuilderFactory, getContentRequestBuilderFactory, getContentRequestIndexBuilderFactory); documentsService = hodDocumentsService; databaseType = ResourceName.class; } @Override protected HodSearchResult sampleResult() { return HodSearchResult.builder().build(); } @Override protected String getSort() { return "relevance"; } @Test(expected = HodErrorException.class) public void getDocumentContentNotFound() throws HodErrorException { documentsController.getDocumentContent("Some Reference", null); } }