helly           Sat Mar 13 15:01:25 2004 EDT

  Added files:                 
    /php-src/ext/spl/tests      array_object_iterator.phpt 
  Log:
  Add new test
  
  

http://cvs.php.net/co.php/php-src/ext/spl/tests/array_object_iterator.phpt?r=1.1&p=1
Index: php-src/ext/spl/tests/array_object_iterator.phpt
+++ php-src/ext/spl/tests/array_object_iterator.phpt
--TEST--
SPL: ArrayObject/Iterator interaction
--FILE--
<?php

class Student
{
        private $id;
        private $name;

    public function __construct($id, $name)
    {
        $this->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===
<?php exit(0); ?>
--EXPECT--
01234123, Joe
00000014, Bob
===DONE===

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to