{
@Test
public void testNameValuePair() throws Exception {
HashMap<String, String> attrs = new HashMap<String, String>();
attrs.put("some", "value");
NameValuePair nvp = new NameValuePair("key", attrs);
assertEquals("The name value pair is not set properly.", nvp.getName(), "key");
assertEquals("The value is not set properly.", nvp.getAttributes().get("some"), "value");
attrs = new HashMap<String, String>();
attrs.put("some", "value");
NameValuePair anotherNvp = new NameValuePair("key", attrs);
assertEquals("The two objects of NameValuePair is not equal.", nvp, anotherNvp);
nvp.setName("newKey");
attrs = new HashMap<String, String>();
attrs.put("some", "newValue");
nvp.setAttributes(attrs);
assertEquals("The name value pair is not set properly.", nvp.getName(), "newKey");
assertEquals("The value is not set properly.", nvp.getAttributes().get("some"), "newValue");
Map<String,String> nvm1 = new HashMap<String,String>();
nvm1.put("a","b");
nvm1.put("c","d");
Map<String,String> nvm2 = new HashMap<String,String>();
nvm2.put("c","d");
nvm2.put("a","b");
assertEquals("The maps are not equal.", nvm1, nvm2);
nvm2.put("e","f");
assertNotSame("The maps are the same.", nvm1, nvm2);
NameValuePair nvp1 = new NameValuePair("one",nvm1);
NameValuePair nvp2 = new NameValuePair("one",nvm2);
assertNotSame("The pairs are identical ",nvp1,nvp2);
nvm1.put("e","f");
assertEquals("The pairs are not equal.", nvp1,nvp2);