PageRenderTime 74ms CodeModel.GetById 35ms RepoModel.GetById 1ms app.codeStats 0ms

/test/testsuite/generator/builder/om/GeneratedObjectEnumColumnTypeTest.php

https://github.com/mattleff/propel
PHP | 118 lines | 88 code | 10 blank | 20 comment | 1 complexity | 1e4b9ec99fdec622ba81477173ac4c0c MD5 | raw file
  1. <?php
  2. /**
  3. * This file is part of the Propel package.
  4. * For the full copyright and license information, please view the LICENSE
  5. * file that was distributed with this source code.
  6. *
  7. * @license MIT License
  8. */
  9. require_once 'PHPUnit/Framework.php';
  10. require_once dirname(__FILE__) . '/../../../../../generator/lib/util/PropelQuickBuilder.php';
  11. require_once dirname(__FILE__) . '/../../../../../runtime/lib/Propel.php';
  12. /**
  13. * Tests the generated objects for enum column types accessor & mutator
  14. *
  15. * @author Francois Zaninotto
  16. * @package generator.builder.om
  17. */
  18. class GeneratedObjectEnumColumnTypeTest extends PHPUnit_Framework_TestCase
  19. {
  20. public function setUp()
  21. {
  22. if (!class_exists('ComplexColumnTypeEntity3')) {
  23. $schema = <<<EOF
  24. <database name="generated_object_complex_type_test_3">
  25. <table name="complex_column_type_entity_3">
  26. <column name="id" primaryKey="true" type="INTEGER" autoIncrement="true" />
  27. <column name="bar" type="ENUM" valueSet="foo, bar, baz, 1, 4,(, foo bar " />
  28. <column name="bar2" type="ENUM" valueSet="foo, bar" defaultValue="bar" />
  29. </table>
  30. </database>
  31. EOF;
  32. PropelQuickBuilder::buildSchema($schema);
  33. // ok this is hackish but it makes testing of getter and setter independent of each other
  34. $publicAccessorCode = <<<EOF
  35. class PublicComplexColumnTypeEntity3 extends ComplexColumnTypeEntity3
  36. {
  37. public \$bar;
  38. }
  39. EOF;
  40. eval($publicAccessorCode);
  41. }
  42. }
  43. public function testGetter()
  44. {
  45. $this->assertTrue(method_exists('ComplexColumnTypeEntity3', 'getBar'));
  46. $e = new ComplexColumnTypeEntity3();
  47. $this->assertNull($e->getBar());
  48. $e = new PublicComplexColumnTypeEntity3();
  49. $e->bar = 0;
  50. $this->assertEquals('foo', $e->getBar());
  51. $e->bar = 3;
  52. $this->assertEquals('1', $e->getBar());
  53. $e->bar = 6;
  54. $this->assertEquals('foo bar', $e->getBar());
  55. }
  56. /**
  57. * @expectedException PropelException
  58. */
  59. public function testGetterThrowsExceptionOnUnknownKey()
  60. {
  61. $e = new PublicComplexColumnTypeEntity3();
  62. $e->bar = 156;
  63. $e->getBar();
  64. }
  65. public function testGetterDefaultValue()
  66. {
  67. $e = new PublicComplexColumnTypeEntity3();
  68. $this->assertEquals('bar', $e->getBar2());
  69. }
  70. public function testSetter()
  71. {
  72. $this->assertTrue(method_exists('ComplexColumnTypeEntity3', 'setBar'));
  73. $e = new PublicComplexColumnTypeEntity3();
  74. $e->setBar('foo');
  75. $this->assertEquals(0, $e->bar);
  76. $e->setBar(1);
  77. $this->assertEquals(3, $e->bar);
  78. $e->setBar('1');
  79. $this->assertEquals(3, $e->bar);
  80. $e->setBar('foo bar');
  81. $this->assertEquals(6, $e->bar);
  82. }
  83. /**
  84. * @expectedException PropelException
  85. */
  86. public function testSetterThrowsExceptionOnUnknownValue()
  87. {
  88. $e = new ComplexColumnTypeEntity3();
  89. $e->setBar('bazz');
  90. }
  91. public function testValueIsPersisted()
  92. {
  93. $e = new ComplexColumnTypeEntity3();
  94. $e->setBar('baz');
  95. $e->save();
  96. ComplexColumnTypeEntity3Peer::clearInstancePool();
  97. $e = ComplexColumnTypeEntity3Query::create()->findOne();
  98. $this->assertEquals('baz', $e->getBar());
  99. }
  100. public function testValueIsCopied()
  101. {
  102. $e1 = new ComplexColumnTypeEntity3();
  103. $e1->setBar('baz');
  104. $e2 = new ComplexColumnTypeEntity3();
  105. $e1->copyInto($e2);
  106. $this->assertEquals('baz', $e2->getBar());
  107. }
  108. }