@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)); }