public Section(@Nullable Group header, @NonNull Collection<? extends Group> children) { this.header = header; addAll(children); }
public void addAllWorksWithSets() { final Section testSection = new Section(); Set<Item> itemSet = new HashSet<>(); itemSet.add(new DummyItem()); itemSet.add(new DummyItem()); testSection.addAll(itemSet); Assert.assertEquals(2, testSection.getItemCount()); }
@Test(expected = IndexOutOfBoundsException.class) public void addAllAtNonZeroPositionWhenEmptyThrowIndexOutOfBoundsException() { final Section section = new Section(); section.registerGroupDataObserver(groupAdapter); section.addAll(1, Arrays.asList(new DummyItem(), new DummyItem())); }
@Test public void addAllAtPositionWhenEmptyNotifiesAdapterAtIndexZero() { final Section section = new Section(); section.registerGroupDataObserver(groupAdapter); section.addAll(0, Arrays.asList(new DummyItem(), new DummyItem())); verify(groupAdapter).onItemRangeInserted(section, 0, 2); }
@Test public void addAllAtPositionWhenNonEmptyNotifiesAdapterAtCorrectIndex() { final Section section = new Section(Arrays.asList(new DummyItem(), new DummyItem())); section.registerGroupDataObserver(groupAdapter); section.addAll(2, Arrays.asList(new DummyItem(), new DummyItem(), new DummyItem())); verify(groupAdapter).onItemRangeInserted(section, 2, 3); }
@Test public void addAllAtPositionWithEmptyNestedGroupNotifiesAdapterAtZeroIndex() { final Section nestedSection = new Section(); final Section section = new Section(); section.add(nestedSection); section.registerGroupDataObserver(groupAdapter); section.addAll(1, Arrays.asList(new DummyItem(), new DummyItem(), new DummyItem())); verify(groupAdapter).onItemRangeInserted(section, 0, 3); }
@Test public void addAllAtPositionEndWithNestedGroupNotifiesAdapterAtCorrectIndex() { final List<DummyItem> nestedItems = Arrays.asList(new DummyItem(), new DummyItem()); final Section nestedSection = new Section(nestedItems); final Section section = new Section(); section.add(nestedSection); section.registerGroupDataObserver(groupAdapter); section.addAll(1, Arrays.asList(new DummyItem(), new DummyItem())); verify(groupAdapter).onItemRangeInserted(section, 2, 2); }
@Test public void addAllAtPositionFrontWithNestedGroupNotifiesAdapterAtCorrectIndex() { final List<DummyItem> nestedItems = Arrays.asList(new DummyItem(), new DummyItem()); final Section nestedSection = new Section(nestedItems); final Section section = new Section(); section.add(nestedSection); section.registerGroupDataObserver(groupAdapter); section.addAll(0, Arrays.asList(new DummyItem(), new DummyItem(), new DummyItem())); verify(groupAdapter).onItemRangeInserted(section, 0, 3); }
@Test public void addAllAtPositionMiddleWithNestedGroupNotifiesAdapterAtCorrectIndex() { final Section nestedSection1 = new Section(Arrays.asList(new DummyItem(), new DummyItem())); final Section nestedSection2 = new Section(Arrays.asList(new DummyItem(), new DummyItem())); final Section section = new Section(Arrays.asList(nestedSection1, nestedSection2)); section.registerGroupDataObserver(groupAdapter); section.addAll(1, Arrays.asList(new DummyItem(), new DummyItem(), new DummyItem())); verify(groupAdapter).onItemRangeInserted(section, 2, 3); }