setFetched('string', 'test'); $this->assertFalse($job->isAttributeChanged('string')); $job = new \Espo\Entities\Job(); $job->setFetched('string', 'test'); $job->set('string', 'hello'); $this->assertTrue($job->isAttributeChanged('string')); $job = new \Espo\Entities\Job(); $job->set('string', 'hello'); $this->assertTrue($job->isAttributeChanged('string')); $job = new \Espo\Entities\Job(); $job->set('string', null); $this->assertTrue($job->isAttributeChanged('string')); $job = new \Espo\Entities\Job(); $job->setFetched('array', ['1', '2']); $job->set('array', ['2', '1']); $this->assertTrue($job->isAttributeChanged('array')); $job = new \Espo\Entities\Job(); $job->setFetched('array', ['1', '2']); $job->set('array', ['1', '2']); $this->assertFalse($job->isAttributeChanged('array')); $job = new \Espo\Entities\Job(); $job->setFetched('array', ['1', '2']); $job->set('array', ['1', 2]); $this->assertTrue($job->isAttributeChanged('array')); $job = new \Espo\Entities\Job(); $job->setFetched('array', [ (object) ['1' => 'v1'] ]); $job->set('array', [ (object) ['1' => 'v1'] ]); $this->assertFalse($job->isAttributeChanged('array')); $job = new \Espo\Entities\Job(); $job->setFetched('array', [ (object) ['k1' => 'v1'] ]); $job->set('array', [ (object) ['k1' => 'v2'] ]); $this->assertTrue($job->isAttributeChanged('array')); $job = new \Espo\Entities\Job(); $job->setFetched('array', [ (object) ['k1' => 'v1'] ]); $job->set('array', [ (object) ['k1' => 'v1', 'k2' => 'v2'], ]); $this->assertTrue($job->isAttributeChanged('array')); $job = new \Espo\Entities\Job(); $job->setFetched('array', ['1', '2']); $job->set('array', ['1', '2', '3']); $this->assertTrue($job->isAttributeChanged('array')); $job = new \Espo\Entities\Job(); $job->set('array', ['1', '2', '3']); $this->assertTrue($job->isAttributeChanged('array')); $job = new \Espo\Entities\Job(); $job->set('array', null); $this->assertTrue($job->isAttributeChanged('array')); $job = new \Espo\Entities\Job(); $job->setFetched('array', null); $this->assertFalse($job->isAttributeChanged('array')); $job = new \Espo\Entities\Job(); $job->setFetched('arrayUnordered', ['1', '2']); $job->set('arrayUnordered', ['2', '1']); $this->assertFalse($job->isAttributeChanged('arrayUnordered')); $job = new \Espo\Entities\Job(); $job->setFetched('arrayUnordered', ['1', '2']); $job->set('arrayUnordered', ['1', '2']); $this->assertFalse($job->isAttributeChanged('arrayUnordered')); $job = new \Espo\Entities\Job(); $job->setFetched('arrayUnordered', ['1', '2']); $job->set('arrayUnordered', ['1', '2', '3']); $this->assertTrue($job->isAttributeChanged('arrayUnordered')); $job = new \Espo\Entities\Job(); $job->setFetched('arrayUnordered', ['1', '2']); $job->set('arrayUnordered', null); $this->assertTrue($job->isAttributeChanged('arrayUnordered')); $job = new \Espo\Entities\Job(); $job->setFetched('object', (object) ['1' => 'value-1']); $job->set('object', (object) ['1' => 'value-1']); $this->assertFalse($job->isAttributeChanged('object')); $job = new \Espo\Entities\Job(); $job->setFetched('object', (object) ['1' => 'value-1']); $job->set('object', ['1' => 'value-1']); $this->assertTrue($job->isAttributeChanged('object')); $job = new \Espo\Entities\Job(); $job->setFetched('object', (object) ['1' => '1']); $job->set('object', (object) ['1' => 1]); $this->assertTrue($job->isAttributeChanged('object')); $job = new \Espo\Entities\Job(); $job->setFetched('object', (object) [ 'k1' => (object) [ 'k11' => 'v1' ] ]); $job->set('object', (object) [ 'k1' => (object) [ 'k11' => 'v2' ] ]); $this->assertTrue($job->isAttributeChanged('object')); $job = new \Espo\Entities\Job(); $job->setFetched('object', (object) [ 'k1' => [ 'k11' => 'v1' ] ]); $job->set('object', (object) [ 'k1' => (object) [ 'k11' => 'v1' ] ]); $this->assertTrue($job->isAttributeChanged('object')); $job = new \Espo\Entities\Job(); $job->setFetched('object', [ 'k1' => [ 'k11' => 'v1' ] ]); $job->set('object', (object) [ 'k1' => (object) [ 'k11' => 'v1' ] ]); $this->assertTrue($job->isAttributeChanged('object')); } }