@@ -0,0 +1,1202 @@
+package org.rocket.network.props;%0A%0Aimport com.google.inject.name.Names;%0Aimport org.junit.Test;%0Aimport org.rocket.network.PropId;%0A%0Aimport java.util.Iterator;%0A%0Aimport static org.junit.Assert.assertFalse;%0Aimport static org.junit.Assert.assertTrue;%0A%0Apublic class ListPropIdTest %7B%0A%0A    @Test%0A    public void testIterator() throws Exception %7B%0A        ListPropId pid = (ListPropId) PropIds.of(%0A            PropIds.annotation(Names.named(%22foo%22)),%0A            PropIds.annotation(Names.named(%22bar%22)));%0A%0A        Iterator%3CPropId%3E it = pid.iterator();%0A        assertTrue(%22first iteration%22, it.hasNext());%0A        it.next();%0A        assertTrue(%22second iteration%22, it.hasNext());%0A        it.next();%0A        assertFalse(%22third iteration%22, it.hasNext());%0A    %7D%0A%0A    @Test%0A    public void testUnwrapSingleton() throws Exception %7B%0A        PropId pid = PropIds.annotation(Names.named(%22foo%22));%0A        PropId newPid = ListPropId.cons(pid, ListPropId.Nil).unwrapSingleton();%0A        PropId otherPid = ListPropId.cons(pid, ListPropId.cons(pid, ListPropId.Nil)).unwrapSingleton();%0A%0A        assertTrue(%22unwrapped singleton%22, pid.equals(newPid));%0A        assertFalse(%22other unwrapper singleton%22, pid.equals(otherPid));%0A    %7D%0A%0A%0A%7D

Test ListPropId