@Test public void testGroupCollapseFilterFieldAllFiltered() throws IOException { mockResponse(true); when(rb.grouping()).thenReturn(true); when(params.getBool(GroupCollapseParams.GROUP_COLLAPSE, false)).thenReturn(true); when(params.get(GroupCollapseParams.GROUP_COLLAPSE_FL)) .thenReturn("price,discount,isCloseout,color,colorFamily"); when(params.get(GroupCollapseParams.GROUP_COLLAPSE_FF)).thenReturn(FIELD_CLOSEOUT); component.process(rb); verify(rb).grouping(); verify(rb).getGroupingSpec(); verify(params).getBool(GroupCollapseParams.GROUP_COLLAPSE, false); verify(params).get(GroupCollapseParams.GROUP_COLLAPSE_FL); verify(params).get(GroupCollapseParams.GROUP_COLLAPSE_FF); verify(params).getParams(GroupCollapseParams.GROUP_COLLAPSE_FQ); verifyNoMoreInteractions(rb); verifyNoMoreInteractions(params); ArgumentCaptor<NamedList> namedListArgument = ArgumentCaptor.forClass(NamedList.class); verify(rsp).add(eq("groups_summary"), namedListArgument.capture()); NamedList groupsSummary = namedListArgument.getValue(); NamedList productId = (NamedList) groupsSummary.get("productId"); assertNotNull(productId); Set<String> colorFamilies = new HashSet<String>(); colorFamilies.add("RedColorFamily"); colorFamilies.add("BlackColorFamily"); verifyProductSummary( (NamedList) productId.get("product1"), 80.0f, 100.0f, 0.0f, 20.0f, 2, colorFamilies); colorFamilies = new HashSet<String>(); colorFamilies.add("OrangeColorFamily"); colorFamilies.add("BrownColorFamily"); verifyProductSummary( (NamedList) productId.get("product2"), 60.0f, 80.0f, 20.0f, 40.0f, 2, colorFamilies); }
@Test public void testNoGrouping() throws IOException { when(rb.grouping()).thenReturn(false); component.process(rb); verify(rb).grouping(); verifyNoMoreInteractions(rb); }
@Test public void testNoGroupCollapse() throws IOException { when(rb.grouping()).thenReturn(true); when(params.getBool(GroupCollapseParams.GROUP_COLLAPSE, false)).thenReturn(false); component.process(rb); verify(rb).grouping(); verify(params).getBool(GroupCollapseParams.GROUP_COLLAPSE, false); verifyNoMoreInteractions(rb); verifyNoMoreInteractions(params); }
@Test public void testGroupCollapseNoGroups() throws IOException { NamedList values = mock(NamedList.class); when(rsp.getValues()).thenReturn(values); when(values.get("grouped")).thenReturn(null); when(rb.grouping()).thenReturn(true); when(params.getBool(GroupCollapseParams.GROUP_COLLAPSE, false)).thenReturn(true); when(params.get(GroupCollapseParams.GROUP_COLLAPSE_FL)).thenReturn("price,discount,isCloseout"); component.process(rb); verify(rsp, never()).add(anyString(), anyObject()); }