@Test
public void testBuildChain() throws Exception {
final ChainBuilder<HttpRequestInterceptor> cb = new ChainBuilder<>();
final HttpRequestInterceptor i1 = new RequestContent();
final HttpRequestInterceptor i2 = new RequestTargetHost();
final HttpRequestInterceptor i3 = new RequestConnControl();
final HttpRequestInterceptor i4 = new RequestUserAgent();
final HttpRequestInterceptor i5 = new RequestExpectContinue();
cb.addFirst(i1);
cb.addAllFirst(i2, i3);
cb.addFirst(null);
cb.addAllFirst((List<HttpRequestInterceptor>) null);
cb.addLast(i4);
cb.addLast(null);
cb.addAllLast(i5);
cb.addAllLast((List<HttpRequestInterceptor>) null);
cb.addFirst(i1);
cb.addAllLast(i3, i4, i5);
final LinkedList<HttpRequestInterceptor> list = cb.build();
Assert.assertNotNull(list);
Assert.assertEquals(5, list.size());
Assert.assertSame(i1, list.get(0));
Assert.assertSame(i2, list.get(1));
Assert.assertSame(i3, list.get(2));
Assert.assertSame(i4, list.get(3));
Assert.assertSame(i5, list.get(4));
}