/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library 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 2.1 of the License, or (at your option)
* any later version.
*
* This library 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.
*/
package com.liferay.portal.search.web.internal.facet.display.context;
import com.liferay.portal.kernel.search.facet.Facet;
import com.liferay.portal.kernel.search.facet.collector.FacetCollector;
import com.liferay.portal.kernel.search.facet.collector.TermCollector;
import com.liferay.portal.kernel.test.util.RandomTestUtil;
import com.liferay.portal.kernel.util.StringPool;
import java.util.Collections;
import java.util.List;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
/**
* @author André de Oliveira
*/
public class AssetTagsSearchFacetDisplayContextTest {
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
Mockito.doReturn(
_facetCollector
).when(
_facet
).getFacetCollector();
}
@Test
public void testEmptySearchResults() throws Exception {
String facetParam = "";
AssetTagsSearchFacetDisplayContext assetTagsSearchFacetDisplayContext =
createDisplayContext(facetParam);
List<AssetTagsSearchFacetTermDisplayContext>
assetTagsSearchFacetTermDisplayContexts =
assetTagsSearchFacetDisplayContext.getTermDisplayContexts();
Assert.assertEquals(
assetTagsSearchFacetTermDisplayContexts.toString(), 0,
assetTagsSearchFacetTermDisplayContexts.size());
Assert.assertEquals(
facetParam,
assetTagsSearchFacetDisplayContext.getFieldParamInputValue());
Assert.assertTrue(
assetTagsSearchFacetDisplayContext.isNothingSelected());
Assert.assertTrue(assetTagsSearchFacetDisplayContext.isRenderNothing());
}
@Test
public void testEmptySearchResultsWithPreviousSelection() throws Exception {
String term = RandomTestUtil.randomString();
String facetParam = term;
AssetTagsSearchFacetDisplayContext assetTagsSearchFacetDisplayContext =
createDisplayContext(facetParam);
List<AssetTagsSearchFacetTermDisplayContext>
assetTagsSearchFacetTermDisplayContexts =
assetTagsSearchFacetDisplayContext.getTermDisplayContexts();
Assert.assertEquals(
assetTagsSearchFacetTermDisplayContexts.toString(), 1,
assetTagsSearchFacetTermDisplayContexts.size());
AssetTagsSearchFacetTermDisplayContext
assetTagsSearchFacetTermDisplayContext =
assetTagsSearchFacetTermDisplayContexts.get(0);
Assert.assertEquals(
term, assetTagsSearchFacetTermDisplayContext.getDisplayName());
Assert.assertEquals(
0, assetTagsSearchFacetTermDisplayContext.getFrequency());
Assert.assertEquals(
term, assetTagsSearchFacetTermDisplayContext.getValue());
Assert.assertTrue(assetTagsSearchFacetTermDisplayContext.isSelected());
Assert.assertTrue(
assetTagsSearchFacetTermDisplayContext.isShowFrequency());
Assert.assertEquals(
facetParam,
assetTagsSearchFacetDisplayContext.getFieldParamInputValue());
Assert.assertFalse(
assetTagsSearchFacetDisplayContext.isNothingSelected());
Assert.assertFalse(
assetTagsSearchFacetDisplayContext.isRenderNothing());
}
@Test
public void testOneTerm() throws Exception {
String term = RandomTestUtil.randomString();
int frequency = RandomTestUtil.randomInt();
setUpOneTermCollector(term, frequency);
String facetParam = StringPool.BLANK;
AssetTagsSearchFacetDisplayContext assetTagsSearchFacetDisplayContext =
createDisplayContext(facetParam);
List<AssetTagsSearchFacetTermDisplayContext>
assetTagsSearchFacetTermDisplayContexts =
assetTagsSearchFacetDisplayContext.getTermDisplayContexts();
Assert.assertEquals(
assetTagsSearchFacetTermDisplayContexts.toString(), 1,
assetTagsSearchFacetTermDisplayContexts.size());
AssetTagsSearchFacetTermDisplayContext
assetTagsSearchFacetTermDisplayContext =
assetTagsSearchFacetTermDisplayContexts.get(0);
Assert.assertEquals(
term, assetTagsSearchFacetTermDisplayContext.getDisplayName());
Assert.assertEquals(
frequency, assetTagsSearchFacetTermDisplayContext.getFrequency());
Assert.assertEquals(
term, assetTagsSearchFacetTermDisplayContext.getValue());
Assert.assertFalse(assetTagsSearchFacetTermDisplayContext.isSelected());
Assert.assertTrue(
assetTagsSearchFacetTermDisplayContext.isShowFrequency());
Assert.assertEquals(
facetParam,
assetTagsSearchFacetDisplayContext.getFieldParamInputValue());
Assert.assertTrue(
assetTagsSearchFacetDisplayContext.isNothingSelected());
Assert.assertFalse(
assetTagsSearchFacetDisplayContext.isRenderNothing());
}
@Test
public void testOneTermWithPreviousSelection() throws Exception {
String term = RandomTestUtil.randomString();
int frequency = RandomTestUtil.randomInt();
setUpOneTermCollector(term, frequency);
String facetParam = term;
AssetTagsSearchFacetDisplayContext assetTagsSearchFacetDisplayContext =
createDisplayContext(facetParam);
List<AssetTagsSearchFacetTermDisplayContext>
assetTagsSearchFacetTermDisplayContexts =
assetTagsSearchFacetDisplayContext.getTermDisplayContexts();
Assert.assertEquals(
assetTagsSearchFacetTermDisplayContexts.toString(), 1,
assetTagsSearchFacetTermDisplayContexts.size());
AssetTagsSearchFacetTermDisplayContext
assetTagsSearchFacetTermDisplayContext =
assetTagsSearchFacetTermDisplayContexts.get(0);
Assert.assertEquals(
term, assetTagsSearchFacetTermDisplayContext.getDisplayName());
Assert.assertEquals(
frequency, assetTagsSearchFacetTermDisplayContext.getFrequency());
Assert.assertEquals(
term, assetTagsSearchFacetTermDisplayContext.getValue());
Assert.assertTrue(assetTagsSearchFacetTermDisplayContext.isSelected());
Assert.assertTrue(
assetTagsSearchFacetTermDisplayContext.isShowFrequency());
Assert.assertEquals(
facetParam,
assetTagsSearchFacetDisplayContext.getFieldParamInputValue());
Assert.assertFalse(
assetTagsSearchFacetDisplayContext.isNothingSelected());
Assert.assertFalse(
assetTagsSearchFacetDisplayContext.isRenderNothing());
}
protected AssetTagsSearchFacetDisplayContext createDisplayContext(
String facetParam) {
return new AssetTagsSearchFacetDisplayContext(
_facet, facetParam, "cloud", 0, 0, true);
}
protected TermCollector createTermCollector(String term, int frequency) {
TermCollector termCollector = Mockito.mock(TermCollector.class);
Mockito.doReturn(
frequency
).when(
termCollector
).getFrequency();
Mockito.doReturn(
term
).when(
termCollector
).getTerm();
return termCollector;
}
protected void setUpOneTermCollector(String facetParam, int frequency) {
Mockito.doReturn(
Collections.singletonList(
createTermCollector(facetParam, frequency))
).when(
_facetCollector
).getTermCollectors();
}
@Mock
private Facet _facet;
@Mock
private FacetCollector _facetCollector;
}