From 73b9f36ec789968a0b43732b5cde3b189dd3d0b0 Mon Sep 17 00:00:00 2001 From: Tanken Date: Mon, 25 Jun 2007 21:56:22 +0000 Subject: [PATCH] added test case to demonstrate PHP crashing when trying to save circular self-referencing relations (ticket #364) --- tests/Ticket364TestCase.php | 73 +++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 tests/Ticket364TestCase.php diff --git a/tests/Ticket364TestCase.php b/tests/Ticket364TestCase.php new file mode 100644 index 000000000..6b485bac3 --- /dev/null +++ b/tests/Ticket364TestCase.php @@ -0,0 +1,73 @@ +. + */ + +/** + * Doctrine_Ticket364_TestCase + * + * @package Doctrine + * @author Konsta Vesterinen + * @author Jan Schaefer + * @license http://www.opensource.org/licenses/lgpl-license.php LGPL + * @category Object Relational Mapping + * @link www.phpdoctrine.com + * @since 1.0 + * @version $Revision$ + */ +class Doctrine_Ticket364_TestCase extends Doctrine_UnitTestCase { + + public function prepareData() + { } + public function prepareTables() + { + $this->tables = array('NestTest', 'NestReference'); + + parent::prepareTables(); + } + + public function testCircularNonEqualSelfReferencingRelationSaving() { + $n1 = new NestTest(); + $n1->set('name', 'node1'); + $n1->save(); + $n2 = new NestTest(); + $n2->set('name', 'node2'); + $n2->save(); + + $n1->get('Children')->add($n2); + $n1->save(); + $n2->get('Children')->add($n1); + $n2->save(); + } + + public function testCircularEqualSelfReferencingRelationSaving() { + $n1 = new NestTest(); + $n1->set('name', 'node1'); + $n1->save(); + $n2 = new NestTest(); + $n2->set('name', 'node2'); + $n2->save(); + + $n1->get('Relatives')->add($n2); + $n1->save(); + $n2->get('Relatives')->add($n1); + $n2->save(); + } + +} \ No newline at end of file