CollectionPresenter implements CollectionView.Presenter { @Override public void addMapItem(Map<String, String> keyPropertiesValues, Map<String, String> valuePropertiesValues) { final UListElement elementsContainer = collectionView.getElementsContainer(); String itemId = String.valueOf(elementsContainer.getChildCount() - 1); final LIElement itemElement = mapElementPresenter.getKeyValueContainer(itemId, keyPropertiesValues, valuePropertiesValues); elementsContainer.appendChild(itemElement); toggleEditingStatus(false); }  @Override void initListStructure(String key, Map<String, String> simplePropertiesMap, Map<String, Map<String, String>> expandablePropertiesMap, CollectionView collectionView); @Override void initMapStructure(String key, Map<String, String> keyPropertyMap, Map<String, String> valuePropertyMap, CollectionView collectionView); @Override void setValue(String jsonString); @Override void showEditingBox(); @Override void onToggleRowExpansion(boolean isShown); @Override void updateRowExpansionStatus(boolean isShown); @Override void addListItem(Map<String, String> simplePropertiesValues, Map<String, Map<String, String>> expandablePropertiesValues); @Override void addMapItem(Map<String, String> keyPropertiesValues, Map<String, String> valuePropertiesValues); @Override void save(); @Override void remove(); @Override void toggleEditingStatus(boolean editingStatus);  }
@Test public void addMapItem() { collectionEditorPresenterSpy.addMapItem(keyPropertyMapLocal, propertyMapLocal); verify(collectionViewMock, times(1)).getElementsContainer(); verify(elementsContainerMock, times(1)).getChildCount(); verify(mapElementPresenterMock, times(1)).getKeyValueContainer(eq(ITEM_ID), eq(keyPropertyMapLocal), eq(propertyMapLocal)); verify(elementsContainerMock, times(1)).appendChild(eq(itemElementMock)); verify(collectionEditorPresenterSpy, times(1)).toggleEditingStatus(eq(false)); }