public function testDynamicInsertAndCursor() { $list = new Sabel_Util_HashList(); $list->add("a", "1"); $list->add("b", "2"); $list->add("c", "3"); $this->assertEquals("1", $list->next()); $list->insertNext("b", "d", "4"); // 1 2 4 3 $this->assertEquals("2", $list->next()); $this->assertEquals("4", $list->next()); $list->insertPrevious("b", "e", "5"); // 1 5 2 4 3 $this->assertEquals("3", $list->next()); $this->assertEquals("4", $list->previous()); $list->insertPrevious("c", "f", "6"); // 1 5 2 4 6 3 $this->assertEquals("6", $list->next()); $this->assertEquals("3", $list->next()); $this->assertNull($list->next()); $list->last(); $list->insertNext("c", "g", "7"); // 1 5 2 4 6 3 7 $this->assertEquals("7", $list->previous()); $this->assertEquals("3", $list->previous()); $this->assertEquals("6", $list->previous()); $this->assertEquals("4", $list->previous()); $this->assertEquals("2", $list->previous()); $this->assertEquals("5", $list->previous()); $this->assertEquals("1", $list->previous()); $this->assertNull($list->previous()); }