### Question:
ObjectList { public static Object add (Object head, Object data){ if (head == null){ return data; } else if (data == null){ return head; } else { if (head instanceof Node){ return new Node(data, (Node)head); } else { Node p = new Node(head,null); return new Node(data, p); } } } private  ObjectList(); static Iterator iterator(Object head); static TypedIterator<A> typedIterator(Object head, Class<A> type); static Object createList(Object... values); static Object valueOf(Object o); static Object set(Object head, Object newHead); static Object forceSet(Object head, Object newHead); static Object add(Object head, Object data); static Object replace(Object head, Object oldData, Object newData); static Object remove(Object head, Object data); static boolean contains(Object head, Object o); static boolean containsType(Object head, Class<?> type); static boolean isList(Object head); static boolean isEmpty(Object head); static int size(Object head); static int numberOfInstances(Object head, Class<?> type); static Object get(Object head, int idx); static Object getFirst(Object head); static Object getNext(Object head, Object prevData); static A getFirst(Object head, Class<A> type); static A getNext(Object head, Class<A> type, Object prevData); static void hash(Object head, HashData hd); static boolean equals( Object head1, Object head2); static Object clone(Object head);  }### Answer:
@Test public void testAdd(){ assertTrue( ObjectList.isEmpty(attr)); attr = ObjectList.add(attr, "one"); assertTrue( ObjectList.size(attr) == 1); assertTrue( attr != null && attr.equals("one")); attr = ObjectList.add(attr, new Integer(2)); assertTrue( ObjectList.size(attr) == 2); assertTrue( attr != null && !(attr instanceof Integer)); }