public function testIsChanged() { $obj = $this->objFromFixture('DataObjectTest_Player', 'captain1'); $obj->FirstName = 'Captain-changed'; $obj->IsRetired = true; // type change only, database stores "1" $this->assertTrue($obj->isChanged('FirstName', 1)); $this->assertTrue($obj->isChanged('FirstName', 2)); $this->assertTrue($obj->isChanged('IsRetired', 1)); $this->assertFalse($obj->isChanged('IsRetired', 2)); $this->assertFalse($obj->isChanged('Email', 1), 'Doesnt change mark unchanged property'); $this->assertFalse($obj->isChanged('Email', 2), 'Doesnt change mark unchanged property'); $newObj = new DataObjectTest_Player(); $newObj->FirstName = "New Player"; $this->assertTrue($newObj->isChanged('FirstName', 1)); $this->assertTrue($newObj->isChanged('FirstName', 2)); $this->assertFalse($newObj->isChanged('Email', 1)); $this->assertFalse($newObj->isChanged('Email', 2)); $newObj->write(); $this->assertFalse($newObj->isChanged('FirstName', 1)); $this->assertFalse($newObj->isChanged('FirstName', 2)); $this->assertFalse($newObj->isChanged('Email', 1)); $this->assertFalse($newObj->isChanged('Email', 2)); $obj = $this->objFromFixture('DataObjectTest_Player', 'captain1'); $obj->FirstName = null; $this->assertTrue($obj->isChanged('FirstName', 1)); $this->assertTrue($obj->isChanged('FirstName', 2)); /* Test when there's not field provided */ $obj = $this->objFromFixture('DataObjectTest_Player', 'captain1'); $obj->FirstName = "New Player"; $this->assertTrue($obj->isChanged()); $obj->write(); $this->assertFalse($obj->isChanged()); }
/** * @skipUpgrade */ public function testIsChanged() { $obj = $this->objFromFixture('DataObjectTest_Player', 'captain1'); $obj->NonDBField = 'bob'; $obj->FirstName = 'Captain-changed'; $obj->IsRetired = true; // type change only, database stores "1" // Now that DB fields are changed, isChanged is true $this->assertTrue($obj->isChanged('NonDBField')); $this->assertFalse($obj->isChanged('NonField')); $this->assertTrue($obj->isChanged('FirstName', DataObject::CHANGE_STRICT)); $this->assertTrue($obj->isChanged('FirstName', DataObject::CHANGE_VALUE)); $this->assertTrue($obj->isChanged('IsRetired', DataObject::CHANGE_STRICT)); $this->assertFalse($obj->isChanged('IsRetired', DataObject::CHANGE_VALUE)); $this->assertFalse($obj->isChanged('Email', 1), 'Doesnt change mark unchanged property'); $this->assertFalse($obj->isChanged('Email', 2), 'Doesnt change mark unchanged property'); $newObj = new DataObjectTest_Player(); $newObj->FirstName = "New Player"; $this->assertTrue($newObj->isChanged('FirstName', DataObject::CHANGE_STRICT)); $this->assertTrue($newObj->isChanged('FirstName', DataObject::CHANGE_VALUE)); $this->assertFalse($newObj->isChanged('Email', DataObject::CHANGE_STRICT)); $this->assertFalse($newObj->isChanged('Email', DataObject::CHANGE_VALUE)); $newObj->write(); $this->assertFalse($newObj->ischanged()); $this->assertFalse($newObj->isChanged('FirstName', DataObject::CHANGE_STRICT)); $this->assertFalse($newObj->isChanged('FirstName', DataObject::CHANGE_VALUE)); $this->assertFalse($newObj->isChanged('Email', DataObject::CHANGE_STRICT)); $this->assertFalse($newObj->isChanged('Email', DataObject::CHANGE_VALUE)); $obj = $this->objFromFixture('DataObjectTest_Player', 'captain1'); $obj->FirstName = null; $this->assertTrue($obj->isChanged('FirstName', DataObject::CHANGE_STRICT)); $this->assertTrue($obj->isChanged('FirstName', DataObject::CHANGE_VALUE)); /* Test when there's not field provided */ $obj = $this->objFromFixture('DataObjectTest_Player', 'captain2'); $this->assertFalse($obj->isChanged()); $obj->NonDBField = 'new value'; $this->assertFalse($obj->isChanged()); $obj->FirstName = "New Player"; $this->assertTrue($obj->isChanged()); $obj->write(); $this->assertFalse($obj->isChanged()); }