/* * 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.view; import com.hp.autonomy.frontend.find.core.view.AbstractViewControllerTest; import com.hp.autonomy.frontend.find.core.web.ErrorModelAndViewInfo; import com.hp.autonomy.hod.client.api.authentication.HodAuthenticationFailedException; import com.hp.autonomy.hod.client.api.resource.ResourceName; import com.hp.autonomy.hod.client.error.HodError; import com.hp.autonomy.hod.client.error.HodErrorException; import com.hp.autonomy.searchcomponents.hod.view.HodViewRequest; import com.hp.autonomy.searchcomponents.hod.view.HodViewRequestBuilder; import com.hp.autonomy.searchcomponents.hod.view.HodViewServerService; 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 org.springframework.context.NoSuchMessageException; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; import java.io.IOException; import java.io.OutputStream; import static org.junit.Assert.assertNotNull; import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyString; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.*; @RunWith(MockitoJUnitRunner.class) public class HodViewControllerTest extends AbstractViewControllerTest<HodViewController, HodViewRequest, ResourceName, HodErrorException> { @Mock private HodViewServerService hodViewServerService; @Mock private ObjectFactory<HodViewRequestBuilder> viewRequestBuilderFactory; @Mock private HodViewRequestBuilder viewRequestBuilder; @Override @Before public void setUp() { when(viewRequestBuilderFactory.getObject()).thenReturn(viewRequestBuilder); when(viewRequestBuilder.documentReference(any())).thenReturn(viewRequestBuilder); when(viewRequestBuilder.database(any())).thenReturn(viewRequestBuilder); when(viewRequestBuilder.highlightExpression(any())).thenReturn(viewRequestBuilder); viewController = new HodViewController(hodViewServerService, viewRequestBuilderFactory, controllerUtils); viewServerService = hodViewServerService; response = new MockHttpServletResponse(); super.setUp(); } @Override protected ResourceName getSampleDatabase() { return ResourceName.WIKI_ENG; } @Test public void viewStaticContentPromotion() throws IOException, HodErrorException { final String reference = "SomeReference"; viewController.viewStaticContentPromotion(reference, new MockHttpServletResponse()); verify(viewServerService).viewStaticContentPromotion(eq(reference), any(OutputStream.class)); } @Test public void handleKnownHodErrorException() { when(controllerUtils.getMessage(anyString(), any(Object[].class))).thenReturn("Some known error message"); assertNotNull(viewController.handleHodErrorException(new HodErrorException(new HodError.Builder().build(), 400), new MockHttpServletRequest(), new MockHttpServletResponse())); verify(controllerUtils).buildErrorModelAndView(any(ErrorModelAndViewInfo.class)); } @Test public void handleUnknownHodErrorException() { when(controllerUtils.getMessage(anyString(), any(Object[].class))).thenThrow(new NoSuchMessageException("")).thenReturn(null); assertNotNull(viewController.handleHodErrorException(new HodErrorException(new HodError.Builder().build(), 400), new MockHttpServletRequest(), new MockHttpServletResponse())); verify(controllerUtils).buildErrorModelAndView(any(ErrorModelAndViewInfo.class)); } @Test public void hodAuthenticationFailedException() { assertNotNull(viewController.hodAuthenticationFailedException(mock(HodAuthenticationFailedException.class), new MockHttpServletRequest(), new MockHttpServletResponse())); verify(controllerUtils).buildErrorModelAndView(any(ErrorModelAndViewInfo.class)); } @Test public void handleGeneralException() { assertNotNull(viewController.handleGeneralException(new Exception(), new MockHttpServletRequest(), new MockHttpServletResponse())); verify(controllerUtils).buildErrorModelAndView(any(ErrorModelAndViewInfo.class)); } }