public function testArchiveRelatedDataWithoutVersioned()
 {
     SS_Datetime::set_mock_now('2009-01-01 00:00:00');
     $relatedData = new VersionedTest_RelatedWithoutVersion();
     $relatedData->Name = 'Related Data';
     $relatedDataId = $relatedData->write();
     $testData = new VersionedTest_DataObject();
     $testData->Title = 'Test';
     $testData->Content = 'Before Content';
     $testData->Related()->add($relatedData);
     $id = $testData->write();
     SS_Datetime::set_mock_now('2010-01-01 00:00:00');
     $testData->Content = 'After Content';
     $testData->write();
     Versioned::reading_archived_date('2009-01-01 19:00:00');
     $fetchedData = VersionedTest_DataObject::get()->byId($id);
     $this->assertEquals('Before Content', $fetchedData->Content, 'We see the correct content of the older version');
     $relatedData = VersionedTest_RelatedWithoutVersion::get()->byId($relatedDataId);
     $this->assertEquals(1, $relatedData->Related()->count(), 'We have a relation, with no version table, querying it still works');
 }
Exemple #2
0
 public function testVersionedHandlesRenamedDataObjectFields()
 {
     Config::inst()->remove('VersionedTest_RelatedWithoutVersion', 'db', 'Name', 'Varchar');
     Config::inst()->update('VersionedTest_RelatedWithoutVersion', 'db', array("NewField" => "Varchar"));
     VersionedTest_RelatedWithoutVersion::add_extension("Versioned('Stage', 'Live')");
     $this->resetDBSchema(true);
     $testData = new VersionedTest_RelatedWithoutVersion();
     $testData->NewField = 'Test';
     $testData->write();
 }