public function testSnapshotNormalComplex() { $this->specify("Normal complex snapshots don't work", function () { $robots = $this->modelsManager->executeQuery('SELECT * FROM ' . SnapshotRobots::class); foreach ($robots 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(); expect($robot->getChangedFields())->equals(array('name', 'year')); } $robots = $this->modelsManager->executeQuery('SELECT robot.*, parts.* FROM ' . SnapshotRobots::class . ' robot JOIN ' . SnapshotRobotsParts::class . ' parts'); foreach ($robots as $row) { $row->robot->name = 'Some'; $row->robot->year = 1999; expect($row->robot->hasChanged('name'))->true(); expect($row->robot->hasChanged('year'))->true(); expect($row->robot->hasChanged('type'))->false(); expect($row->robot->hasChanged())->true(); expect($row->robot->getChangedFields())->equals(array('name', 'year')); $this->assertFalse($row->parts->hasSnapshotData()); } }); }