public function testGetModelChanges() { $model = new ModelState(); $this->assertEquals([], $model->getModelChanges()); $model->A = 1; $model->B = 2; $this->assertEquals(["A" => 1, "B" => 2], $model->getModelChanges()); $model->takeChangeSnapshot(); $this->assertEquals([], $model->getModelChanges()); $model->A = 2; $this->assertEquals(["A" => 2], $model->getModelChanges()); }
public function testGetModelChanges() { $model = new ModelState(); $this->assertEquals([], $model->getModelChanges()); $model->A = 1; $model->B = 2; $model->C = null; $this->assertEquals(["A" => 1, "B" => 2], $model->getModelChanges()); $model->takeChangeSnapshot(); $this->assertEquals([], $model->getModelChanges()); $model->A = 2; $this->assertEquals(["A" => 2], $model->getModelChanges()); $model->takeChangeSnapshot(); // Ensure that setting a value that is not set to null results in no change $model->C = null; $this->assertEquals([], $model->getModelChanges()); $model->C = 3; $model->takeChangeSnapshot(); // Remove C by setting to null $model->C = null; $this->assertEquals(['C' => null], $model->getModelChanges()); $model->takeChangeSnapshot(); $model->C = 3; $model->takeChangeSnapshot(); // Remove C via unset unset($model->C); $this->assertEquals(['C' => null], $model->getModelChanges()); }