Implement Countable for Horde_Mime_Part
authorMichael M Slusarz <slusarz@curecanti.org>
Thu, 9 Sep 2010 22:43:08 +0000 (16:43 -0600)
committerMichael M Slusarz <slusarz@curecanti.org>
Thu, 9 Sep 2010 23:10:10 +0000 (17:10 -0600)
framework/Mime/lib/Horde/Mime/Part.php
framework/Mime/test/Horde/Mime/PartTest.php

index 3feba8b..cf39b54 100644 (file)
@@ -14,7 +14,7 @@
  * @license  http://www.fsf.org/copyleft/lgpl.html LGPL
  * @package  Mime
  */
-class Horde_Mime_Part
+class Horde_Mime_Part implements Countable
 {
     /* The character(s) used internally for EOLs. */
     const EOL = "\n";
@@ -2101,4 +2101,16 @@ class Horde_Mime_Part
         return $out;
     }
 
+    /* Countable methods. */
+
+    /**
+     * Returns the number of message parts.
+     *
+     * @return integer  Number of message parts.
+     */
+    public function count()
+    {
+        return count($this->_parts);
+    }
+
 }
index 4d839f4..3a16032 100644 (file)
@@ -82,4 +82,42 @@ class Horde_Mime_PartTest extends PHPUnit_Framework_TestCase
         );
     }
 
+    public function testCountableImplementation()
+    {
+        $part = $this->_getTestPart();
+
+        $this->assertEquals(
+            3,
+            count($part)
+        );
+    }
+
+    protected function _getTestPart()
+    {
+        $part = new Horde_Mime_Part();
+        $part->setType('multipart/mixed');
+
+        $part1 = new Horde_Mime_Part();
+        $part1->setType('text/plain');
+        $part1->setContents('Test');
+        $part->addPart($part1);
+
+        $part2 = new Horde_Mime_Part();
+        $part2->setType('application/octet-stream');
+        $part->addPart($part2);
+
+        $part3 = new Horde_Mime_Part();
+        $part3->setType('multipart/mixed');
+        $part->addPart($part3);
+
+        $part3_1 = new Horde_Mime_Part();
+        $part3_1->setType('text/plain');
+        $part3_1->setContents('Test 2');
+        $part3->addPart($part3_1);
+
+        $part->buildMimeIds();
+
+        return $part;
+    }
+
 }