package hudson.model;
import static org.junit.Assert.assertEquals;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static org.powermock.api.mockito.PowerMockito.mockStatic;
import hudson.views.ListViewColumn;
import java.io.IOException;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
@RunWith(PowerMockRunner.class)
public class ListViewTest {
private interface ItemGroupOfNonTopLevelItem extends TopLevelItem, ItemGroup<Item> {}
@Test
@PrepareForTest({ListViewColumn.class,Items.class})
public void listItemRecurseWorksWithNonTopLevelItems() throws IOException{
mockStatic(Items.class);
mockStatic(ListViewColumn.class);
List<ListViewColumn> columns = Collections.emptyList();
when(ListViewColumn.createDefaultInitialColumnList()).thenReturn(columns);
ViewGroup owner = mock(ViewGroup.class);
ItemGroup itemGroupOwner = mock(ItemGroup.class);
when(owner.getItemGroup()).thenReturn(itemGroupOwner);
ListView lv = new ListView("test", owner);
ItemGroupOfNonTopLevelItem ig = Mockito.mock(ItemGroupOfNonTopLevelItem.class);
when(Items.getAllItems(eq(itemGroupOwner), eq(TopLevelItem.class))).thenReturn(Arrays.asList((TopLevelItem) ig));
when(ig.getRelativeNameFrom(any(ItemGroup.class))).thenReturn("test-item");
lv.setRecurse(true);
lv.add(ig);
assertEquals(1, lv.getItems().size());
}
@Test
@PrepareForTest({ListViewColumn.class,Items.class})
public void includeRegexProgrammatic() {
mockStatic(Items.class);
mockStatic(ListViewColumn.class);
List<ListViewColumn> columns = Collections.emptyList();
when(ListViewColumn.createDefaultInitialColumnList()).thenReturn(columns);
ViewGroup owner = mock(ViewGroup.class);
ItemGroup ig = mock(ItemGroup.class);
when(owner.getItemGroup()).thenReturn(ig);
ListView view = new ListView("test", owner);
view.setIncludeRegex(".*");
TopLevelItem it = Mockito.mock(TopLevelItem.class);
List<TopLevelItem> igContent = Arrays.asList((TopLevelItem) it);
when(Items.getAllItems(eq(ig), eq(TopLevelItem.class))).thenReturn(igContent);
when(ig.getItems()).thenReturn(igContent);
when(it.getRelativeNameFrom(any(ItemGroup.class))).thenReturn("test-item");
assertEquals(1, view.getItems().size());
}
}