@@ -0,0 +1,2333 @@
+package com.codeborne.selenide.impl;%0A%0Aimport com.codeborne.selenide.Condition;%0Aimport org.junit.Test;%0Aimport org.mockito.Mockito;%0Aimport org.openqa.selenium.WebElement;%0A%0Aimport java.lang.reflect.Field;%0Aimport java.util.Arrays;%0Aimport java.util.List;%0A%0Aimport static org.junit.Assert.assertEquals;%0Aimport static org.mockito.Mockito.when;%0A%0Apublic class FilteringCollectionTest %7B%0A%0A  @Test%0A  public void testConstructor() throws NoSuchFieldException, IllegalAccessException %7B%0A    WebElementsCollection mockedCollection = Mockito.mock(WebElementsCollection.class);%0A%0A    FilteringCollection filteringCollection = new FilteringCollection(mockedCollection, Condition.visible);%0A%0A    Field originalCollectionField = filteringCollection.getClass().getDeclaredField(%22originalCollection%22);%0A    originalCollectionField.setAccessible(true);%0A%0A    Field filterField = filteringCollection.getClass().getDeclaredField(%22filter%22);%0A    filterField.setAccessible(true);%0A%0A    assertEquals(mockedCollection, originalCollectionField.get(filteringCollection));%0A    assertEquals(Condition.visible, filterField.get(filteringCollection));%0A  %7D%0A%0A  @Test%0A  public void testGetActualElement() %7B%0A    WebElement mockedWebElement1 = Mockito.mock(WebElement.class);%0A    WebElement mockedWebElement2 = Mockito.mock(WebElement.class);%0A%0A    when(mockedWebElement1.isDisplayed()).thenReturn(false);%0A    when(mockedWebElement2.isDisplayed()).thenReturn(true);%0A%0A    WebElementsCollection mockedCollection = Mockito.mock(WebElementsCollection.class);%0A    when(mockedCollection.getActualElements()).thenReturn(Arrays.asList(mockedWebElement1, mockedWebElement2));%0A    FilteringCollection filteringCollection = new FilteringCollection(mockedCollection, Condition.visible);%0A%0A    List%3CWebElement%3E actualElements = filteringCollection.getActualElements();%0A    assertEquals(1, actualElements.size());%0A    assertEquals(mockedWebElement2, actualElements.get(0));%0A  %7D%0A%0A  @Test%0A  public void testDescription() %7B%0A    WebElementsCollection mockedCollection = Mockito.mock(WebElementsCollection.class);%0A    when(mockedCollection.description()).thenReturn(%22Collection description%22);%0A    FilteringCollection filteringCollection = new FilteringCollection(mockedCollection, Condition.visible);%0A    assertEquals(%22Collection description.filter(visible)%22, filteringCollection.description());%0A  %7D%0A%0A%7D%0A

add FilteringCollection unit tests