package com.github.marschall.memoryfilesystem;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertSame;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import org.junit.Test;
public class CompositeListTest {
@Test
public void create() {
List<String> a = Collections.singletonList("a");
List<String> b = Collections.singletonList("b");
assertEquals(Arrays.asList("a", "b"), CompositeList.create(a, b));
}
@Test
public void createOneEmpty() {
List<String> emptyList = Collections.emptyList();
List<String> singletonList = Collections.singletonList("x");
assertSame(singletonList, CompositeList.create(emptyList, singletonList));
assertSame(singletonList, CompositeList.create(singletonList, emptyList));
}
@Test
public void subList() {
List<String> first = Arrays.asList("1", "2", "3");
List<String> second = Arrays.asList("4", "5", "6");
List<String> composite = CompositeList.create(first, second);
assertSame(first, composite.subList(0, 3));
assertSame(second, composite.subList(3, 6));
assertSame(composite, composite.subList(0, 6));
assertSame(Collections.emptyList(), composite.subList(0, 0));
assertEquals(Collections.singletonList("1"), composite.subList(0, 1));
assertEquals(Arrays.asList("1", "2"), composite.subList(0, 2));
assertEquals(Arrays.asList("1", "2", "3", "4"), composite.subList(0, 4));
assertEquals(Arrays.asList("2", "3", "4"), composite.subList(1, 4));
assertEquals(Arrays.asList("3", "4"), composite.subList(2, 4));
assertEquals(Arrays.asList("3", "4", "5"), composite.subList(2, 5));
assertEquals(Arrays.asList("5", "6"), composite.subList(4, 6));
}
}