public function testSnapshotNormal() { $this->specify("Normal snapshots don't work", function () { $snapshots = array(1 => array('id' => '1', 'name' => 'Robotina', 'type' => 'mechanical', 'year' => '1972', 'datetime' => '1972-01-01 00:00:00', 'deleted' => null, 'text' => 'text'), 2 => array('id' => '2', 'name' => 'Astro Boy', 'type' => 'mechanical', 'year' => '1952', 'datetime' => '1952-01-01 00:00:00', 'deleted' => null, 'text' => 'text'), 3 => array('id' => '3', 'name' => 'Terminator', 'type' => 'cyborg', 'year' => '2029', 'datetime' => '2029-01-01 00:00:00', 'deleted' => null, 'text' => 'text')); foreach (SnapshotRobots::find(array('order' => 'id')) as $robot) { expect($robot->hasSnapshotData())->true(); expect($snapshots[$robot->id])->equals($robot->getSnapshotData()); } foreach (SnapshotRobots::find(array('order' => 'id')) as $robot) { $robot->name = 'Some'; $robot->year = 1999; expect($robot->hasChanged('name'))->true(); expect($robot->hasChanged('year'))->true(); expect($robot->hasChanged('type'))->false(); expect($robot->hasChanged())->true(); } foreach (SnapshotRobots::find(array('order' => 'id')) as $robot) { $robot->year = $robot->year; expect($robot->hasChanged('year'))->false(); expect($robot->hasChanged())->false(); } foreach (SnapshotRobots::find(array('order' => 'id')) as $robot) { $robot->name = 'Little'; $robot->year = 2005; expect($robot->getChangedFields())->equals(array('name', 'year')); } }); }