@Test
public void testFormat () throws Exception {

    final List <NameValuePair> params = new ArrayList <NameValuePair>();
    Assert.assertEquals(0, URLEncodedUtils.format(params, null).length());
    params.clear();
    params.add(new BasicNameValuePair("Name1", "Value1"));
    Assert.assertEquals("Name1=Value1", URLEncodedUtils.format(params, null));
    params.clear();
    params.add(new BasicNameValuePair("Name2", null));
    Assert.assertEquals("Name2=", URLEncodedUtils.format(params, null));
    params.clear();
    params.add(new BasicNameValuePair("Name4", "Value 4!"));
    Assert.assertEquals("Name4=Value+4%21", URLEncodedUtils.format(params, null));
    params.clear();
    params.add(new BasicNameValuePair("Name4", "Value+4!"));
    Assert.assertEquals("Name4=Value%2B4%21", URLEncodedUtils.format(params, null));
    params.clear();
    params.add(new BasicNameValuePair("Name4", "Value 4! !4"));
    Assert.assertEquals("Name4=Value+4%21+%214", URLEncodedUtils.format(params, null));
    params.clear();
    params.add(new BasicNameValuePair("Name5", "aaa"));
    params.add(new BasicNameValuePair("Name6", "bbb"));
    Assert.assertEquals("Name5=aaa&Name6=bbb", URLEncodedUtils.format(params, null));
    params.clear();
    params.add(new BasicNameValuePair("Name7", "aaa"));
    params.add(new BasicNameValuePair("Name7", "b,b"));
    params.add(new BasicNameValuePair("Name7", "ccc"));
    Assert.assertEquals("Name7=aaa&Name7=b%2Cb&Name7=ccc", URLEncodedUtils.format(params, null));
    params.clear();
    params.add(new BasicNameValuePair("Name8", "xx,  yy  ,zz"));
    Assert.assertEquals("Name8=xx%2C++yy++%2Czz", URLEncodedUtils.format(params, null));
}