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