MustacheObjectSectionTest.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. require_once '../Mustache.php';
  3. class MustacheObjectSectionTest extends PHPUnit_Framework_TestCase {
  4. public function testBasicObject() {
  5. $alpha = new Alpha();
  6. $this->assertEquals('Foo', $alpha->render('{{#foo}}{{name}}{{/foo}}'));
  7. }
  8. public function testObjectWithGet() {
  9. $beta = new Beta();
  10. $this->assertEquals('Foo', $beta->render('{{#foo}}{{name}}{{/foo}}'));
  11. }
  12. public function testSectionObjectWithGet() {
  13. $gamma = new Gamma();
  14. $this->assertEquals('Foo', $gamma->render('{{#bar}}{{#foo}}{{name}}{{/foo}}{{/bar}}'));
  15. }
  16. }
  17. class Alpha extends Mustache {
  18. public $foo;
  19. public function __construct() {
  20. $this->foo = new StdClass();
  21. $this->foo->name = 'Foo';
  22. $this->foo->number = 1;
  23. }
  24. }
  25. class Beta extends Mustache {
  26. protected $_data = array();
  27. public function __construct() {
  28. $this->_data['foo'] = new StdClass();
  29. $this->_data['foo']->name = 'Foo';
  30. $this->_data['foo']->number = 1;
  31. }
  32. public function __isset($name) {
  33. return array_key_exists($name, $this->_data);
  34. }
  35. public function __get($name) {
  36. return $this->_data[$name];
  37. }
  38. }
  39. class Gamma extends Mustache {
  40. public $bar;
  41. public function __construct() {
  42. $this->bar = new Beta();
  43. }
  44. }