From 462bb8b83af208a2d5f2b3209860c2f28de255cc Mon Sep 17 00:00:00 2001 From: Marcus Boerger Date: Sat, 13 Mar 2004 20:01:23 +0000 Subject: [PATCH] Add new test --- ext/spl/tests/array_object_iterator.phpt | 91 ++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100755 ext/spl/tests/array_object_iterator.phpt diff --git a/ext/spl/tests/array_object_iterator.phpt b/ext/spl/tests/array_object_iterator.phpt new file mode 100755 index 00000000000..ac192934b37 --- /dev/null +++ b/ext/spl/tests/array_object_iterator.phpt @@ -0,0 +1,91 @@ +--TEST-- +SPL: ArrayObject/Iterator interaction +--FILE-- +id = $id; + $this->name = $name; + } + + public function __toString() + { + return $this->id . ', ' . $this->name; + } + + public function getId() + { + return $this->id; + } +} + +class StudentIdFilter extends FilterIterator +{ + private $id; + + public function __construct(ArrayObject $students, Student $other) + { + FilterIterator::__construct($students->getIterator()); + $this->id = $other->getId(); + } + + public function accept() + { + echo "ACCEPT ".$this->current()->getId()." == ".$this->id."\n"; + return $this->current()->getId() == $this->id; + } +} + +class StudentList implements IteratorAggregate +{ + private $students; + + public function __construct() + { + $this->students = new ArrayObject(array()); + } + + public function add(Student $student) + { + if (!$this->contains($student)) { + $this->students[] = $student; + } + } + + public function contains(Student $student) + { + foreach ($this->students as $s) + { + if ($s->getId() == $student->getId()) { + return true; + } + } + return false; + } + + public function getIterator() { + return $this->students->getIterator(); + } +} + +$students = new StudentList(); +$students->add(new Student('01234123', 'Joe')); +$students->add(new Student('00000014', 'Bob')); +$students->add(new Student('00000014', 'Foo')); + +foreach ($students as $student) { + echo $student."\n"; +} +?> +===DONE=== + +--EXPECT-- +01234123, Joe +00000014, Bob +===DONE===